 : local@ ( n -- x )
     reserved-area-size param-save-size + + ; inline
 
-: spill-integer@ ( n -- offset )
-    spill-integer-offset local@ ;
-
-: spill-float@ ( n -- offset )
-    spill-float-offset local@ ;
+: spill@ ( n -- offset )
+    spill-offset local@ ;
 
 ! Some FP intrinsics need a temporary scratch area in the stack
 ! frame, 8 bytes in size. This is in the param-save area so it

M: int-regs param-regs drop { 3 4 5 6 7 8 9 10 } ;
M: float-regs return-reg drop 1 ;

M: int-regs %save-param-reg drop 1 rot local@ STW ;
M: int-regs %load-param-reg drop 1 rot local@ LWZ ;

M: single-float-rep %save-param-reg drop 1 rot local@ STFS ;
M: single-float-rep %load-param-reg 1 rot local@ LFS ;

M: double-float-rep %save-param-reg drop 1 rot local@ STFD ;
M: double-float-rep %load-param-reg 1 rot local@ LFD ;

M: stack-params %load-param-reg ( stack reg rep -- )
    drop [ 0 1 rot local@ LWZ 0 1 ] dip param@ STW ;

: next-param@ ( n -- x ) param@ stack-frame get total-size>> + ;

M: stack-params %save-param-reg ( stack reg rep -- )
    #! Funky. Read the parameter from the caller's stack frame.
    #! This word is used in callbacks
    drop
    [ 0 1 ] dip next-param@ LWZ
    [ 0 1 ] dip local@ STW ;

M: ppc %prepare-unbox ( -- )
    ! First parameter is top of stack

    fp-scratch-reg 1 0 scratch@ STFD
    dst 1 4 scratch@ LWZ ;

M: ppc %copy ( dst src rep -- )
    {
        { int-rep [ MR ] }
        { double-float-rep [ FMR ] }
    } case ;

M: ppc %unbox-float ( dst src -- ) float-offset LFD ;

