| Index: runtime/vm/assembler_x64_test.cc
|
| ===================================================================
|
| --- runtime/vm/assembler_x64_test.cc (revision 27291)
|
| +++ runtime/vm/assembler_x64_test.cc (working copy)
|
| @@ -200,6 +200,28 @@
|
| __ movq(RAX, Address(R13, R10, TIMES_2, 256 * kWordSize));
|
| __ movq(RAX, Address(R13, R12, TIMES_2, 256 * kWordSize));
|
| __ movq(RAX, Address(R13, R13, TIMES_2, 256 * kWordSize));
|
| +
|
| + __ movq(RAX, Address::AddressBaseImm32(RSP, 0));
|
| + __ movq(RAX, Address::AddressBaseImm32(RBP, 0));
|
| + __ movq(RAX, Address::AddressBaseImm32(RAX, 0));
|
| + __ movq(RAX, Address::AddressBaseImm32(R10, 0));
|
| + __ movq(RAX, Address::AddressBaseImm32(R12, 0));
|
| + __ movq(RAX, Address::AddressBaseImm32(R13, 0));
|
| + __ movq(R10, Address::AddressBaseImm32(RAX, 0));
|
| +
|
| + __ movq(RAX, Address::AddressBaseImm32(RSP, kWordSize));
|
| + __ movq(RAX, Address::AddressBaseImm32(RBP, kWordSize));
|
| + __ movq(RAX, Address::AddressBaseImm32(RAX, kWordSize));
|
| + __ movq(RAX, Address::AddressBaseImm32(R10, kWordSize));
|
| + __ movq(RAX, Address::AddressBaseImm32(R12, kWordSize));
|
| + __ movq(RAX, Address::AddressBaseImm32(R13, kWordSize));
|
| +
|
| + __ movq(RAX, Address::AddressBaseImm32(RSP, -kWordSize));
|
| + __ movq(RAX, Address::AddressBaseImm32(RBP, -kWordSize));
|
| + __ movq(RAX, Address::AddressBaseImm32(RAX, -kWordSize));
|
| + __ movq(RAX, Address::AddressBaseImm32(R10, -kWordSize));
|
| + __ movq(RAX, Address::AddressBaseImm32(R12, -kWordSize));
|
| + __ movq(RAX, Address::AddressBaseImm32(R13, -kWordSize));
|
| }
|
|
|
|
|
| @@ -2159,14 +2181,15 @@
|
| ObjectStore* object_store = Isolate::Current()->object_store();
|
| const Object& obj = Object::ZoneHandle(object_store->smi_class());
|
| Label fail;
|
| - __ LoadObject(RAX, obj);
|
| + __ EnterDartFrame(0);
|
| + __ LoadObject(RAX, obj, PP);
|
| __ CompareObject(RAX, obj);
|
| __ j(NOT_EQUAL, &fail);
|
| - __ LoadObject(RCX, obj);
|
| + __ LoadObject(RCX, obj, PP);
|
| __ CompareObject(RCX, obj);
|
| __ j(NOT_EQUAL, &fail);
|
| const Smi& smi = Smi::ZoneHandle(Smi::New(15));
|
| - __ LoadObject(RCX, smi);
|
| + __ LoadObject(RCX, smi, PP);
|
| __ CompareObject(RCX, smi);
|
| __ j(NOT_EQUAL, &fail);
|
| __ pushq(RAX);
|
| @@ -2180,9 +2203,11 @@
|
| __ CompareObject(RCX, smi);
|
| __ j(NOT_EQUAL, &fail);
|
| __ movl(RAX, Immediate(1)); // OK
|
| + __ LeaveFrameWithPP();
|
| __ ret();
|
| __ Bind(&fail);
|
| __ movl(RAX, Immediate(0)); // Fail.
|
| + __ LeaveFrameWithPP();
|
| __ ret();
|
| }
|
|
|
| @@ -2393,12 +2418,14 @@
|
|
|
| // Called from assembler_test.cc.
|
| ASSEMBLER_TEST_GENERATE(StoreIntoObject, assembler) {
|
| + __ EnterDartFrame(0);
|
| __ pushq(CTX);
|
| __ movq(CTX, RDI);
|
| __ StoreIntoObject(RDX,
|
| FieldAddress(RDX, GrowableObjectArray::data_offset()),
|
| RSI);
|
| __ popq(CTX);
|
| + __ LeaveFrameWithPP();
|
| __ ret();
|
| }
|
|
|
|
|