diff options
Diffstat (limited to 'compiler/utils')
| -rw-r--r-- | compiler/utils/arm/assembler_thumb2.cc | 2 | ||||
| -rw-r--r-- | compiler/utils/arm/assembler_thumb2_test.cc | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/compiler/utils/arm/assembler_thumb2.cc b/compiler/utils/arm/assembler_thumb2.cc index 61b7f08518..1e71d06b49 100644 --- a/compiler/utils/arm/assembler_thumb2.cc +++ b/compiler/utils/arm/assembler_thumb2.cc @@ -2830,7 +2830,7 @@ void Thumb2Assembler::strexd(Register rd, Register rt, Register rt2, Register rn void Thumb2Assembler::clrex(Condition cond) { CheckCondition(cond); - int32_t encoding = B31 | B30 | B29 | B27 | B28 | B25 | B24 | B23 | + int32_t encoding = B31 | B30 | B29 | B28 | B25 | B24 | B23 | B21 | B20 | 0xf << 16 | B15 | diff --git a/compiler/utils/arm/assembler_thumb2_test.cc b/compiler/utils/arm/assembler_thumb2_test.cc index d0799d6112..30e8f4e604 100644 --- a/compiler/utils/arm/assembler_thumb2_test.cc +++ b/compiler/utils/arm/assembler_thumb2_test.cc @@ -207,6 +207,13 @@ TEST_F(AssemblerThumb2Test, strexd) { DriverStr(expected, "strexd"); } +TEST_F(AssemblerThumb2Test, clrex) { + __ clrex(); + + const char* expected = "clrex\n"; + DriverStr(expected, "clrex"); +} + TEST_F(AssemblerThumb2Test, LdrdStrd) { __ ldrd(arm::R0, arm::Address(arm::R2, 8)); __ ldrd(arm::R0, arm::Address(arm::R12)); |