cpu.x86.32: fix 32-bit bootstrap
parent
0e0efbd24a
commit
b346cbd6b0
|
@ -292,6 +292,15 @@ IN: bootstrap.x86
|
|||
|
||||
[ jit-set-context ] \ (set-context) define-sub-primitive
|
||||
|
||||
: jit-save-quot-and-param ( -- )
|
||||
EDX ds-reg MOV
|
||||
ds-reg 8 SUB ;
|
||||
|
||||
: jit-push-param ( -- )
|
||||
EAX EDX -4 [+] MOV
|
||||
ds-reg 4 ADD
|
||||
ds-reg [] EAX MOV ;
|
||||
|
||||
: jit-start-context ( -- )
|
||||
! Create the new context in return-reg
|
||||
jit-load-vm
|
||||
|
@ -299,17 +308,12 @@ IN: bootstrap.x86
|
|||
ESP [] vm-reg MOV
|
||||
"new_context" jit-call
|
||||
|
||||
! Save pointer to quotation and parameter
|
||||
EDX ds-reg MOV
|
||||
ds-reg 8 SUB
|
||||
jit-save-quot-and-param
|
||||
|
||||
! Make the new context active
|
||||
EAX jit-switch-context
|
||||
|
||||
! Push parameter
|
||||
EAX EDX -4 [+] MOV
|
||||
ds-reg 4 ADD
|
||||
ds-reg [] EAX MOV
|
||||
jit-push-param
|
||||
|
||||
! Windows-specific setup
|
||||
jit-install-seh
|
||||
|
@ -342,9 +346,11 @@ IN: bootstrap.x86
|
|||
ESP 4 [+] ctx-reg MOV
|
||||
"reset_context" jit-call
|
||||
|
||||
jit-pop-quot-and-param
|
||||
jit-save-quot-and-param
|
||||
ctx-reg jit-switch-context
|
||||
jit-push-param
|
||||
|
||||
EAX EDX [] MOV
|
||||
jit-jump-quot ;
|
||||
|
||||
[
|
||||
|
|
Loading…
Reference in New Issue