Differences From Artifact [c9c79ec3ea]:
- File
src/forwarding/forwarding-x86-win32.S
— part of check-in
[357bcde965]
at
2023-10-25 00:50:36
on branch trunk
— Move x86/Win32 assembly back to Intel syntax
This used to be in Intel syntax, but was moved back to AT&T syntax for
consistency with the Mach-O version, where the assembler doesn't support
the Intel syntax properly. However, it makes more sense to use Intel
syntax where possible. (user: js, size: 2877) [annotate] [blame] [check-ins using]
To Artifact [a9803a8051]:
- File src/forwarding/forwarding-x86-win32.S — part of check-in [cb18f26404] at 2023-10-28 18:35:43 on branch trunk — Use more local labels in assembly (user: js, size: 2909) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
29 30 31 32 33 34 35 | sub esp, 20 mov eax, [ebp + 8] mov [esp], eax call _object_getClass mov [esp], eax | | | | | 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 | sub esp, 20 mov eax, [ebp + 8] mov [esp], eax call _object_getClass mov [esp], eax mov eax, offset .Lsel_forwardingTargetForSelector_ mov [esp + 4], eax call _class_respondsToSelector test eax, eax jz short 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 short 0f |
︙ | ︙ | |||
90 91 92 93 94 95 96 | sub esp, 20 mov eax, [ebp + 12] mov [esp], eax call _object_getClass mov [esp], eax | | | | | 90 91 92 93 94 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 | sub esp, 20 mov eax, [ebp + 12] mov [esp], eax call _object_getClass mov [esp], eax mov eax, offset .Lsel_forwardingTargetForSelector_ mov [esp + 4], eax call _class_respondsToSelector test eax, eax jz short 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 short 0f |
︙ | ︙ | |||
139 140 141 142 143 144 145 | jmp _OFMethodNotFound_stret .def _OFForward_stret .scl 2 .type 32 .endef | | | | | | | | | | | | 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | jmp _OFMethodNotFound_stret .def _OFForward_stret .scl 2 .type 32 .endef .Linit: push ebp mov ebp, esp push ebx sub esp, 4 mov eax, offset .Lmodule mov [esp], eax call ___objc_exec_class add esp, 4 pop ebx pop ebp ret .section .ctors, "aw" .long .Linit .section .rodata .Lstr_forwardingTargetForSelector_: .asciz "forwardingTargetForSelector:" .section .data .Lsel_forwardingTargetForSelector_: .long .Lstr_forwardingTargetForSelector_, 0 .long 0, 0 .Lsymtab: .long 0, .Lsel_forwardingTargetForSelector_ .short 0, 0 .long 0 .long 0 .Lmodule: .long 8, 16, 0, .Lsymtab |