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

Unified Diff: src/arm64/macro-assembler-arm64.h

Issue 2754543006: [arm64] Use exclusive instructions in exchange (Closed)
Patch Set: Created 3 years, 9 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
Index: src/arm64/macro-assembler-arm64.h
diff --git a/src/arm64/macro-assembler-arm64.h b/src/arm64/macro-assembler-arm64.h
index 51dcb6086a2e05c0b60360a25c49d333683cc912..90eb9a6380358d3002b936b7622abac13928ff4e 100644
--- a/src/arm64/macro-assembler-arm64.h
+++ b/src/arm64/macro-assembler-arm64.h
@@ -68,20 +68,26 @@ 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) \
+#define LDX_LDA_STL_MACRO_LIST(V) \
+ V(Ldxrb, ldxrb) \
+ V(Ldxrh, ldxrh) \
+ V(Ldxr, ldxr) \
+ 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) \
+#define STX_STLX_MACRO_LIST(V) \
+ V(Stxrb, stxrb) \
+ V(Stxrh, stxrh) \
+ V(Stxr, stxr) \
+ V(Stlxrb, stlxrb) \
+ V(Stlxrh, stlxrh) \
V(Stlxr, stlxr)
// ----------------------------------------------------------------------------
@@ -313,15 +319,15 @@ class MacroAssembler : public Assembler {
void LoadStorePairMacro(const CPURegister& rt, const CPURegister& rt2,
const MemOperand& addr, LoadStorePairOp op);
-// Load-acquire/store-release macros.
+// Load/store exclusive and 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)
+ LDX_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)
+ STX_STLX_MACRO_LIST(DECLARE_FUNCTION)
#undef DECLARE_FUNCTION
// V8-specific load/store helpers.

Powered by Google App Engine
This is Rietveld 408576698