diff options
-rw-r--r-- | compiler/optimizing/intrinsics_riscv64.cc | 7 |
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)); |