| 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,
 | 
| 
 |