this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Trying to remove DT_TEXTRELs on x86

+58 -21
+11 -1
src/libobjcdarwin/objc_msgSend.nasm
··· 17 17 BITS 32 18 18 section text 19 19 20 + extern _GLOBAL_OFFSET_TABLE_ 21 + 20 22 __darwin_objc_msgSend_noarg: 21 - jmp objc_msgSend 23 + push ebx 24 + call .get_GOT 25 + .get_GOT: 26 + pop ebx 27 + add ebx,_GLOBAL_OFFSET_TABLE_+$$-.get_GOT wrt ..gotpc 28 + lea eax, [ebx + objc_msgSend WRT ..got] 29 + pop ebx 30 + 31 + jmp eax 22 32 23 33 %else 24 34
+41 -14
src/libobjcdarwin/objc_msgSendSuper.nasm
··· 100 100 BITS 32 101 101 section text 102 102 103 + extern _GLOBAL_OFFSET_TABLE_ 104 + 103 105 %macro DereferenceArgument 1 104 - mov [esp-4], eax ; save the IMP 105 - mov eax, [esp+(%1*4)] ; get objc_super* 106 + push eax ; save the IMP 107 + mov eax, [ebp+(%1*4)+8] ; get objc_super* 106 108 mov eax, [eax] ; get the first member's value 107 - mov [esp+(%1*4)], eax ; fix the first argument 108 - mov eax, [esp-4] ; restore the IMP 109 + mov [ebp+(%1*4)+8], eax ; fix the first argument 110 + pop eax ; restore the IMP 109 111 %endmacro 110 112 113 + ; NOT USED 111 114 __darwin_objc_msgSendSuper2: 112 115 mov eax, [esp+4] ; get objc_super* 113 116 ; make a copy on the stack ··· 123 126 lea eax, [esp+4]; fixed objc_super (1st argument) 124 127 push eax 125 128 126 - call objc_msg_lookup_super 129 + call objc_msg_lookup_super WRT ..plt 127 130 128 131 add esp, 16 ; remove args & struct from the stack 129 132 130 - DereferenceArgument 1 133 + DereferenceArgument 0 131 134 132 135 jmp eax 133 136 134 137 __darwin_objc_msgSendSuper: 135 138 136 - mov eax, [esp+8] 139 + push ebp 140 + mov ebp, esp 141 + push ebx 142 + call .get_GOT 143 + .get_GOT: 144 + pop ebx 145 + add ebx, _GLOBAL_OFFSET_TABLE_+$$-.get_GOT wrt ..gotpc 146 + 147 + mov eax, [ebp+12] 137 148 push eax 138 - mov eax, [esp+8] 149 + mov eax, [ebp+8] 139 150 push eax 140 - call objc_msg_lookup_super 151 + call objc_msg_lookup_super WRT ..plt 141 152 add esp, 8 142 153 143 - DereferenceArgument 1 154 + DereferenceArgument 0 155 + 156 + mov ebx, [ebp-4] 157 + mov esp, ebp 158 + pop ebp 144 159 145 160 jmp eax 146 161 147 162 __darwin_objc_msgSendSuper2_stret: 148 - mov eax, [esp+12] 163 + push ebp 164 + mov ebp, esp 165 + push ebx 166 + call .get_GOT 167 + .get_GOT: 168 + pop ebx 169 + add ebx, _GLOBAL_OFFSET_TABLE_+$$-.get_GOT wrt ..gotpc 170 + 171 + mov eax, [ebp+16] 149 172 push eax 150 - mov eax, [esp+12] 173 + mov eax, [ebp+12] 151 174 push eax 152 175 153 - call objc_msg_lookup_super 176 + call objc_msg_lookup_super WRT ..plt 154 177 sub esp, 8 155 178 156 - DereferenceArgument 2 179 + DereferenceArgument 1 180 + 181 + mov ebx, [ebp-4] 182 + mov esp, ebp 183 + pop ebp 157 184 158 185 jmp eax 159 186
+6 -6
src/libobjcdarwin/objc_msgSend_fixup.nasm
··· 38 38 section text 39 39 40 40 ; Is it even used with the old runtime? 41 - __darwin_objc_msgSend_fixup: 42 - mov eax, [esp+8] 43 - add eax, 4 44 - mov eax, [eax] 45 - mov [esp+8], eax 46 - jmp objc_msgSend 41 + ;__darwin_objc_msgSend_fixup: 42 + ; mov eax, [esp+8] 43 + ; add eax, 4 44 + ; mov eax, [eax] 45 + ; mov [esp+8], eax 46 + ; jmp objc_msgSend WRT ..plt 47 47 48 48 %else 49 49