13e12c5d1SDavid du ColombierTEXT setjmp(SB), 1, $0 23e12c5d1SDavid du Colombier 33e12c5d1SDavid du Colombier MOVW R1, (R7) 43e12c5d1SDavid du Colombier MOVW R15, 4(R7) 53e12c5d1SDavid du Colombier MOVW $0, R7 63e12c5d1SDavid du Colombier RETURN 73e12c5d1SDavid du Colombier 83e12c5d1SDavid du ColombierTEXT longjmp(SB), 1, $0 93e12c5d1SDavid du Colombier 103e12c5d1SDavid du Colombier MOVW R7, R8 113e12c5d1SDavid du Colombier MOVW r+4(FP), R7 123e12c5d1SDavid du Colombier CMP R7, R0 133e12c5d1SDavid du Colombier BNE ok /* ansi: "longjmp(0) => longjmp(1)" */ 143e12c5d1SDavid du Colombier MOVW $1, R7 /* bless their pointed heads */ 153e12c5d1SDavid du Colombierok: MOVW (R8), R1 163e12c5d1SDavid du Colombier MOVW 4(R8), R15 173e12c5d1SDavid du Colombier RETURN 18*219b2ee8SDavid du Colombier 19*219b2ee8SDavid du Colombier/* 20*219b2ee8SDavid du Colombier * trampoline functions because the kernel smashes r7 21*219b2ee8SDavid du Colombier * in the uregs given to notejmp 22*219b2ee8SDavid du Colombier */ 23*219b2ee8SDavid du ColombierTEXT __noterestore(SB), 1, $-4 24*219b2ee8SDavid du Colombier MOVW R8, R7 25*219b2ee8SDavid du Colombier JMP (R9) 26