cpu.x86.32: fix magic stack frame handling

db4
Slava Pestov 2009-10-16 21:07:09 -05:00
parent 7676e0b727
commit b762238f63
1 changed files with 7 additions and 8 deletions

View File

@ -265,20 +265,19 @@ M: x86.32 %unnest-stacks ( -- )
] with-aligned-stack ; ] with-aligned-stack ;
M: x86.32 %prepare-alien-indirect ( -- ) M: x86.32 %prepare-alien-indirect ( -- )
push-vm-ptr "unbox_alien" f %alien-invoke 4 [
temp-reg POP push-vm-ptr
"unbox_alien" f %alien-invoke
] with-aligned-stack
EBP EAX MOV ; EBP EAX MOV ;
M: x86.32 %alien-indirect ( -- ) M: x86.32 %alien-indirect ( -- )
EBP CALL ; EBP CALL ;
M: x86.32 %alien-callback ( quot -- ) M: x86.32 %alien-callback ( quot -- )
4 [ param-reg-1 swap %load-reference
EAX swap %load-reference param-reg-2 %mov-vm-ptr
EAX PUSH "c_to_factor" f %alien-invoke ;
param-reg-2 %mov-vm-ptr
"c_to_factor" f %alien-invoke
] with-aligned-stack ;
M: x86.32 %callback-value ( ctype -- ) M: x86.32 %callback-value ( ctype -- )
! Align C stack ! Align C stack