cpu.x86.32: fix 32-bit bootstrap

db4
Slava Pestov 2010-08-02 20:51:29 -04:00
parent 0e0efbd24a
commit b346cbd6b0
1 changed files with 14 additions and 8 deletions

View File

@ -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 ;
[