Overview
Comment: | Improve apple-forwarding-i386.S. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
e396a8e36371b2b1cc8332ef7f632491 |
User & Date: | js on 2013-07-07 12:47:53 |
Other Links: | manifest | tags |
Context
2013-07-07
| ||
12:53 | Fix dependency generation for .S files. check-in: 55b2494956 user: js tags: trunk | |
12:47 | Improve apple-forwarding-i386.S. check-in: e396a8e363 user: js tags: trunk | |
2013-07-06
| ||
12:50 | MIPS lookup: Let the assembler insert the nops. check-in: 8f346088f4 user: js tags: trunk | |
Changes
Modified src/apple-forwarding-i386.S from [ddf4d8ab4b] to [f5a96a4aca].
︙ | ︙ | |||
29 30 31 32 33 34 35 | .long 0, 0 .section __TEXT, __text, regular, pure_instructions _of_forward: pushl %ebp movl %esp, %ebp | | < | | > > > > > > | | < | | < | > | > | > | > | < | | > > > > > > | | < | | < | > | > | > | > | | 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 | .long 0, 0 .section __TEXT, __text, regular, pure_instructions _of_forward: pushl %ebp movl %esp, %ebp pushl %ebx subl $20, %esp call get_eip .L0: movl 8(%ebp), %eax movl %eax, (%esp) call _object_getClass movl %eax, (%esp) movl L_sel_forwardingTargetForSelector-.L0(%ebx), %eax movl %eax, 4(%esp) call _class_respondsToSelector testl %eax, %eax jz fail movl 8(%ebp), %eax movl %eax, (%esp) movl L_sel_forwardingTargetForSelector-.L0(%ebx), %eax movl %eax, 4(%esp) movl 12(%ebp), %eax movl %eax, 8(%esp) call _objc_msgSend testl %eax, %eax jz fail cmpl 8(%ebp), %eax je fail movl %eax, 8(%ebp) addl $20, %esp popl %ebx popl %ebp jmp _objc_msgSend fail: 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 call get_eip .L1: movl 12(%ebp), %eax movl %eax, (%esp) call _object_getClass movl %eax, (%esp) movl L_sel_forwardingTargetForSelector-.L1(%ebx), %eax movl %eax, 4(%esp) call _class_respondsToSelector testl %eax, %eax jz fail_stret movl 12(%ebp), %eax movl %eax, (%esp) movl L_sel_forwardingTargetForSelector-.L1(%ebx), %eax movl %eax, 4(%esp) movl 16(%ebp), %eax movl %eax, 8(%esp) call _objc_msgSend testl %eax, %eax jz fail_stret cmpl 12(%ebp), %eax je fail_stret movl %eax, 12(%ebp) addl $20, %esp popl %ebx popl %ebp jmp _objc_msgSend_stret fail_stret: movl 12(%ebp), %eax movl %eax, 8(%ebp) movl 16(%ebp), %eax movl %eax, 12(%ebp) addl $20, %esp popl %ebx popl %ebp jmp _of_method_not_found get_eip: movl (%esp), %ebx ret |