summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/optimizing/intrinsics_riscv64.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/optimizing/intrinsics_riscv64.cc b/compiler/optimizing/intrinsics_riscv64.cc
index c5aed1b1da..3af187dbf8 100644
--- a/compiler/optimizing/intrinsics_riscv64.cc
+++ b/compiler/optimizing/intrinsics_riscv64.cc
@@ -2215,6 +2215,13 @@ static void CreateVarHandleCompareAndSetOrExchangeLocations(HInvoke* invoke,
return;
}
+ if ((true)) {
+ // FIXME(riscv64): Fix the register allocation for strong CAS (SC failure sets the result
+ // to success, so comparison failure on retry returns "true" for a failed CAS).
+ // Review register allocation for weak CAS to make sure it's OK.
+ return;
+ }
+
LocationSummary* locations = CreateVarHandleCommonLocations(invoke, codegen);
DCHECK_EQ(expected_index, 1u + GetExpectedVarHandleCoordinatesCount(invoke));