[Git][cmucl/cmucl][sparc64-dev] Update call_into_c for 64-bit sparc
Raymond Toy
rtoy at common-lisp.net
Mon Jan 2 23:30:49 UTC 2017
Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl
Commits:
6488147c by Raymond Toy at 2017-01-02T15:30:39-08:00
Update call_into_c for 64-bit sparc
- - - - -
1 changed file:
- src/lisp/sparc64-assem.S
Changes:
=====================================
src/lisp/sparc64-assem.S
=====================================
--- a/src/lisp/sparc64-assem.S
+++ b/src/lisp/sparc64-assem.S
@@ -152,20 +152,12 @@ lra:
.global call_into_c
FUNCDEF(call_into_c)
call_into_c:
-#ifdef v8plus
- stx %o2, [%fp + STACK_BIAS - 8 - 1*8]
- stx %o3, [%fp + STACK_BIAS - 8 - 2*8]
- stx %o4, [%fp + STACK_BIAS - 8 - 3*8]
- stx %o5, [%fp + STACK_BIAS - 8 - 4*8]
- stx %o6, [%fp + STACK_BIAS - 8 - 5*8]
- stx %o7, [%fp + STACK_BIAS - 8 - 6*8]
-#endif
/* Build a lisp stack frame */
mov reg_CFP, reg_OCFP
mov reg_CSP, reg_CFP
- add reg_CSP, 32, reg_CSP
- st reg_OCFP, [reg_CFP]
- st reg_CODE, [reg_CFP+8]
+ add reg_CSP, 64, reg_CSP
+ stn reg_OCFP, [reg_CFP]
+ stn reg_CODE, [reg_CFP+8]
/* Turn on pseudo-atomic. */
or reg_ALLOC, pseudo_atomic_Value, reg_ALLOC
@@ -173,7 +165,7 @@ call_into_c:
/* Convert the return address to an offset and save it on the stack. */
sub reg_LIP, reg_CODE, reg_L0
add reg_L0, type_OtherPointer, reg_L0
- st reg_L0, [reg_CFP+4]
+ stn reg_L0, [reg_CFP+2*8]
/* Store LISP state */
store(reg_BSP,current_binding_stack_pointer)
@@ -226,8 +218,8 @@ call_into_c:
load(current_control_frame_pointer, reg_CFP)
/* Get the return address back. */
- ld [reg_CFP+4], reg_LIP
- ld [reg_CFP+8], reg_CODE
+ ldn [reg_CFP+8], reg_LIP
+ ldn [reg_CFP+16], reg_CODE
add reg_LIP, reg_CODE, reg_LIP
sub reg_LIP, type_OtherPointer, reg_LIP
@@ -241,14 +233,6 @@ call_into_c:
mov reg_CFP, reg_CSP
mov reg_OCFP, reg_CFP
-#ifdef v8plus
- ldx [%fp + STACK_BIAS - 8 - 1*8], %o2
- ldx [%fp + STACK_BIAS - 8 - 2*8], %o3
- ldx [%fp + STACK_BIAS - 8 - 3*8], %o4
- ldx [%fp + STACK_BIAS - 8 - 4*8], %o5
- ldx [%fp + STACK_BIAS - 8 - 5*8], %o6
- ldx [%fp + STACK_BIAS - 8 - 6*8], %o7
-#endif
/* And back into lisp. */
ret
nop
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/6488147caa17ef75ef7ace9eb3380e3d85d57189
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cmucl-cvs/attachments/20170102/f6c08f08/attachment-0001.html>
More information about the cmucl-cvs
mailing list