Differences From Artifact [67d834017b]:
- File src/forwarding/forwarding-x86-elf.S — part of check-in [8939cbdb52] at 2023-01-06 09:04:02 on branch trunk — Update copyright (user: js, size: 3461) [annotate] [blame] [check-ins using]
To Artifact [566966be6a]:
- File
src/forwarding/forwarding-x86-elf.S
— part of check-in
[e26fd20d16]
at
2023-04-17 16:44:41
on branch trunk
— Use @GOT instead of @GOTOFF for non-local symbols
This makes it compile on Solaris (though exceptions don't seem to work
on Solaris). (user: js, size: 3451) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
24 25 26 27 28 29 30 | OFForward: pushl %ebp movl %esp, %ebp pushl %ebx subl $20, %esp | | | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | OFForward: pushl %ebp movl %esp, %ebp pushl %ebx subl $20, %esp call getEIP addl $_GLOBAL_OFFSET_TABLE_, %ebx movl 8(%ebp), %eax movl %eax, (%esp) call object_getClass@PLT movl %eax, (%esp) |
︙ | ︙ | |||
71 72 73 74 75 76 77 | addl $20, %esp popl %ebx popl %ebp jmp *%eax 0: | | | | 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 | addl $20, %esp popl %ebx popl %ebp jmp *%eax 0: movl OFMethodNotFound@GOT(%ebx), %eax addl $20, %esp popl %ebx popl %ebp jmp *%eax .type OFForward, %function .size OFForward, .-OFForward OFForward_stret: pushl %ebp movl %esp, %ebp pushl %ebx subl $20, %esp call getEIP addl $_GLOBAL_OFFSET_TABLE_, %ebx movl 12(%ebp), %eax movl %eax, (%esp) call object_getClass@PLT movl %eax, (%esp) |
︙ | ︙ | |||
135 136 137 138 139 140 141 | addl $20, %esp popl %ebx popl %ebp jmp *%eax 0: | | | | | 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 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 | addl $20, %esp popl %ebx popl %ebp jmp *%eax 0: movl OFMethodNotFound_stret@GOT(%ebx), %eax addl $20, %esp popl %ebx popl %ebp jmp *%eax .type OFForward_stret, %function .size OFForward_stret, .-OFForward_stret init: pushl %ebp movl %esp, %ebp pushl %ebx subl $4, %esp call getEIP addl $_GLOBAL_OFFSET_TABLE_, %ebx leal module@GOTOFF(%ebx), %eax movl %eax, (%esp) call __objc_exec_class@PLT addl $4, %esp popl %ebx popl %ebp ret getEIP: movl (%esp), %ebx ret #ifdef OF_SOLARIS .section .init_array, "aw" #else .section .ctors, "aw", %progbits |
︙ | ︙ |