| Index: src/arm64/macro-assembler-arm64.h
|
| diff --git a/src/arm64/macro-assembler-arm64.h b/src/arm64/macro-assembler-arm64.h
|
| index 67e64f4d672fb451cee506f7e7df151321f07d45..246d574257e78b045718fb8bce50548967116f19 100644
|
| --- a/src/arm64/macro-assembler-arm64.h
|
| +++ b/src/arm64/macro-assembler-arm64.h
|
| @@ -68,6 +68,21 @@ namespace internal {
|
| V(Stp, CPURegister&, rt, rt2, StorePairOpFor(rt, rt2)) \
|
| V(Ldpsw, CPURegister&, rt, rt2, LDPSW_x)
|
|
|
| +#define LDA_STL_MACRO_LIST(V) \
|
| + V(Ldarb, ldarb) \
|
| + V(Ldarh, ldarh) \
|
| + V(Ldar, ldar) \
|
| + V(Ldaxrb, ldaxrb) \
|
| + V(Ldaxrh, ldaxrh) \
|
| + V(Ldaxr, ldaxr) \
|
| + V(Stlrb, stlrb) \
|
| + V(Stlrh, stlrh) \
|
| + V(Stlr, stlr)
|
| +
|
| +#define STLX_MACRO_LIST(V) \
|
| + V(Stlxrb, stlxrb) \
|
| + V(Stlxrh, stlxrh) \
|
| + V(Stlxr, stlxr)
|
|
|
| // ----------------------------------------------------------------------------
|
| // Static helper functions
|
| @@ -295,6 +310,17 @@ class MacroAssembler : public Assembler {
|
| void LoadStorePairMacro(const CPURegister& rt, const CPURegister& rt2,
|
| const MemOperand& addr, LoadStorePairOp op);
|
|
|
| +// Load-acquire/store-release macros.
|
| +#define DECLARE_FUNCTION(FN, OP) \
|
| + inline void FN(const Register& rt, const Register& rn);
|
| + LDA_STL_MACRO_LIST(DECLARE_FUNCTION)
|
| +#undef DECLARE_FUNCTION
|
| +
|
| +#define DECLARE_FUNCTION(FN, OP) \
|
| + inline void FN(const Register& rs, const Register& rt, const Register& rn);
|
| + STLX_MACRO_LIST(DECLARE_FUNCTION)
|
| +#undef DECLARE_FUNCTION
|
| +
|
| // V8-specific load/store helpers.
|
| void Load(const Register& rt, const MemOperand& addr, Representation r);
|
| void Store(const Register& rt, const MemOperand& addr, Representation r);
|
|
|