74 строки
2.5 KiB
PHP
74 строки
2.5 KiB
PHP
|
|
Lafterinvoke:
|
|
addq $208, %rsp
|
|
addq %r12, %rsp
|
|
movq -8(%rbp), %r12
|
|
popq %rbp
|
|
retq
|
|
Lcatchhandler:
|
|
cmpl $1, %edx
|
|
movq %rax, %rdi
|
|
jne Lnomatchexception
|
|
|
|
# check if xamarin_marshal_objectivec_exception_mode == disable, if so, just don't handle the exception
|
|
leal _xamarin_marshal_objectivec_exception_mode(%rip), %edx
|
|
cmpl $4, %edx
|
|
je Lnomatchexception
|
|
|
|
callq _objc_begin_catch
|
|
Lcatchbegin:
|
|
movq %rax, %rdi
|
|
callq _xamarin_process_nsexception
|
|
Lcatchend:
|
|
callq _objc_end_catch
|
|
jmp Lafterinvoke
|
|
Lcatchcatchhandler:
|
|
callq _objc_end_catch
|
|
Lnomatchexception:
|
|
callq __Unwind_Resume
|
|
Lfunc_end2:
|
|
.cfi_endproc
|
|
|
|
# exception table
|
|
.section __TEXT,__gcc_except_tab
|
|
.align 2
|
|
GCC_except_table2:
|
|
Lexception2:
|
|
.byte 255 ## @LPStart Encoding = omit
|
|
.byte 155 ## @TType Encoding = indirect pcrel sdata4
|
|
.asciz "\274" ## @TType base offset
|
|
.byte 3 ## Call site Encoding = udata4
|
|
.byte 52 ## Call site table length
|
|
Lset0 = Lbeforeinvoke-Lfunc_begin2 ## >> Call Site 1 <<
|
|
.long Lset0
|
|
Lset1 = Lafterinvoke-Lbeforeinvoke ## Call between Lbeforeinvoke and Lafterinvoke
|
|
.long Lset1
|
|
Lset2 = Lcatchhandler-Lfunc_begin2 ## jumps to Lcatchhandler
|
|
.long Lset2
|
|
.byte 1 ## On action: 1
|
|
Lset3 = Lafterinvoke-Lfunc_begin2 ## >> Call Site 2 <<
|
|
.long Lset3
|
|
Lset4 = Lcatchbegin-Lafterinvoke ## Call between Lafterinvoke and Lcatchbegin
|
|
.long Lset4
|
|
.long 0 ## has no landing pad
|
|
.byte 0 ## On action: cleanup
|
|
Lset5 = Lcatchbegin-Lfunc_begin2 ## >> Call Site 3 <<
|
|
.long Lset5
|
|
Lset6 = Lcatchend-Lcatchbegin ## Call between Lcatchbegin and Lcatchend
|
|
.long Lset6
|
|
Lset7 = Lcatchcatchhandler-Lfunc_begin2 ## jumps to Lcatchcatchhandler
|
|
.long Lset7
|
|
.byte 0 ## On action: cleanup
|
|
Lset8 = Lcatchend-Lfunc_begin2 ## >> Call Site 4 <<
|
|
.long Lset8
|
|
Lset9 = Lfunc_end2-Lcatchend ## Call between Lcatchend and Lfunc_end2
|
|
.long Lset9
|
|
.long 0 ## has no landing pad
|
|
.byte 0 ## On action: cleanup
|
|
.byte 1 ## >> Action Record 1 <<
|
|
## Catch TypeInfo 1
|
|
.byte 0 ## No further actions
|
|
## >> Catch TypeInfos <<
|
|
.long _OBJC_EHTYPE_$_NSException@GOTPCREL+4 ## TypeInfo 1
|
|
.align 2
|