|
|
|
@ -46,12 +46,13 @@ __objc_block_trampoline_sret:
|
|
|
|
next_line2:
|
|
|
|
next_line2:
|
|
|
|
pop %eax # Load the old instruction pointer
|
|
|
|
pop %eax # Load the old instruction pointer
|
|
|
|
mov 8(%esp), %ebx # Load the self parameter
|
|
|
|
mov 8(%esp), %ebx # Load the self parameter
|
|
|
|
mov %ebx, 12(%esp) # Store self as the second argument
|
|
|
|
mov %ebx, 12(%esp) # Store self as the second argument
|
|
|
|
mov -9(%eax), %ebx # Load the block pointer to %ebx
|
|
|
|
mov -9(%eax), %ebx # Load the block pointer to %ebx
|
|
|
|
mov %ebx, 8(%esp) # Store the block pointer in the first argument
|
|
|
|
mov %ebx, 8(%esp) # Store the block pointer in the first argument
|
|
|
|
jmp *-13(%eax) # Call the block function
|
|
|
|
jmp *-13(%eax) # Call the block function
|
|
|
|
__objc_block_trampoline_end_sret:
|
|
|
|
__objc_block_trampoline_end_sret:
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
|
|
|
|
#warning imp_implementationWithBlock() not implemented for your architecture
|
|
|
|
__objc_block_trampoline:
|
|
|
|
__objc_block_trampoline:
|
|
|
|
__objc_block_trampoline_end:
|
|
|
|
__objc_block_trampoline_end:
|
|
|
|
__objc_block_trampoline_sret:
|
|
|
|
__objc_block_trampoline_sret:
|
|
|
|
|