summaryrefslogtreecommitdiff
path: root/common.h
diff options
context:
space:
mode:
authorOxore <oxore@protonmail.com>2023-05-20 16:41:59 +0300
committerOxore <oxore@protonmail.com>2023-05-20 16:41:59 +0300
commit429d978d108dfb77665f0c03a7190e2754c8fa1f (patch)
tree057c0eb090a7f9592c91ba9778795034e06bcd0f /common.h
parentd9136afc4a89ad26663e18afd61683dd9dae523f (diff)
Impl marks referencing for MOVE and MOVEA
Diffstat (limited to 'common.h')
-rw-r--r--common.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/common.h b/common.h
index 65f7648..7ee965b 100644
--- a/common.h
+++ b/common.h
@@ -18,15 +18,21 @@ constexpr RefKindMask kRef1RelMask = (1 << 0); // For first argument
constexpr RefKindMask kRef1AbsMask = (1 << 1); // For first argument
constexpr RefKindMask kRef2RelMask = (1 << 2); // For second argument
constexpr RefKindMask kRef2AbsMask = (1 << 3); // For second argument
+constexpr RefKindMask kRef1ReadMask = (1 << 4); // For first argument
+constexpr RefKindMask kRef1WriteMask = (1 << 5); // For first argument
+constexpr RefKindMask kRef2ReadMask = (1 << 6); // For second argument
+constexpr RefKindMask kRef2WriteMask = (1 << 7); // For second argument
/// Indicates whether instruction is a call or just a branch, for any argument.
/// Calls are BSR and JSR, branches are DBcc, Bcc and JMP.
-constexpr RefKindMask kRefCallMask = (1 << 4);
-constexpr RefKindMask kRefReadMask = (1 << 5); // For any argument
-constexpr RefKindMask kRefWriteMask = (1 << 6); // For any argument
+constexpr RefKindMask kRefCallMask = (1 << 8);
constexpr RefKindMask kRefRelMask = kRef1RelMask | kRef2RelMask;
constexpr RefKindMask kRefAbsMask = kRef1AbsMask | kRef2AbsMask;
constexpr RefKindMask kRef1Mask = kRef1RelMask | kRef1AbsMask; // For first argument
constexpr RefKindMask kRef2Mask = kRef2RelMask | kRef2AbsMask; // For second argument
+constexpr RefKindMask kRef1DataMask = kRef1ReadMask | kRef1WriteMask; // For first argument
+constexpr RefKindMask kRef2DataMask = kRef2ReadMask | kRef2WriteMask; // For second argument
+constexpr RefKindMask kRefReadMask = kRef1ReadMask | kRef2ReadMask; // For any argument
+constexpr RefKindMask kRefWriteMask = kRef1WriteMask | kRef2WriteMask; // For any argument
constexpr RefKindMask kRefDataMask = kRefReadMask | kRefWriteMask;
constexpr size_t kInstructionSizeStepBytes = 2;
constexpr size_t kRomSizeBytes = 4 * 1024 * 1024;