cpu.ppc: stick old stack pointer in a register for use by callbacks
parent
eceabbc57e
commit
2cab0bb86c
|
@ -76,9 +76,12 @@ CONSTANT: nv-reg 17
|
||||||
432 save-at ;
|
432 save-at ;
|
||||||
|
|
||||||
[
|
[
|
||||||
|
! Save old stack pointer
|
||||||
|
11 1 MR
|
||||||
|
|
||||||
! Create stack frame
|
! Create stack frame
|
||||||
0 MFLR
|
0 MFLR
|
||||||
1 1 callback-frame-size neg STWU
|
1 1 callback-frame-size SUBI
|
||||||
0 1 callback-frame-size lr-save + STW
|
0 1 callback-frame-size lr-save + STW
|
||||||
|
|
||||||
! Save all non-volatile registers
|
! Save all non-volatile registers
|
||||||
|
@ -86,6 +89,10 @@ CONSTANT: nv-reg 17
|
||||||
nv-fp-regs [ 8 * 80 + save-fp ] each-index
|
nv-fp-regs [ 8 * 80 + save-fp ] each-index
|
||||||
nv-vec-regs [ 16 * 224 + save-vec ] each-index
|
nv-vec-regs [ 16 * 224 + save-vec ] each-index
|
||||||
|
|
||||||
|
! Stick old stack pointer in a non-volatile register so that
|
||||||
|
! callbacks can access their arguments
|
||||||
|
nv-reg 11 MR
|
||||||
|
|
||||||
! Load VM into vm-reg
|
! Load VM into vm-reg
|
||||||
0 vm-reg LOAD32 rc-absolute-ppc-2/2 rt-vm jit-rel
|
0 vm-reg LOAD32 rc-absolute-ppc-2/2 rt-vm jit-rel
|
||||||
|
|
||||||
|
@ -126,7 +133,7 @@ CONSTANT: nv-reg 17
|
||||||
|
|
||||||
! Tear down stack frame and return
|
! Tear down stack frame and return
|
||||||
0 1 callback-frame-size lr-save + LWZ
|
0 1 callback-frame-size lr-save + LWZ
|
||||||
1 1 0 LWZ
|
1 1 callback-frame-size ADDI
|
||||||
0 MTLR
|
0 MTLR
|
||||||
BLR
|
BLR
|
||||||
] callback-stub jit-define
|
] callback-stub jit-define
|
||||||
|
|
Loading…
Reference in New Issue