Chromium Code Reviews| Index: vm/assembler_macros_x64.cc |
| =================================================================== |
| --- vm/assembler_macros_x64.cc (revision 7576) |
| +++ vm/assembler_macros_x64.cc (working copy) |
| @@ -61,6 +61,31 @@ |
| } |
| } |
| + |
| +void AssemblerMacros::EnterDartFrame(Assembler* assembler, |
| + intptr_t frame_size) { |
| + intptr_t offset = assembler->CodeSize(); |
|
srdjan
2012/05/14 20:00:17
ditto
siva
2012/05/15 23:52:39
Done.
|
| + __ EnterFrame(0); |
| + Label dart_entry; |
| + __ call(&dart_entry); |
| + __ Bind(&dart_entry); |
| + // Adjust saved PC for any intrinsic code that could have been generated |
| + // before a frame is created. |
| + if (offset != 0) { |
| + __ addq(Address(RSP, 0), Immediate(-offset)); |
| + } |
| + if (frame_size != 0) { |
| + Immediate frame_space(frame_size); |
| + __ subq(RSP, frame_space); |
| + } |
| +} |
| + |
| + |
| +void AssemblerMacros::EnterStubFrame(Assembler* assembler) { |
| + __ EnterFrame(0); |
| + __ pushq(Immediate(0)); // Push 0 in the saved PC area for stub frames. |
| +} |
| + |
| #undef __ |
| } // namespace dart |