Comment: | Remove unnecessary `short` from assembly |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
71d8f813efdaea4acdc0f958a22b71ba |
User & Date: | js on 2023-10-28 18:45:35 |
Other Links: | manifest | tags |
2023-10-28
| ||
18:50 | Fix accidentally left over movq check-in: 7a1b76cbec user: js tags: trunk | |
18:45 | Remove unnecessary `short` from assembly check-in: 71d8f813ef user: js tags: trunk | |
18:35 | Use more local labels in assembly check-in: cb18f26404 user: js tags: trunk | |
Modified src/forwarding/forwarding-amd64-elf.S from [60cb5f07a9] to [c81bf7cc2c].
︙ | ︙ | |||
48 49 50 51 52 53 54 | call object_getClass@PLT mov rdi, rax lea rsi, [rip + .Lsel_forwardingTargetForSelector_] call class_respondsToSelector@PLT test rax, rax | | | | | 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | call object_getClass@PLT mov rdi, rax lea rsi, [rip + .Lsel_forwardingTargetForSelector_] call class_respondsToSelector@PLT test rax, rax jz 0f mov rdi, [rbp - 0x10] lea rsi, [rip + .Lsel_forwardingTargetForSelector_] call objc_msg_lookup@PLT mov rdi, [rbp - 0x10] lea rsi, [rip + .Lsel_forwardingTargetForSelector_] mov rdx, [rbp - 0x18] call rax test rax, rax jz 0f cmp rax, [rbp - 0x10] je 0f mov [rbp - 0x10], rax mov rdi, rax mov rsi, [rbp - 0x18] call objc_msg_lookup@PLT mov r11, rax |
︙ | ︙ | |||
134 135 136 137 138 139 140 | call object_getClass@PLT mov rdi, rax lea rsi, [rip + .Lsel_forwardingTargetForSelector_] call class_respondsToSelector@PLT test rax, rax | | | | | 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | call object_getClass@PLT mov rdi, rax lea rsi, [rip + .Lsel_forwardingTargetForSelector_] call class_respondsToSelector@PLT test rax, rax jz 0f mov rdi, [rbp - 0x18] lea rsi, [rip + .Lsel_forwardingTargetForSelector_] call objc_msg_lookup@PLT mov rdi, [rbp - 0x18] lea rsi, [rip + .Lsel_forwardingTargetForSelector_] mov rdx, [rbp - 0x20] call rax test rax, rax jz 0f cmp rax, [rbp - 0x18] je 0f mov [rbp - 0x18], rax mov rdi, rax mov rsi, [rbp - 0x20] call objc_msg_lookup_stret@PLT mov r11, rax |
︙ | ︙ |
Modified src/forwarding/forwarding-amd64-win64.S from [bb16226b9b] to [43dda63d1e].
︙ | ︙ | |||
40 41 42 43 44 45 46 | call object_getClass mov rcx, rax lea rdx, [rip + .Lsel_forwardingTargetForSelector_] call class_respondsToSelector test rax, rax | | | | | 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | call object_getClass mov rcx, rax lea rdx, [rip + .Lsel_forwardingTargetForSelector_] call class_respondsToSelector test rax, rax jz 0f mov rcx, [rbp - 0x30] lea rdx, [rip + .Lsel_forwardingTargetForSelector_] call objc_msg_lookup mov rcx, [rbp - 0x30] lea rdx, [rip + .Lsel_forwardingTargetForSelector_] mov r8, [rbp - 0x38] call rax test rax, rax jz 0f cmp rax, [rbp - 0x30] je 0f mov [rbp - 0x30], rax mov rcx, rax mov rdx, [rbp - 0x38] call objc_msg_lookup mov r11, rax |
︙ | ︙ | |||
116 117 118 119 120 121 122 | call object_getClass mov rcx, rax lea rdx, [rip + .Lsel_forwardingTargetForSelector_] call class_respondsToSelector test rax, rax | | | | | 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | call object_getClass mov rcx, rax lea rdx, [rip + .Lsel_forwardingTargetForSelector_] call class_respondsToSelector test rax, rax jz 0f mov rcx, [rbp - 0x38] lea rdx, [rip + .Lsel_forwardingTargetForSelector_] call objc_msg_lookup mov rcx, [rbp - 0x38] lea rdx, [rip + .Lsel_forwardingTargetForSelector_] mov r8, [rbp - 0x40] call rax test rax, rax jz 0f cmp rax, [rbp - 0x38] je 0f mov [rbp - 0x38], rax mov rcx, rax mov rdx, [rbp - 0x40] call objc_msg_lookup_stret mov r11, rax |
︙ | ︙ |
Modified src/forwarding/forwarding-x86-elf.S from [7d07165df3] to [6488f750ac].
︙ | ︙ | |||
39 40 41 42 43 44 45 | mov [esp], eax lea eax, [ebx + .Lsel_forwardingTargetForSelector_@GOTOFF] mov [esp + 4], eax call class_respondsToSelector@PLT test eax, eax | | | | | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | mov [esp], eax lea eax, [ebx + .Lsel_forwardingTargetForSelector_@GOTOFF] mov [esp + 4], eax call class_respondsToSelector@PLT test eax, eax jz 0f mov eax, [ebp + 8] mov [esp], eax lea eax, [ebx + .Lsel_forwardingTargetForSelector_@GOTOFF] mov [esp + 4], eax call objc_msg_lookup@PLT mov edx, [ebp + 8] mov [esp], edx lea edx, [ebx + .Lsel_forwardingTargetForSelector_@GOTOFF] mov [esp + 4], edx mov edx, [ebp + 12] mov [esp + 8], edx call eax test eax, eax jz 0f cmp eax, [ebp + 8] je 0f mov [ebp + 8], eax mov [esp], eax mov eax, [ebp + 12] mov [esp + 4], eax call objc_msg_lookup@PLT |
︙ | ︙ | |||
103 104 105 106 107 108 109 | mov [esp], eax lea eax, [ebx + .Lsel_forwardingTargetForSelector_@GOTOFF] mov [esp + 4], eax call class_respondsToSelector@PLT test eax, eax | | | | | | 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | mov [esp], eax lea eax, [ebx + .Lsel_forwardingTargetForSelector_@GOTOFF] mov [esp + 4], eax call class_respondsToSelector@PLT test eax, eax jz 0f mov eax, [ebp + 12] mov [esp], eax lea eax, [ebx + .Lsel_forwardingTargetForSelector_@GOTOFF] mov [esp + 4], eax call objc_msg_lookup@PLT mov edx, [ebp + 12] mov [esp], edx lea edx, [ebx + .Lsel_forwardingTargetForSelector_@GOTOFF] mov [esp + 4], edx mov edx, [ebp + 16] mov [esp + 8], edx call eax test eax, eax jz 0f cmp eax, [ebp + 12] je 0f mov [ebp + 12], eax mov [esp], eax mov eax, [ebp + 16] mov [esp + 4], eax call objc_msg_lookup_stret@PLT |
︙ | ︙ |
Modified src/forwarding/forwarding-x86-win32.S from [a9803a8051] to [e2482c7f1d].
︙ | ︙ | |||
34 35 36 37 38 39 40 | mov [esp], eax mov eax, offset .Lsel_forwardingTargetForSelector_ mov [esp + 4], eax call _class_respondsToSelector test eax, eax | | | | | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | mov [esp], eax mov eax, offset .Lsel_forwardingTargetForSelector_ mov [esp + 4], eax call _class_respondsToSelector test eax, eax jz 0f mov eax, [ebp + 8] mov [esp], eax mov eax, offset .Lsel_forwardingTargetForSelector_ mov [esp + 4], eax call _objc_msg_lookup mov edx, [ebp + 8] mov [esp], edx mov edx, offset .Lsel_forwardingTargetForSelector_ mov [esp + 4], edx mov edx, [ebp + 12] mov [esp + 8], edx call eax test eax, eax jz 0f cmp eax, [ebp + 8] je 0f mov [ebp + 8], eax mov [esp], eax mov eax, [ebp + 12] mov [esp + 4], eax call _objc_msg_lookup |
︙ | ︙ | |||
95 96 97 98 99 100 101 | mov [esp], eax mov eax, offset .Lsel_forwardingTargetForSelector_ mov [esp + 4], eax call _class_respondsToSelector test eax, eax | | | | | | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | mov [esp], eax mov eax, offset .Lsel_forwardingTargetForSelector_ mov [esp + 4], eax call _class_respondsToSelector test eax, eax jz 0f mov eax, [ebp + 12] mov [esp], eax mov eax, offset .Lsel_forwardingTargetForSelector_ mov [esp + 4], eax call _objc_msg_lookup mov edx, [ebp + 12] mov [esp], edx mov edx, offset .Lsel_forwardingTargetForSelector_ mov [esp + 4], edx mov edx, [ebp + 16] mov [esp + 8], edx call eax test eax, eax jz 0f cmp eax, [ebp + 12] je 0f mov [ebp + 12], eax mov [esp], eax mov eax, [ebp + 16] mov [esp + 4], eax call _objc_msg_lookup_stret add esp, 20 pop ebx pop ebp jmp eax |
︙ | ︙ |
Modified src/platform/x86/OFAtomic.h from [19cc36e8a6] to [5dfd999b87].
︙ | ︙ | |||
233 234 235 236 237 238 239 | __asm__ __volatile__ ( "0:\n\t" "mov{l} { %2, %0 | %0, %2 }\n\t" "mov{l} { %0, %%eax | eax, %0 }\n\t" "or{l} { %1, %0 | %0, %1 }\n\t" "lock\n\t" "cmpxchg{l} { %0, %2 | %2, %0 }\n\t" | | | 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 | __asm__ __volatile__ ( "0:\n\t" "mov{l} { %2, %0 | %0, %2 }\n\t" "mov{l} { %0, %%eax | eax, %0 }\n\t" "or{l} { %1, %0 | %0, %1 }\n\t" "lock\n\t" "cmpxchg{l} { %0, %2 | %2, %0 }\n\t" "jne 0b" : "=&r"(i) : "r"(i), "m"(*p) : "eax", "cc" ); return i; } |
︙ | ︙ | |||
256 257 258 259 260 261 262 | __asm__ __volatile__ ( "0:\n\t" "mov{q} { %2, %0 | %0, %2 }\n\t" "mov{q} { %0, %%rax | rax, %0 }\n\t" "or{q} { %1, %0 | %0, %1 }\n\t" "lock\n\t" "cmpxchg{q} { %0, %2 | %2, %0 }\n\t" | | | 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 | __asm__ __volatile__ ( "0:\n\t" "mov{q} { %2, %0 | %0, %2 }\n\t" "mov{q} { %0, %%rax | rax, %0 }\n\t" "or{q} { %1, %0 | %0, %1 }\n\t" "lock\n\t" "cmpxchg{q} { %0, %2 | %2, %0 }\n\t" "jne 0b" : "=&r"(i) : "r"(i), "m"(*p) : "rax", "cc" ); #endif else abort(); |
︙ | ︙ | |||
278 279 280 281 282 283 284 | __asm__ __volatile__ ( "0:\n\t" "mov{l} { %2, %0 | %0, %2 }\n\t" "mov{l} { %0, %%eax | eax, %0 }\n\t" "and{l} { %1, %0 | %0, %1 }\n\t" "lock\n\t" "cmpxchg{l} { %0, %2 | %2, %0 }\n\t" | | | 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 | __asm__ __volatile__ ( "0:\n\t" "mov{l} { %2, %0 | %0, %2 }\n\t" "mov{l} { %0, %%eax | eax, %0 }\n\t" "and{l} { %1, %0 | %0, %1 }\n\t" "lock\n\t" "cmpxchg{l} { %0, %2 | %2, %0 }\n\t" "jne 0b" : "=&r"(i) : "r"(i), "m"(*p) : "eax", "cc" ); return i; } |
︙ | ︙ | |||
301 302 303 304 305 306 307 | __asm__ __volatile__ ( "0:\n\t" "mov{q} { %2, %0 | %0, %2 }\n\t" "mov{q} { %0, %%rax | rax, %0 }\n\t" "and{q} { %1, %0 | %0, %1 }\n\t" "lock\n\t" "cmpxchg{q} { %0, %2 | %2, %0 }\n\t" | | | 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 | __asm__ __volatile__ ( "0:\n\t" "mov{q} { %2, %0 | %0, %2 }\n\t" "mov{q} { %0, %%rax | rax, %0 }\n\t" "and{q} { %1, %0 | %0, %1 }\n\t" "lock\n\t" "cmpxchg{q} { %0, %2 | %2, %0 }\n\t" "jne 0b" : "=&r"(i) : "r"(i), "m"(*p) : "rax", "cc" ); #endif else abort(); |
︙ | ︙ | |||
323 324 325 326 327 328 329 | __asm__ __volatile__ ( "0:\n\t" "mov{l} { %2, %0 | %0, %2 }\n\t" "mov{l} { %0, %%eax | eax, %0 }\n\t" "xor{l} { %1, %0 | %0, %1 }\n\t" "lock\n\t" "cmpxchg{l} { %0, %2 | %2, %0 }\n\t" | | | 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 | __asm__ __volatile__ ( "0:\n\t" "mov{l} { %2, %0 | %0, %2 }\n\t" "mov{l} { %0, %%eax | eax, %0 }\n\t" "xor{l} { %1, %0 | %0, %1 }\n\t" "lock\n\t" "cmpxchg{l} { %0, %2 | %2, %0 }\n\t" "jne 0b" : "=&r"(i) : "r"(i), "m"(*p) : "eax", "cc" ); return i; } |
︙ | ︙ | |||
346 347 348 349 350 351 352 | __asm__ __volatile__ ( "0:\n\t" "mov{q} { %2, %0 | %0, %2 }\n\t" "mov{q} { %0, %%rax | rax, %0 }\n\t" "xor{q} { %1, %0 | %0, %1 }\n\t" "lock\n\t" "cmpxchg{q} { %0, %2 | %2, %0 }\n\t" | | | 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 | __asm__ __volatile__ ( "0:\n\t" "mov{q} { %2, %0 | %0, %2 }\n\t" "mov{q} { %0, %%rax | rax, %0 }\n\t" "xor{q} { %1, %0 | %0, %1 }\n\t" "lock\n\t" "cmpxchg{q} { %0, %2 | %2, %0 }\n\t" "jne 0b" : "=&r"(i) : "r"(i), "m"(*p) : "rax", "cc" ); #endif else abort(); |
︙ | ︙ |
Modified src/runtime/lookup-asm/lookup-asm-amd64-elf.S from [d1cf6bd700] to [c80a243830].
︙ | ︙ | |||
24 25 26 27 28 29 30 | .globl objc_msg_lookup_super .globl objc_msg_lookup_super_stret .section .text .macro GENERATE_LOOKUP name notFound \name: test rdi, rdi | | | | | | | | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | .globl objc_msg_lookup_super .globl objc_msg_lookup_super_stret .section .text .macro GENERATE_LOOKUP name notFound \name: test rdi, rdi jz .LreturnNilMethod test dil, 1 jnz .LtaggedPointer_\name mov r8, [rdi] mov r8, [r8 + 64] .Lmain_\name: mov rax, [rsi] movzx ecx, ah movzx edx, al #ifdef OF_SELUID24 shr eax, 16 mov r8, [r8 + 8 * rax] #endif mov r8, [r8 + 8 * rcx] mov rax, [r8 + 8 * rdx] test rax, rax jz \notFound@PLT ret .LtaggedPointer_\name: mov rax, [rip + objc_taggedPointerSecret@GOTPCREL] xor rdi, [rax] and dil, 0xE movzx r8d, dil mov rax, [rip + objc_taggedPointerClasses@GOTPCREL] mov r8, [rax + 4 * r8] mov r8, [r8 + 64] jmp .Lmain_\name .type \name, %function .size \name, .-\name .endm .macro GENERATE_LOOKUP_SUPER name lookup \name: mov r8, rdi mov rdi, [rdi] test rdi, rdi jz .LreturnNilMethod mov r8, [r8 + 8] mov r8, [r8 + 64] jmp .Lmain_\lookup .type \name, %function .size \name, .-\name .endm GENERATE_LOOKUP objc_msg_lookup objc_methodNotFound GENERATE_LOOKUP objc_msg_lookup_stret objc_methodNotFound_stret GENERATE_LOOKUP_SUPER objc_msg_lookup_super objc_msg_lookup |
︙ | ︙ |
Modified src/runtime/lookup-asm/lookup-asm-amd64-win64.S from [2fecd29e3d] to [aebc3c4fb2].
︙ | ︙ | |||
22 23 24 25 26 27 28 | .globl objc_msg_lookup_super .globl objc_msg_lookup_super_stret .section .text .macro GENERATE_LOOKUP name notFound \name: test rcx, rcx | | | | | | | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | .globl objc_msg_lookup_super .globl objc_msg_lookup_super_stret .section .text .macro GENERATE_LOOKUP name notFound \name: test rcx, rcx jz .LreturnNilMethod test cl, 1 jnz .LtaggedPointer_\name mov r8, [rcx] mov r8, [r8 + 56] .Lmain_\name: mov r10, rcx mov r11, rdx mov rax, [rdx] movzx ecx, ah movzx edx, al #ifdef OF_SELUID24 shr eax, 16 mov r8, [r8 + 8 * rax] #endif mov r8, [r8 + 8 * rcx] mov rax, [r8 + 8 * rdx] test rax, rax jz 0f ret 0: mov rcx, r10 mov rdx, r11 jmp \notFound .LtaggedPointer_\name: xor rcx, [rip + objc_taggedPointerSecret] and cl, 0xE movzx r8d, cl lea rax, [rip + objc_taggedPointerClasses] mov r8, [rax + 4 * r8] mov r8, [r8 + 56] jmp .Lmain_\name .def \name .scl 2 .type 32 .endef .endm .macro GENERATE_LOOKUP_SUPER name lookup |
︙ | ︙ |
Modified src/runtime/lookup-asm/lookup-asm-x86-elf.S from [cd6507b46d] to [657ef9388f].
︙ | ︙ | |||
25 26 27 28 29 30 31 | .globl objc_msg_lookup_super_stret .section .text .macro GENERATE_LOOKUP name notFound \name: mov edx, [esp + 4] test edx, edx | | | | | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | .globl objc_msg_lookup_super_stret .section .text .macro GENERATE_LOOKUP name notFound \name: mov edx, [esp + 4] test edx, edx jz .LreturnNilMethod test dl, 1 jnz .LtaggedPointer_\name mov edx, [edx] mov edx, [edx + 32] .Lmain_\name: mov eax, [esp + 8] #ifdef OF_SELUID24 movzx ecx, byte ptr [eax + 2] mov edx, [edx + 4 * ecx] #endif movzx ecx, byte ptr [eax + 1] mov edx, [edx + 4 * ecx] movzx ecx, byte ptr [eax] mov eax, [edx + 4 * ecx] test eax, eax jz 0f ret 0: call .LgetEIP add eax, offset _GLOBAL_OFFSET_TABLE_ mov eax, [eax + \notFound@GOT] |
︙ | ︙ | |||
69 70 71 72 73 74 75 | and dl, 0xE movzx edx, dl mov eax, [eax + objc_taggedPointerClasses@GOT] mov edx, [eax + 2 * edx] mov edx, [edx + 32] | | | | | 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | and dl, 0xE movzx edx, dl mov eax, [eax + objc_taggedPointerClasses@GOT] mov edx, [eax + 2 * edx] mov edx, [edx + 32] jmp .Lmain_\name .type \name, %function .size \name, .-\name .endm .macro GENERATE_LOOKUP_SUPER name lookup \name: mov edx, [esp + 4] mov eax, [edx] test eax, eax jz .LreturnNilMethod mov [esp + 4], eax mov edx, [edx + 4] mov edx, [edx + 32] jmp .Lmain_\lookup .type \name, %function .size \name, .-\name .endm GENERATE_LOOKUP objc_msg_lookup objc_methodNotFound GENERATE_LOOKUP objc_msg_lookup_stret objc_methodNotFound_stret GENERATE_LOOKUP_SUPER objc_msg_lookup_super objc_msg_lookup |
︙ | ︙ |
Modified src/runtime/lookup-asm/lookup-asm-x86-win32.S from [d9ae57eae0] to [8858e35bdf].
︙ | ︙ | |||
23 24 25 26 27 28 29 | .globl _objc_msg_lookup_super_stret .section .text .macro GENERATE_LOOKUP name notFound \name: mov edx, [esp + 4] test edx, edx | | | | | | | | | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | .globl _objc_msg_lookup_super_stret .section .text .macro GENERATE_LOOKUP name notFound \name: mov edx, [esp + 4] test edx, edx jz .LreturnNilMethod test dl, 1 jnz .LtaggedPointer_\name mov edx, [edx] mov edx, [edx + 32] .Lmain_\name: mov eax, [esp + 8] #ifdef OF_SELUID24 movzx ecx, byte ptr [eax + 2] mov edx, [edx + 4 * ecx] #endif movzx ecx, byte ptr [eax + 1] mov edx, [edx + 4 * ecx] movzx ecx, byte ptr [eax] mov eax, [edx + 4 * ecx] test eax, eax jz \notFound ret .LtaggedPointer_\name: xor edx, _objc_taggedPointerSecret and dl, 0xE movzx edx, dl mov edx, [_objc_taggedPointerClasses + 2 * edx] mov edx, [edx + 32] jmp .Lmain_\name .def \name .scl 2 .type 32 .endef .endm .macro GENERATE_LOOKUP_SUPER name lookup \name: mov edx, [esp + 4] mov eax, [edx] test eax, eax jz .LreturnNilMethod mov [esp + 4], eax mov edx, [edx + 4] mov edx, [edx + 32] jmp .Lmain_\lookup .def \name .scl 2 .type 32 .endef .endm GENERATE_LOOKUP _objc_msg_lookup _objc_methodNotFound |
︙ | ︙ |