Index: runtime/vm/assembler_arm64_test.cc |
=================================================================== |
--- runtime/vm/assembler_arm64_test.cc (revision 35439) |
+++ runtime/vm/assembler_arm64_test.cc (working copy) |
@@ -379,8 +379,8 @@ |
__ movz(R2, 10, 0); |
__ sub(SP, SP, Operand(10*kWordSize)); |
// Store R1 into SP + R2 * kWordSize. |
- __ str(R1, Address(SP, R2, UXTX, true)); |
- __ ldr(R0, Address(SP, R2, UXTX, true)); |
+ __ str(R1, Address(SP, R2, UXTX, Address::Scaled)); |
+ __ ldr(R0, Address(SP, R2, UXTX, Address::Scaled)); |
__ add(SP, SP, Operand(10*kWordSize)); |
__ ret(); |
} |
@@ -1286,6 +1286,36 @@ |
} |
+ASSEMBLER_TEST_GENERATE(CSelTrue, assembler) { |
+ __ LoadImmediate(R1, 42, kNoRegister); |
+ __ LoadImmediate(R2, 1234, kNoRegister); |
+ __ CompareRegisters(R1, R2); |
+ __ csel(R0, R1, R2, LT); |
+ __ ret(); |
+} |
+ |
+ |
+ASSEMBLER_TEST_RUN(CSelTrue, test) { |
+ typedef int (*SimpleCode)(); |
+ EXPECT_EQ(42, EXECUTE_TEST_CODE_INT64(SimpleCode, test->entry())); |
+} |
+ |
+ |
+ASSEMBLER_TEST_GENERATE(CSelFalse, assembler) { |
+ __ LoadImmediate(R1, 42, kNoRegister); |
+ __ LoadImmediate(R2, 1234, kNoRegister); |
+ __ CompareRegisters(R1, R2); |
+ __ csel(R0, R1, R2, GE); |
+ __ ret(); |
+} |
+ |
+ |
+ASSEMBLER_TEST_RUN(CSelFalse, test) { |
+ typedef int (*SimpleCode)(); |
+ EXPECT_EQ(1234, EXECUTE_TEST_CODE_INT64(SimpleCode, test->entry())); |
+} |
+ |
+ |
// Called from assembler_test.cc. |
// LR: return address. |
// R0: context. |