Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Unified Diff: src/arm64/constants-arm64.h

Issue 1990073002: Add {lda,stl}x?r{,b,h} instructions to ARM64 assembler/disassembler (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: typo Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/arm64/assembler-arm64.cc ('k') | src/arm64/decoder-arm64.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/arm64/constants-arm64.h
diff --git a/src/arm64/constants-arm64.h b/src/arm64/constants-arm64.h
index 00b24e9375908229a963d489e2b9609e8f63e002..65b8b30610ef0548d73e4153283bcdd173a4b7c4 100644
--- a/src/arm64/constants-arm64.h
+++ b/src/arm64/constants-arm64.h
@@ -117,89 +117,89 @@ const unsigned kDoubleExponentBias = 1023;
const unsigned kFloatMantissaBits = 23;
const unsigned kFloatExponentBits = 8;
-#define INSTRUCTION_FIELDS_LIST(V_) \
-/* Register fields */ \
-V_(Rd, 4, 0, Bits) /* Destination register. */ \
-V_(Rn, 9, 5, Bits) /* First source register. */ \
-V_(Rm, 20, 16, Bits) /* Second source register. */ \
-V_(Ra, 14, 10, Bits) /* Third source register. */ \
-V_(Rt, 4, 0, Bits) /* Load dest / store source. */ \
-V_(Rt2, 14, 10, Bits) /* Load second dest / */ \
- /* store second source. */ \
-V_(PrefetchMode, 4, 0, Bits) \
- \
-/* Common bits */ \
-V_(SixtyFourBits, 31, 31, Bits) \
-V_(FlagsUpdate, 29, 29, Bits) \
- \
-/* PC relative addressing */ \
-V_(ImmPCRelHi, 23, 5, SignedBits) \
-V_(ImmPCRelLo, 30, 29, Bits) \
- \
-/* Add/subtract/logical shift register */ \
-V_(ShiftDP, 23, 22, Bits) \
-V_(ImmDPShift, 15, 10, Bits) \
- \
-/* Add/subtract immediate */ \
-V_(ImmAddSub, 21, 10, Bits) \
-V_(ShiftAddSub, 23, 22, Bits) \
- \
-/* Add/substract extend */ \
-V_(ImmExtendShift, 12, 10, Bits) \
-V_(ExtendMode, 15, 13, Bits) \
- \
-/* Move wide */ \
-V_(ImmMoveWide, 20, 5, Bits) \
-V_(ShiftMoveWide, 22, 21, Bits) \
- \
-/* Logical immediate, bitfield and extract */ \
-V_(BitN, 22, 22, Bits) \
-V_(ImmRotate, 21, 16, Bits) \
-V_(ImmSetBits, 15, 10, Bits) \
-V_(ImmR, 21, 16, Bits) \
-V_(ImmS, 15, 10, Bits) \
- \
-/* Test and branch immediate */ \
-V_(ImmTestBranch, 18, 5, SignedBits) \
-V_(ImmTestBranchBit40, 23, 19, Bits) \
-V_(ImmTestBranchBit5, 31, 31, Bits) \
- \
-/* Conditionals */ \
-V_(Condition, 15, 12, Bits) \
-V_(ConditionBranch, 3, 0, Bits) \
-V_(Nzcv, 3, 0, Bits) \
-V_(ImmCondCmp, 20, 16, Bits) \
-V_(ImmCondBranch, 23, 5, SignedBits) \
- \
-/* Floating point */ \
-V_(FPType, 23, 22, Bits) \
-V_(ImmFP, 20, 13, Bits) \
-V_(FPScale, 15, 10, Bits) \
- \
-/* Load Store */ \
-V_(ImmLS, 20, 12, SignedBits) \
-V_(ImmLSUnsigned, 21, 10, Bits) \
-V_(ImmLSPair, 21, 15, SignedBits) \
-V_(SizeLS, 31, 30, Bits) \
-V_(ImmShiftLS, 12, 12, Bits) \
- \
-/* Other immediates */ \
-V_(ImmUncondBranch, 25, 0, SignedBits) \
-V_(ImmCmpBranch, 23, 5, SignedBits) \
-V_(ImmLLiteral, 23, 5, SignedBits) \
-V_(ImmException, 20, 5, Bits) \
-V_(ImmHint, 11, 5, Bits) \
-V_(ImmBarrierDomain, 11, 10, Bits) \
-V_(ImmBarrierType, 9, 8, Bits) \
- \
-/* System (MRS, MSR) */ \
-V_(ImmSystemRegister, 19, 5, Bits) \
-V_(SysO0, 19, 19, Bits) \
-V_(SysOp1, 18, 16, Bits) \
-V_(SysOp2, 7, 5, Bits) \
-V_(CRn, 15, 12, Bits) \
-V_(CRm, 11, 8, Bits) \
-
+#define INSTRUCTION_FIELDS_LIST(V_) \
+ /* Register fields */ \
+ V_(Rd, 4, 0, Bits) /* Destination register. */ \
+ V_(Rn, 9, 5, Bits) /* First source register. */ \
+ V_(Rm, 20, 16, Bits) /* Second source register. */ \
+ V_(Ra, 14, 10, Bits) /* Third source register. */ \
+ V_(Rt, 4, 0, Bits) /* Load dest / store source. */ \
+ V_(Rt2, 14, 10, Bits) /* Load second dest / */ \
+ /* store second source. */ \
+ V_(Rs, 20, 16, Bits) /* Store-exclusive status */ \
+ V_(PrefetchMode, 4, 0, Bits) \
+ \
+ /* Common bits */ \
+ V_(SixtyFourBits, 31, 31, Bits) \
+ V_(FlagsUpdate, 29, 29, Bits) \
+ \
+ /* PC relative addressing */ \
+ V_(ImmPCRelHi, 23, 5, SignedBits) \
+ V_(ImmPCRelLo, 30, 29, Bits) \
+ \
+ /* Add/subtract/logical shift register */ \
+ V_(ShiftDP, 23, 22, Bits) \
+ V_(ImmDPShift, 15, 10, Bits) \
+ \
+ /* Add/subtract immediate */ \
+ V_(ImmAddSub, 21, 10, Bits) \
+ V_(ShiftAddSub, 23, 22, Bits) \
+ \
+ /* Add/substract extend */ \
+ V_(ImmExtendShift, 12, 10, Bits) \
+ V_(ExtendMode, 15, 13, Bits) \
+ \
+ /* Move wide */ \
+ V_(ImmMoveWide, 20, 5, Bits) \
+ V_(ShiftMoveWide, 22, 21, Bits) \
+ \
+ /* Logical immediate, bitfield and extract */ \
+ V_(BitN, 22, 22, Bits) \
+ V_(ImmRotate, 21, 16, Bits) \
+ V_(ImmSetBits, 15, 10, Bits) \
+ V_(ImmR, 21, 16, Bits) \
+ V_(ImmS, 15, 10, Bits) \
+ \
+ /* Test and branch immediate */ \
+ V_(ImmTestBranch, 18, 5, SignedBits) \
+ V_(ImmTestBranchBit40, 23, 19, Bits) \
+ V_(ImmTestBranchBit5, 31, 31, Bits) \
+ \
+ /* Conditionals */ \
+ V_(Condition, 15, 12, Bits) \
+ V_(ConditionBranch, 3, 0, Bits) \
+ V_(Nzcv, 3, 0, Bits) \
+ V_(ImmCondCmp, 20, 16, Bits) \
+ V_(ImmCondBranch, 23, 5, SignedBits) \
+ \
+ /* Floating point */ \
+ V_(FPType, 23, 22, Bits) \
+ V_(ImmFP, 20, 13, Bits) \
+ V_(FPScale, 15, 10, Bits) \
+ \
+ /* Load Store */ \
+ V_(ImmLS, 20, 12, SignedBits) \
+ V_(ImmLSUnsigned, 21, 10, Bits) \
+ V_(ImmLSPair, 21, 15, SignedBits) \
+ V_(SizeLS, 31, 30, Bits) \
+ V_(ImmShiftLS, 12, 12, Bits) \
+ \
+ /* Other immediates */ \
+ V_(ImmUncondBranch, 25, 0, SignedBits) \
+ V_(ImmCmpBranch, 23, 5, SignedBits) \
+ V_(ImmLLiteral, 23, 5, SignedBits) \
+ V_(ImmException, 20, 5, Bits) \
+ V_(ImmHint, 11, 5, Bits) \
+ V_(ImmBarrierDomain, 11, 10, Bits) \
+ V_(ImmBarrierType, 9, 8, Bits) \
+ \
+ /* System (MRS, MSR) */ \
+ V_(ImmSystemRegister, 19, 5, Bits) \
+ V_(SysO0, 19, 19, Bits) \
+ V_(SysOp1, 18, 16, Bits) \
+ V_(SysOp2, 7, 5, Bits) \
+ V_(CRn, 15, 12, Bits) \
+ V_(CRm, 11, 8, Bits)
#define SYSTEM_REGISTER_FIELDS_LIST(V_, M_) \
/* NZCV */ \
@@ -857,6 +857,29 @@ enum LoadStoreRegisterOffset {
#undef LOAD_STORE_REGISTER_OFFSET
};
+// Load/store acquire/release
+enum LoadStoreAcquireReleaseOp {
+ LoadStoreAcquireReleaseFixed = 0x08000000,
+ LoadStoreAcquireReleaseFMask = 0x3F000000,
+ LoadStoreAcquireReleaseMask = 0xCFC08000,
+ STLXR_b = LoadStoreAcquireReleaseFixed | 0x00008000,
+ LDAXR_b = LoadStoreAcquireReleaseFixed | 0x00408000,
+ STLR_b = LoadStoreAcquireReleaseFixed | 0x00808000,
+ LDAR_b = LoadStoreAcquireReleaseFixed | 0x00C08000,
+ STLXR_h = LoadStoreAcquireReleaseFixed | 0x40008000,
+ LDAXR_h = LoadStoreAcquireReleaseFixed | 0x40408000,
+ STLR_h = LoadStoreAcquireReleaseFixed | 0x40808000,
+ LDAR_h = LoadStoreAcquireReleaseFixed | 0x40C08000,
+ STLXR_w = LoadStoreAcquireReleaseFixed | 0x80008000,
+ LDAXR_w = LoadStoreAcquireReleaseFixed | 0x80408000,
+ STLR_w = LoadStoreAcquireReleaseFixed | 0x80808000,
+ LDAR_w = LoadStoreAcquireReleaseFixed | 0x80C08000,
+ STLXR_x = LoadStoreAcquireReleaseFixed | 0xC0008000,
+ LDAXR_x = LoadStoreAcquireReleaseFixed | 0xC0408000,
+ STLR_x = LoadStoreAcquireReleaseFixed | 0xC0808000,
+ LDAR_x = LoadStoreAcquireReleaseFixed | 0xC0C08000,
+};
+
// Conditional compare.
enum ConditionalCompareOp {
ConditionalCompareMask = 0x60000000,
« no previous file with comments | « src/arm64/assembler-arm64.cc ('k') | src/arm64/decoder-arm64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698