1*c9945492SAndroid Build Coastguard Worker.syntax unified 2*c9945492SAndroid Build Coastguard Worker.global _longjmp 3*c9945492SAndroid Build Coastguard Worker.global longjmp 4*c9945492SAndroid Build Coastguard Worker.type _longjmp,%function 5*c9945492SAndroid Build Coastguard Worker.type longjmp,%function 6*c9945492SAndroid Build Coastguard Worker_longjmp: 7*c9945492SAndroid Build Coastguard Workerlongjmp: 8*c9945492SAndroid Build Coastguard Worker mov ip,r0 9*c9945492SAndroid Build Coastguard Worker movs r0,r1 10*c9945492SAndroid Build Coastguard Worker moveq r0,#1 11*c9945492SAndroid Build Coastguard Worker ldmia ip!, {v1,v2,v3,v4,v5,v6,sl,fp} 12*c9945492SAndroid Build Coastguard Worker ldmia ip!, {r2,lr} 13*c9945492SAndroid Build Coastguard Worker mov sp,r2 14*c9945492SAndroid Build Coastguard Worker 15*c9945492SAndroid Build Coastguard Worker adr r1,1f 16*c9945492SAndroid Build Coastguard Worker ldr r2,1f 17*c9945492SAndroid Build Coastguard Worker ldr r1,[r1,r2] 18*c9945492SAndroid Build Coastguard Worker 19*c9945492SAndroid Build Coastguard Worker#if __ARM_ARCH < 8 20*c9945492SAndroid Build Coastguard Worker tst r1,#0x260 21*c9945492SAndroid Build Coastguard Worker beq 3f 22*c9945492SAndroid Build Coastguard Worker // HWCAP_ARM_FPA 23*c9945492SAndroid Build Coastguard Worker tst r1,#0x20 24*c9945492SAndroid Build Coastguard Worker beq 2f 25*c9945492SAndroid Build Coastguard Worker ldc p2, cr4, [ip], #48 26*c9945492SAndroid Build Coastguard Worker#endif 27*c9945492SAndroid Build Coastguard Worker2: tst r1,#0x40 28*c9945492SAndroid Build Coastguard Worker beq 2f 29*c9945492SAndroid Build Coastguard Worker .fpu vfp 30*c9945492SAndroid Build Coastguard Worker vldmia ip!, {d8-d15} 31*c9945492SAndroid Build Coastguard Worker .fpu softvfp 32*c9945492SAndroid Build Coastguard Worker .eabi_attribute 10, 0 33*c9945492SAndroid Build Coastguard Worker .eabi_attribute 27, 0 34*c9945492SAndroid Build Coastguard Worker#if __ARM_ARCH < 8 35*c9945492SAndroid Build Coastguard Worker // HWCAP_ARM_IWMMXT 36*c9945492SAndroid Build Coastguard Worker2: tst r1,#0x200 37*c9945492SAndroid Build Coastguard Worker beq 3f 38*c9945492SAndroid Build Coastguard Worker ldcl p1, cr10, [ip], #8 39*c9945492SAndroid Build Coastguard Worker ldcl p1, cr11, [ip], #8 40*c9945492SAndroid Build Coastguard Worker ldcl p1, cr12, [ip], #8 41*c9945492SAndroid Build Coastguard Worker ldcl p1, cr13, [ip], #8 42*c9945492SAndroid Build Coastguard Worker ldcl p1, cr14, [ip], #8 43*c9945492SAndroid Build Coastguard Worker ldcl p1, cr15, [ip], #8 44*c9945492SAndroid Build Coastguard Worker#endif 45*c9945492SAndroid Build Coastguard Worker2: 46*c9945492SAndroid Build Coastguard Worker3: bx lr 47*c9945492SAndroid Build Coastguard Worker 48*c9945492SAndroid Build Coastguard Worker.hidden __hwcap 49*c9945492SAndroid Build Coastguard Worker.align 2 50*c9945492SAndroid Build Coastguard Worker1: .word __hwcap-1b 51