 
     ! Is base f?
     temp \ f type-number CMP
-    "not-f" get JNE
+    not-f JNE
 
     ! Yes, it is f. Fill in new object
     dst displacement %box-displaced-alien/f
 
-    "end" get JMP
-
-    "not-f" resolve-label
+    end JMP
+
+    not-f resolve-label
 
     ! Is base an alien?
     temp alien type-number CMP
-    "not-alien" get JNE
+    not-alien JNE
 
     dst displacement base temp %box-displaced-alien/alien
 
     ! We are done
-    "end" get JMP
+    end JMP
 
     ! Is base a byte array? It has to be, by now...
-    "not-alien" resolve-label
+    not-alien resolve-label
 
     dst displacement base temp %box-displaced-alien/byte-array ;
 
 M:: x86 %box-displaced-alien ( dst displacement base temp base-class -- )
-    [
-        "end" define-label
-
-        ! If displacement is zero, return the base
-        dst base MOV
-        displacement displacement TEST
-        "end" get JE
-
-        ! Displacement is non-zero, we're going to be allocating a new
-        ! object
-        dst 5 cells alien temp %allot
-
-        ! Set expired to f
-        dst 2 alien@ \ f type-number MOV
-
-        dst displacement base temp
-        {
-            { [ base-class \ f class<= ] [ 2drop %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 ]
-        } cond
-
-        "end" resolve-label
-    ] with-scope ;
+    <label> :> end
+
+    ! If displacement is zero, return the base
+    dst base MOV
+    displacement displacement TEST
+    end JE
+
+    ! Displacement is non-zero, we're going to be allocating a new
+    ! object
+    dst 5 cells alien temp %allot
+
+    ! Set expired to f
+    dst 2 alien@ \ f type-number MOV
+
+    dst displacement base temp
+    {
+        { [ base-class \ f class<= ] [ 2drop %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 ;
 
 ! The 'small-reg' mess is pretty crappy, but its only used on x86-32.
 ! On x86-64, all registers have 8-bit versions. However, a similar

    temp base displacement byte-array-offset [++] LEA
    dst 4 alien@ temp MOV ;

:: %box-displaced-alien/dynamic ( dst displacement base temp -- )
    "not-f" define-label
    "not-alien" define-label

    ! Check base type
    temp base MOV

    alien-offset [+] MOV ;

M:: x86 %unbox-any-c-ptr ( dst src -- )
    <label> :> end
    dst dst XOR
    ! Is the object f?
    src \ f type-number CMP
    end JE
    ! Compute tag in dst register
    dst src MOV
    dst tag-mask get AND
    ! Is the object an alien?
    dst alien type-number CMP
    ! Add an offset to start of byte array's data
    dst src byte-array-offset [+] LEA
    end JNE
    ! If so, load the offset and add it to the address
    dst src alien-offset [+] MOV
    end resolve-label ;

: alien@ ( reg n -- op ) cells alien type-number - [+] ;

M:: x86 %box-alien ( dst src temp -- )
    <label> :> end
    dst \ f type-number MOV
    src src TEST
    end JE
    dst 5 cells alien temp %allot
    dst 1 alien@ \ f type-number MOV ! base
    dst 2 alien@ \ f type-number MOV ! expired
    dst 3 alien@ src MOV ! displacement
    dst 4 alien@ src MOV ! address
    end resolve-label ;

:: %box-displaced-alien/f ( dst displacement -- )
    dst 1 alien@ \ f type-number MOV
