 
         dst displacement base temp
         {
-            { [ base-class \ f class<= ] [ 2drop %box-displaced-alien/f ] }
+            { [ base-class \ f class<= ] [ drop %box-displaced-alien/f ] }
             { [ base-class \ alien class<= ] [ %box-displaced-alien/alien ] }
             { [ base-class \ byte-array class<= ] [ %box-displaced-alien/byte-array ] }
             [ %box-displaced-alien/dynamic ]

: store-to-frame ( src n rep -- )
    {
        { int-rep [ [ 1 ] dip STW ] }
        { float-rep [ [ 1 ] dip STFS ] }
        { double-rep [ [ 1 ] dip STFD ] }
        { stack-params [ [ [ 0 ] dip next-param@ LWZ 0 1 ] dip STW ] }

    temp2 load-decks-offset
    temp1 scratch-reg temp2 STBX ;

M:: ppc %write-barrier ( src slot scale tag temp1 temp2 -- )
    scale 0 assert= tag 0 assert=
    temp1 src slot ADD
    temp1 temp2 (%write-barrier) ;

M:: ppc %write-barrier-imm ( src slot tag temp1 temp2 -- )
    temp1 src slot tag slot-offset ADDI
    temp1 temp2 (%write-barrier) ;

M:: ppc %check-nursery-branch ( label size cc temp1 temp2 -- )
    temp1 vm-reg "nursery" vm-field-offset LWZ
    temp2 vm-reg "nursery" vm-field-offset 2 cells + LWZ
    temp1 temp1 size ADDI
    ! is here >= end?
    temp1 0 temp2 CMP
