 !   box_displaced_alien_alien(dst, displacement, base, temp);
 ! else
 !   box_displaced_alien_byte_array(dst, displacement, base, temp);
-:: box-displaced-alien/dynamic ( dst displacement base temp -- )
-    "not-f" define-label
-    "not-alien" define-label
+:: box-displaced-alien/dynamic ( dst displacement base temp end -- )
+    <label> :> not-f
+    <label> :> not-alien
 
     ! Is base f?
     0 base \ f type-number %compare-cell-imm
-    0 "not-f" get BNE
+    0 not-f BNE
     dst displacement base box-displaced-alien/f
-    "end" get B
+    end B
 
     ! Is base an alien?
-    "not-f" resolve-label
+    not-f resolve-label
     temp base tag-mask get ANDI.
     0 temp alien type-number %compare-cell-imm
-    0 "not-alien" get BNE
+    0 not-alien BNE
     dst displacement base temp box-displaced-alien/alien
-    "end" get B
+    end B
 
     ! Assume base is a byte array.
-    "not-alien" resolve-label
+    not-alien resolve-label
     dst displacement base temp box-displaced-alien/byte-array ;
 
 ! if (displacement == 0)

!   dst->address = src;
! }
M:: ppc %box-alien ( dst src temp -- )
    [
        "f" define-label

        ! Is the object f?
        dst \ f type-number LI
        0 src 0 %compare-cell-imm
        0 "f" get BEQ

        ! Allocate and initialize an alien object.
        dst 5 cells alien temp %allot
        temp \ f type-number LI
        scratch-reg dst %clear-tag-bits
        temp scratch-reg 1 cells %store-cell
        temp scratch-reg 2 cells %store-cell
        src scratch-reg 3 cells %store-cell
        src scratch-reg 4 cells %store-cell

        "f" resolve-label
    ] with-scope ;

! dst->base = base;
! dst->displacement = displacement;

!      box_displaced_alien_dynamic(dst, displacement, base, temp);
! }
M:: ppc %box-displaced-alien ( dst displacement base temp base-class -- )
    <label> :> end

    ! If displacement is zero, return the base.
    dst base MR
    0 displacement 0 %compare-cell-imm
    0 end BEQ

    ! Displacement is non-zero, we're going to be allocating a new
    ! object
    dst 5 cells alien temp %allot

    ! Set expired to f
    temp \ f type-number %load-immediate
    scratch-reg 2 alien@ LI
    temp dst scratch-reg %store-cell-x

    dst displacement base temp
    {
        { [ 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 ] }
        [ end box-displaced-alien/dynamic ]
    } cond

    end resolve-label ;

M:: ppc.32 %convert-integer ( dst src c-type -- )
    c-type {
