Index: src/runtime/lookup-asm/lookup-asm-x86-win32.S ================================================================== --- src/runtime/lookup-asm/lookup-asm-x86-win32.S +++ src/runtime/lookup-asm/lookup-asm-x86-win32.S @@ -53,15 +53,15 @@ jz \not_found ret .Ltagged_pointer_\name: + xor edx, _objc_tagged_pointer_secret and dl, 0xE movzx edx, dl - mov eax, offset _objc_tagged_pointer_classes - mov edx, [eax+edx*2] + mov edx, [_objc_tagged_pointer_classes+edx*2] mov edx, [edx+32] jmp short .Lmain_\name .endm Index: src/runtime/lookup-asm/lookup-asm-x86_64-win64.S ================================================================== --- src/runtime/lookup-asm/lookup-asm-x86_64-win64.S +++ src/runtime/lookup-asm/lookup-asm-x86_64-win64.S @@ -60,15 +60,15 @@ mov rcx, r10 mov rdx, r11 jmp \not_found .Ltagged_pointer_\name: + xor rcx, objc_tagged_pointer_secret and cl, 0xE movzx r8, cl - mov rax, offset objc_tagged_pointer_classes - mov r8, [rax+r8*4] + mov r8, [objc_tagged_pointer_classes+r8*4] mov r8, [r8+56] jmp short .Lmain_\name .endm