| Index: runtime/vm/assembler_dbc_test.cc
|
| diff --git a/runtime/vm/assembler_dbc_test.cc b/runtime/vm/assembler_dbc_test.cc
|
| index 9e4e2cdab4300fe276a5d6504b3ff0b804be6fec..8222143f1ddf9ae4e052a01c908915053dd16683 100644
|
| --- a/runtime/vm/assembler_dbc_test.cc
|
| +++ b/runtime/vm/assembler_dbc_test.cc
|
| @@ -1635,6 +1635,70 @@ ASSEMBLER_TEST_RUN(CheckClassIdFail, test) {
|
| EXPECT_EQ(42, EXECUTE_TEST_CODE_INTPTR(test->code()));
|
| }
|
|
|
| +
|
| +// - CheckNull rA, D
|
| +//
|
| +// If D == 1, skip the following instruction when FP[rA] is non-null.
|
| +// If D == 0, skip the following instruction when FP[rA] is null.
|
| +ASSEMBLER_TEST_GENERATE(CheckIsNotNullSucceed, assembler) {
|
| + __ Frame(2);
|
| + __ LoadConstant(0, Smi::Handle(Smi::New(-1)));
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(42)));
|
| + __ CheckNull(0, 1);
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(-1)));
|
| + __ Return(1);
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_RUN(CheckIsNotNullSucceed, test) {
|
| + EXPECT_EQ(42, EXECUTE_TEST_CODE_INTPTR(test->code()));
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_GENERATE(CheckIsNotNullFail, assembler) {
|
| + __ Frame(2);
|
| + __ LoadConstant(0, Object::null_object());
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(-1)));
|
| + __ CheckNull(0, 1);
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(42)));
|
| + __ Return(1);
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_RUN(CheckIsNotNullFail, test) {
|
| + EXPECT_EQ(42, EXECUTE_TEST_CODE_INTPTR(test->code()));
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_GENERATE(CheckIsNullSucceed, assembler) {
|
| + __ Frame(2);
|
| + __ LoadConstant(0, Object::null_object());
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(42)));
|
| + __ CheckNull(0, 0);
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(-1)));
|
| + __ Return(1);
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_RUN(CheckIsNullSucceed, test) {
|
| + EXPECT_EQ(42, EXECUTE_TEST_CODE_INTPTR(test->code()));
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_GENERATE(CheckIsNullFail, assembler) {
|
| + __ Frame(2);
|
| + __ LoadConstant(0, Smi::Handle(Smi::New(-1)));
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(-1)));
|
| + __ CheckNull(0, 0);
|
| + __ LoadConstant(1, Smi::Handle(Smi::New(42)));
|
| + __ Return(1);
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_RUN(CheckIsNullFail, test) {
|
| + EXPECT_EQ(42, EXECUTE_TEST_CODE_INTPTR(test->code()));
|
| +}
|
| +
|
| } // namespace dart
|
|
|
| #endif // defined(TARGET_ARCH_DBC)
|
|
|