summaryrefslogtreecommitdiff
path: root/src/vm/amd64/calldescrworkeramd64.S
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2015-02-28 09:23:04 -0800
committerJan Kotas <jkotas@microsoft.com>2015-03-02 08:40:10 -0800
commit217560fb22b531441a14e2a62dce19b26e987f10 (patch)
treeccc931989f86241f3740963b854b000c0904bd91 /src/vm/amd64/calldescrworkeramd64.S
parent22aeaa1109dff3a042b6f059af865ffd545ebe0e (diff)
downloadcoreclr-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.S24
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):