Overview
Comment: | Move x86/Mach-O assembly back to AT&T syntax
Support for the Intel syntax is too buggy in toolchains to be usable. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
22e2cd67a2f7a53ff2d382ca6d437043 |
User & Date: | js on 2023-10-31 23:14:36 |
Other Links: | manifest | tags |
Context
2023-10-31
| ||
23:53 | OFMatrix4x4: Add Enhanced 3DNow! implementation check-in: 089a51310c user: js tags: trunk | |
23:14 | Move x86/Mach-O assembly back to AT&T syntax check-in: 22e2cd67a2 user: js tags: trunk | |
23:06 | Move AMD64/Mach-O assembly back to AT&T syntax check-in: 700468b00c user: js tags: trunk | |
Changes
Modified src/forwarding/apple-forwarding-x86.S from [fe22007392] to [8d690ddaf5].
︙ | ︙ | |||
14 15 16 17 18 19 20 | */ #include "config.h" .globl _OFForward .globl _OFForward_stret | < < < < < < < < < < < < < < < < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 14 15 16 17 18 19 20 21 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 79 80 81 82 83 84 85 86 87 88 89 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 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | */ #include "config.h" .globl _OFForward .globl _OFForward_stret .section __TEXT, __cstring, cstring_literals Lstr_forwardingTargetForSelector_: .asciz "forwardingTargetForSelector:" .section __OBJC, __message_refs, literal_pointers, no_dead_strip Lsel_forwardingTargetForSelector_: .long Lstr_forwardingTargetForSelector_ .section __OBJC, __image_info .long 0, 0 .section __TEXT, __text, regular, pure_instructions _OFForward: pushl %ebp movl %esp, %ebp pushl %ebx subl $20, %esp call LgetEIP 0: movl 8(%ebp), %eax movl %eax, (%esp) call _object_getClass movl %eax, (%esp) movl Lsel_forwardingTargetForSelector_-0b(%ebx), %eax movl %eax, 4(%esp) call _class_respondsToSelector testl %eax, %eax jz 0f movl 8(%ebp), %eax movl %eax, (%esp) movl Lsel_forwardingTargetForSelector_-0b(%ebx), %eax movl %eax, 4(%esp) movl 12(%ebp), %eax movl %eax, 8(%esp) call _objc_msgSend testl %eax, %eax jz 0f cmpl 8(%ebp), %eax je 0f movl %eax, 8(%ebp) addl $20, %esp popl %ebx popl %ebp jmp _objc_msgSend 0: addl $20, %esp popl %ebx popl %ebp jmp _OFMethodNotFound _OFForward_stret: pushl %ebp movl %esp, %ebp pushl %ebx subl $20, %esp call LgetEIP 0: movl 12(%ebp), %eax movl %eax, (%esp) call _object_getClass movl %eax, (%esp) movl Lsel_forwardingTargetForSelector_-0b(%ebx), %eax movl %eax, 4(%esp) call _class_respondsToSelector testl %eax, %eax jz 0f movl 12(%ebp), %eax movl %eax, (%esp) movl Lsel_forwardingTargetForSelector_-0b(%ebx), %eax movl %eax, 4(%esp) movl 16(%ebp), %eax movl %eax, 8(%esp) call _objc_msgSend testl %eax, %eax jz 0f cmpl 12(%ebp), %eax je 0f movl %eax, 12(%ebp) addl $20, %esp popl %ebx popl %ebp jmp _objc_msgSend_stret 0: addl $20, %esp popl %ebx popl %ebp jmp _OFMethodNotFound_stret LgetEIP: movl (%esp), %ebx ret |