Overview
Comment: | Remove unnecessary PIC from x86/Win32 ASM |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
9ccac85bb4c8c3bbf423f8a897d8e0c4 |
User & Date: | js on 2020-06-30 01:08:14 |
Other Links: | manifest | tags |
Context
2020-06-30
| ||
01:53 | Convert all x86/Win32 ASM to Intel syntax check-in: 2630b77909 user: js tags: trunk | |
01:08 | Remove unnecessary PIC from x86/Win32 ASM check-in: 9ccac85bb4 user: js tags: trunk | |
00:37 | Minor cleanup of x86/ELF ASM check-in: b194a9a226 user: js tags: trunk | |
Changes
Modified src/forwarding/forwarding-x86-win32.S from [2062a9ecd0] to [12b660e0de].
︙ | ︙ | |||
24 25 26 27 28 29 30 | _of_forward: 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 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 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 | _of_forward: pushl %ebp movl %esp, %ebp pushl %ebx subl $20, %esp movl 8(%ebp), %eax movl %eax, (%esp) call _object_getClass movl %eax, (%esp) movl $sel_forwardingTargetForSelector_, %eax movl %eax, 4(%esp) call _class_respondsToSelector testl %eax, %eax jz 0f movl 8(%ebp), %eax movl %eax, (%esp) movl $sel_forwardingTargetForSelector_, %eax movl %eax, 4(%esp) call _objc_msg_lookup movl 8(%ebp), %edx movl %edx, (%esp) movl $sel_forwardingTargetForSelector_, %edx movl %edx, 4(%esp) movl 12(%ebp), %edx movl %edx, 8(%esp) call *%eax testl %eax, %eax jz 0f cmpl 8(%ebp), %eax je 0f movl %eax, 8(%ebp) movl %eax, (%esp) movl 12(%ebp), %eax movl %eax, 4(%esp) call _objc_msg_lookup addl $20, %esp popl %ebx popl %ebp jmp *%eax 0: addl $20, %esp popl %ebx popl %ebp jmp _of_method_not_found _of_forward_stret: pushl %ebp movl %esp, %ebp pushl %ebx subl $20, %esp movl 12(%ebp), %eax movl %eax, (%esp) call _object_getClass movl %eax, (%esp) movl $sel_forwardingTargetForSelector_, %eax movl %eax, 4(%esp) call _class_respondsToSelector testl %eax, %eax jz 0f movl 12(%ebp), %eax movl %eax, (%esp) movl $sel_forwardingTargetForSelector_, %eax movl %eax, 4(%esp) call _objc_msg_lookup movl 12(%ebp), %edx movl %edx, (%esp) movl $sel_forwardingTargetForSelector_, %edx movl %edx, 4(%esp) movl 16(%ebp), %edx movl %edx, 8(%esp) call *%eax testl %eax, %eax jz 0f cmpl 12(%ebp), %eax je 0f movl %eax, 12(%ebp) movl %eax, (%esp) movl 16(%ebp), %eax movl %eax, 4(%esp) call _objc_msg_lookup_stret addl $20, %esp popl %ebx popl %ebp jmp *%eax 0: addl $20, %esp popl %ebx popl %ebp jmp _of_method_not_found_stret init: pushl %ebp movl %esp, %ebp pushl %ebx subl $4, %esp movl $module, %eax movl %eax, (%esp) call ___objc_exec_class addl $4, %esp popl %ebx popl %ebp ret .section .ctors, "aw" .long init .section .rodata str_forwardingTargetForSelector_: .asciz "forwardingTargetForSelector:" |
︙ | ︙ |
Modified src/runtime/lookup-asm/lookup-asm-x86-win32.S from [4aa81a0136] to [59e96874a5].
︙ | ︙ | |||
46 47 48 49 50 51 52 | testl %eax, %eax jz 0f ret 0: | < < | < | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | testl %eax, %eax jz 0f ret 0: jmp \not_found .endm .macro generate_lookup_super name lookup \name: movl 4(%esp), %edx movl (%edx), %eax cmpl $0, %eax |
︙ | ︙ | |||
71 72 73 74 75 76 77 | generate_lookup _objc_msg_lookup _objc_method_not_found generate_lookup _objc_msg_lookup_stret _objc_method_not_found_stret generate_lookup_super _objc_msg_lookup_super _objc_msg_lookup generate_lookup_super _objc_msg_lookup_super_stret _objc_msg_lookup_stret ret_nil: | < < | < < < < | 68 69 70 71 72 73 74 75 76 77 78 79 80 | generate_lookup _objc_msg_lookup _objc_method_not_found generate_lookup _objc_msg_lookup_stret _objc_method_not_found_stret generate_lookup_super _objc_msg_lookup_super _objc_msg_lookup generate_lookup_super _objc_msg_lookup_super_stret _objc_msg_lookup_stret ret_nil: movl $nil_method, %eax ret nil_method: xorl %eax, %eax ret |