Index: runtime/vm/object_x64_test.cc |
=================================================================== |
--- runtime/vm/object_x64_test.cc (revision 1958) |
+++ runtime/vm/object_x64_test.cc (working copy) |
@@ -18,30 +18,35 @@ |
// Generate a simple dart code sequence. |
// This is used to test Code and Instruction object creation. |
void GenerateIncrement(Assembler* assembler) { |
- __ Unimplemented("GenerateIncrement"); |
+ __ movq(RAX, Immediate(0)); |
+ __ pushq(RAX); |
+ __ incq(Address(RSP, 0)); |
+ __ movq(RCX, Address(RSP, 0)); |
+ __ incq(RCX); |
+ __ popq(RAX); |
+ __ movq(RAX, RCX); |
+ __ ret(); |
} |
// Generate a dart code sequence that embeds a string object in it. |
// This is used to test Embedded String objects in the instructions. |
void GenerateEmbedStringInCode(Assembler* assembler, const char* str) { |
- __ Unimplemented("GenerateEmbedStringInCode"); |
+ const String& string_object = String::ZoneHandle(String::New(str)); |
+ __ LoadObject(RAX, string_object); |
+ __ ret(); |
} |
// Generate a dart code sequence that embeds a smi object in it. |
// This is used to test Embedded Smi objects in the instructions. |
-void GenerateEmbedSmiInCode(Assembler* assembler, int value) { |
- __ Unimplemented("GenerateEmbedSmiInCode"); |
+void GenerateEmbedSmiInCode(Assembler* assembler, intptr_t value) { |
+ const Smi& smi = Smi::Handle(Smi::New(value)); |
+ Object& smi_object = Object::ZoneHandle(smi.raw()); |
+ __ LoadObject(RAX, smi_object); |
srdjan
2011/12/01 01:26:07
Why can't you "LoadObject(RAX, smi)"?
regis
2011/12/01 01:42:04
Changed here and in object_ia32_test.cc, from wher
|
+ __ ret(); |
} |
- |
-// Generate code for a simple static dart function that returns 42. |
-// This is used to test invocation of dart functions from C++. |
-void GenerateReturn42(Assembler* assembler) { |
- __ Unimplemented("GenerateReturn42"); |
-} |
- |
} // namespace dart |
#endif // defined TARGET_ARCH_X64 |