| Index: runtime/vm/assembler_dbc_test.cc
|
| diff --git a/runtime/vm/assembler_dbc_test.cc b/runtime/vm/assembler_dbc_test.cc
|
| index e97fdd70d0e231be917771a2896193825c67129e..74841e3eb90998b8655a837b926d31d1fd6cf7eb 100644
|
| --- a/runtime/vm/assembler_dbc_test.cc
|
| +++ b/runtime/vm/assembler_dbc_test.cc
|
| @@ -121,11 +121,11 @@ ASSEMBLER_TEST_RUN(Simple, test) {
|
|
|
| ASSEMBLER_TEST_GENERATE(Nop, assembler) {
|
| __ PushConstant(Smi::Handle(Smi::New(42)));
|
| - __ Nop();
|
| - __ Nop();
|
| - __ Nop();
|
| - __ Nop();
|
| - __ Nop();
|
| + __ Nop(0);
|
| + __ Nop(0);
|
| + __ Nop(0);
|
| + __ Nop(0);
|
| + __ Nop(0);
|
| __ ReturnTOS();
|
| }
|
|
|
| @@ -1646,7 +1646,7 @@ ASSEMBLER_TEST_RUN(CheckSmiFail, test) {
|
| ASSEMBLER_TEST_GENERATE(CheckClassIdSmiPass, assembler) {
|
| __ Frame(1);
|
| __ LoadConstant(0, Smi::Handle(Smi::New(42)));
|
| - __ CheckClassId(0, __ AddConstant(Smi::Handle(Smi::New(kSmiCid))));
|
| + __ CheckClassId(0, kSmiCid);
|
| __ LoadConstant(0, Smi::Handle(Smi::New(-1)));
|
| __ Return(0);
|
| }
|
| @@ -1660,7 +1660,7 @@ ASSEMBLER_TEST_RUN(CheckClassIdSmiPass, test) {
|
| ASSEMBLER_TEST_GENERATE(CheckClassIdNonSmiPass, assembler) {
|
| __ Frame(1);
|
| __ LoadConstant(0, Bool::True());
|
| - __ CheckClassId(0, __ AddConstant(Smi::Handle(Smi::New(kBoolCid))));
|
| + __ CheckClassId(0, kBoolCid);
|
| __ LoadConstant(0, Bool::False());
|
| __ Return(0);
|
| }
|
| @@ -1674,7 +1674,7 @@ ASSEMBLER_TEST_RUN(CheckClassIdNonSmiPass, test) {
|
| ASSEMBLER_TEST_GENERATE(CheckClassIdFail, assembler) {
|
| __ Frame(1);
|
| __ LoadConstant(0, Smi::Handle(Smi::New(-1)));
|
| - __ CheckClassId(0, __ AddConstant(Smi::Handle(Smi::New(kBoolCid))));
|
| + __ CheckClassId(0, kBoolCid);
|
| __ LoadConstant(0, Smi::Handle(Smi::New(42)));
|
| __ Return(0);
|
| }
|
| @@ -1684,6 +1684,70 @@ ASSEMBLER_TEST_RUN(CheckClassIdFail, test) {
|
| EXPECT_EQ(42, EXECUTE_TEST_CODE_INTPTR(test->code()));
|
| }
|
|
|
| +
|
| +// - If<Cond>Null rA
|
| +//
|
| +// Cond is Eq or Ne. Skips the next instruction unless the given condition
|
| +// holds.
|
| +ASSEMBLER_TEST_GENERATE(IfEqNullNotNull, assembler) {
|
| + __ Frame(2);
|
| + __ LoadConstant(0, Smi::Handle(Smi::New(-1)));
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(42)));
|
| + __ IfEqNull(0);
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(-1)));
|
| + __ Return(1);
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_RUN(IfEqNullNotNull, test) {
|
| + EXPECT_EQ(42, EXECUTE_TEST_CODE_INTPTR(test->code()));
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_GENERATE(IfEqNullIsNull, assembler) {
|
| + __ Frame(2);
|
| + __ LoadConstant(0, Object::null_object());
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(-1)));
|
| + __ IfEqNull(0);
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(42)));
|
| + __ Return(1);
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_RUN(IfEqNullIsNull, test) {
|
| + EXPECT_EQ(42, EXECUTE_TEST_CODE_INTPTR(test->code()));
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_GENERATE(IfNeNullIsNull, assembler) {
|
| + __ Frame(2);
|
| + __ LoadConstant(0, Object::null_object());
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(42)));
|
| + __ IfNeNull(0);
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(-1)));
|
| + __ Return(1);
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_RUN(IfNeNullIsNull, test) {
|
| + EXPECT_EQ(42, EXECUTE_TEST_CODE_INTPTR(test->code()));
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_GENERATE(IfNeNullNotNull, assembler) {
|
| + __ Frame(2);
|
| + __ LoadConstant(0, Smi::Handle(Smi::New(-1)));
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(-1)));
|
| + __ IfNeNull(0);
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(42)));
|
| + __ Return(1);
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_RUN(IfNeNullNotNull, test) {
|
| + EXPECT_EQ(42, EXECUTE_TEST_CODE_INTPTR(test->code()));
|
| +}
|
| +
|
| } // namespace dart
|
|
|
| #endif // defined(TARGET_ARCH_DBC)
|
|
|