1*c9945492SAndroid Build Coastguard Worker .global __cp_begin 2*c9945492SAndroid Build Coastguard Worker .hidden __cp_begin 3*c9945492SAndroid Build Coastguard Worker .global __cp_end 4*c9945492SAndroid Build Coastguard Worker .hidden __cp_end 5*c9945492SAndroid Build Coastguard Worker .global __cp_cancel 6*c9945492SAndroid Build Coastguard Worker .hidden __cp_cancel 7*c9945492SAndroid Build Coastguard Worker .hidden __cancel 8*c9945492SAndroid Build Coastguard Worker .global __syscall_cp_asm 9*c9945492SAndroid Build Coastguard Worker .hidden __syscall_cp_asm 10*c9945492SAndroid Build Coastguard Worker .text 11*c9945492SAndroid Build Coastguard Worker .type __syscall_cp_asm,%function 12*c9945492SAndroid Build Coastguard Worker__syscall_cp_asm: 13*c9945492SAndroid Build Coastguard Worker # at enter: r3 = pointer to self->cancel, r4: syscall no, r5: first arg, r6: 2nd, r7: 3rd, r8: 4th, r9: 5th, r10: 6th 14*c9945492SAndroid Build Coastguard Worker__cp_begin: 15*c9945492SAndroid Build Coastguard Worker # if (self->cancel) goto __cp_cancel 16*c9945492SAndroid Build Coastguard Worker lwz 0, 0(3) 17*c9945492SAndroid Build Coastguard Worker cmpwi cr7, 0, 0 18*c9945492SAndroid Build Coastguard Worker bne- cr7, __cp_cancel 19*c9945492SAndroid Build Coastguard Worker 20*c9945492SAndroid Build Coastguard Worker # make syscall 21*c9945492SAndroid Build Coastguard Worker mr 0, 4 22*c9945492SAndroid Build Coastguard Worker mr 3, 5 23*c9945492SAndroid Build Coastguard Worker mr 4, 6 24*c9945492SAndroid Build Coastguard Worker mr 5, 7 25*c9945492SAndroid Build Coastguard Worker mr 6, 8 26*c9945492SAndroid Build Coastguard Worker mr 7, 9 27*c9945492SAndroid Build Coastguard Worker mr 8, 10 28*c9945492SAndroid Build Coastguard Worker sc 29*c9945492SAndroid Build Coastguard Worker 30*c9945492SAndroid Build Coastguard Worker__cp_end: 31*c9945492SAndroid Build Coastguard Worker # return error ? -r3 : r3 32*c9945492SAndroid Build Coastguard Worker bnslr+ 33*c9945492SAndroid Build Coastguard Worker neg 3, 3 34*c9945492SAndroid Build Coastguard Worker blr 35*c9945492SAndroid Build Coastguard Worker 36*c9945492SAndroid Build Coastguard Worker__cp_cancel: 37*c9945492SAndroid Build Coastguard Worker mflr 0 38*c9945492SAndroid Build Coastguard Worker bl 1f 39*c9945492SAndroid Build Coastguard Worker .long .TOC.-. 40*c9945492SAndroid Build Coastguard Worker1: mflr 3 41*c9945492SAndroid Build Coastguard Worker lwa 2, 0(3) 42*c9945492SAndroid Build Coastguard Worker add 2, 2, 3 43*c9945492SAndroid Build Coastguard Worker mtlr 0 44*c9945492SAndroid Build Coastguard Worker b __cancel 45