Differences From Artifact [47f8ccf7d6]:
- File
src/runtime/lookup-asm/lookup-asm-x86_64-win64.S
— part of check-in
[b177aa1b8b]
at
2020-06-30 20:50:42
on branch trunk
— Convert all x86_64/Win64 ASM to Intel syntax
GAS has decent support for Intel syntax these days, so there is little
reason to stick with AT&T syntax. (user: js, size: 1690) [annotate] [blame] [check-ins using] [more...]
To Artifact [c662475fba]:
- File src/runtime/lookup-asm/lookup-asm-x86_64-win64.S — part of check-in [0579faebb2] at 2020-07-05 14:06:24 on branch tagged-pointers — lookup-asm-x86(_64)-*.S: Shave off one instruction (user: js, size: 1893) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
23 24 25 26 27 28 29 | .globl objc_msg_lookup_stret .globl objc_msg_lookup_super .globl objc_msg_lookup_super_stret .section .text .macro generate_lookup name not_found \name: | | > > > | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | .globl objc_msg_lookup_stret .globl objc_msg_lookup_super .globl objc_msg_lookup_super_stret .section .text .macro generate_lookup name not_found \name: test rcx, rcx jz short ret_nil bt ecx, 0 jc short .Ltagged_pointer_\name mov r8, [rcx] mov r8, [r8+56] .Lmain_\name: mov r10, rcx mov r11, rdx |
︙ | ︙ | |||
53 54 55 56 57 58 59 60 61 62 63 64 65 66 | ret 0: mov rcx, r10 mov rdx, r11 jmp \not_found .endm .macro generate_lookup_super name lookup \name: mov r8, rcx mov rcx, [rcx] test rcx, rcx | > > > > > > > > > > | 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | ret 0: mov rcx, r10 mov rdx, r11 jmp \not_found .Ltagged_pointer_\name: and cl, 0xE movzx r8, cl mov rax, offset objc_tagged_pointer_classes mov r8, [rax+r8*4] mov r8, [r8+56] jmp short .Lmain_\name .endm .macro generate_lookup_super name lookup \name: mov r8, rcx mov rcx, [rcx] test rcx, rcx |
︙ | ︙ |