diff options
author | Jan Kotas <jkotas@microsoft.com> | 2015-02-28 09:23:04 -0800 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2015-03-02 08:40:10 -0800 |
commit | 217560fb22b531441a14e2a62dce19b26e987f10 (patch) | |
tree | ccc931989f86241f3740963b854b000c0904bd91 /src/vm/amd64/calldescrworkeramd64.S | |
parent | 22aeaa1109dff3a042b6f059af865ffd545ebe0e (diff) | |
download | coreclr-217560fb22b531441a14e2a62dce19b26e987f10.tar.gz coreclr-217560fb22b531441a14e2a62dce19b26e987f10.tar.bz2 coreclr-217560fb22b531441a14e2a62dce19b26e987f10.zip |
Update assembly helpers to use regular RBP frames
Diffstat (limited to 'src/vm/amd64/calldescrworkeramd64.S')
-rw-r--r-- | src/vm/amd64/calldescrworkeramd64.S | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/vm/amd64/calldescrworkeramd64.S b/src/vm/amd64/calldescrworkeramd64.S index 16bcca2758..27f2f09d6a 100644 --- a/src/vm/amd64/calldescrworkeramd64.S +++ b/src/vm/amd64/calldescrworkeramd64.S @@ -16,7 +16,8 @@ // EXTERN_C void FastCallFinalizeWorker(Object *obj, PCODE funcPtr); // NESTED_ENTRY FastCallFinalizeWorker, _TEXT, CallDescrWorkerUnwindFrameChainHandler - alloc_stack 0x28 // alloc callee scratch and align the stack + push_nonvol_reg rbp + mov rbp, rsp END_PROLOGUE // @@ -32,7 +33,7 @@ NESTED_ENTRY FastCallFinalizeWorker, _TEXT, CallDescrWorkerUnwindFrameChainHandl xor rax, rax // epilog - add rsp, 0x28 + pop_nonvol_reg rbp ret @@ -41,10 +42,11 @@ NESTED_END FastCallFinalizeWorker, _TEXT //extern "C" void CallDescrWorkerInternal(CallDescrData * pCallDescrData); NESTED_ENTRY CallDescrWorkerInternal, _TEXT, CallDescrWorkerUnwindFrameChainHandler - push_nonvol_reg rbx // save nonvolatile registers - push_nonvol_reg rbp // - set_frame rbp, 0 // set frame pointer - lea rsp, [rsp - 8] // ensure proper alignment of the rsp + push_nonvol_reg rbp + mov rbp, rsp + push_nonvol_reg rbx + lea rsp, [rsp - 8] // ensure proper alignment of the rsp + set_cfa_register rbp, (4*8) END_PROLOGUE @@ -114,12 +116,10 @@ LOCAL_LABEL(ReturnsInt): mov [rbx+CallDescrData__returnValue], rax LOCAL_LABEL(Epilog): - lea rsp, 0[rbp] // deallocate argument list - .cfi_def_cfa_register rsp - pop rbp // restore nonvolatile register - .cfi_adjust_cfa_offset -8 // - pop rbx // - .cfi_adjust_cfa_offset -8 // + lea rsp, [rbp - 8] // deallocate arguments + set_cfa_register rsp, (3*8) + pop_nonvol_reg rbx + pop_nonvol_reg rbp ret LOCAL_LABEL(ReturnsFloat): |