cpu.ppc: fix optimizing compiler backend

release
Slava Pestov 2010-04-01 21:41:13 -05:00
parent 2cab0bb86c
commit 044171e6b9
1 changed files with 6 additions and 5 deletions

View File

@ -60,6 +60,8 @@ CONSTANT: vm-reg 15
M: ppc %vm-field ( dst field -- ) [ vm-reg ] dip LWZ ; M: ppc %vm-field ( dst field -- ) [ vm-reg ] dip LWZ ;
M: ppc %set-vm-field ( src field -- ) [ vm-reg ] dip STW ;
GENERIC: loc-reg ( loc -- reg ) GENERIC: loc-reg ( loc -- reg )
M: ds-loc loc-reg drop ds-reg ; M: ds-loc loc-reg drop ds-reg ;
@ -563,8 +565,7 @@ M:: ppc %compare-float-unordered-branch ( label src1 src2 cc -- )
} case ; } case ;
: next-param@ ( n -- reg x ) : next-param@ ( n -- reg x )
2 1 stack-frame get total-size>> LWZ [ 17 ] dip param@ ;
[ 2 ] dip param@ ;
: store-to-frame ( src n rep -- ) : store-to-frame ( src n rep -- )
{ {
@ -745,14 +746,14 @@ M: ppc %alien-callback ( quot -- )
M: ppc %end-callback ( -- ) M: ppc %end-callback ( -- )
3 %load-vm-addr 3 %load-vm-addr
"unnest_context" f %alien-invoke ; "end_callback" f %alien-invoke ;
M: ppc %end-callback-value ( ctype -- ) M: ppc %end-callback-value ( ctype -- )
! Save top of data stack ! Save top of data stack
12 ds-reg 0 LWZ 16 ds-reg 0 LWZ
%end-callback %end-callback
! Restore top of data stack ! Restore top of data stack
3 12 MR 3 16 MR
! Unbox former top of data stack to return registers ! Unbox former top of data stack to return registers
unbox-return ; unbox-return ;