diff --git a/basis/cpu/x86/x86.factor b/basis/cpu/x86/x86.factor index a086f6e32c..aa9d7683d4 100644 --- a/basis/cpu/x86/x86.factor +++ b/basis/cpu/x86/x86.factor @@ -193,40 +193,36 @@ M: x86 %unbox-alien ( dst src -- ) alien-offset [+] MOV ; M:: x86 %unbox-any-c-ptr ( dst src -- ) - [ - "end" define-label - dst dst XOR - ! Is the object f? - src \ f type-number CMP - "end" get 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" get JNE - ! If so, load the offset and add it to the address - dst src alien-offset [+] MOV - "end" resolve-label - ] with-scope ; +