Chromium Code Reviews| Index: runtime/vm/assembler_x64_test.cc |
| =================================================================== |
| --- runtime/vm/assembler_x64_test.cc (revision 1958) |
| +++ runtime/vm/assembler_x64_test.cc (working copy) |
| @@ -1012,6 +1012,31 @@ |
| EXPECT_FLOAT_EQ(14.7, res, 0.001); |
| } |
| + |
| +ASSEMBLER_TEST_GENERATE(TestObjectCompare, assembler) { |
| + ObjectStore* object_store = Isolate::Current()->object_store(); |
| + const Object& obj = Object::ZoneHandle(object_store->smi_class()); |
| + Label fail; |
| + __ LoadObject(RAX, obj); |
| + __ CompareObject(RAX, obj); |
| + __ j(NOT_EQUAL, &fail); |
| + __ LoadObject(RCX, obj); |
| + __ CompareObject(RCX, obj); |
| + __ j(NOT_EQUAL, &fail); |
| + __ movl(RAX, Immediate(1)); // OK |
| + __ ret(); |
| + __ Bind(&fail); |
| + __ movl(RAX, Immediate(0)); // Fail. |
| + __ ret(); |
| +} |
| + |
| + |
| +ASSEMBLER_TEST_RUN(TestObjectCompare, entry) { |
| + typedef bool (*TestObjectCompare)(); |
| + bool res = reinterpret_cast<TestObjectCompare>(entry)(); |
|
srdjan
2011/12/01 01:26:07
I would say "int res = ", or use true and false in
regis
2011/12/01 01:42:04
Done.
|
| + EXPECT_EQ(true, res); |
| +} |
| + |
| } // namespace dart |
| #endif // defined TARGET_ARCH_X64 |