1*7dd7cddfSDavid du ColombierTEXT setjmp(SB), 1, $-4 2*7dd7cddfSDavid du Colombier MOVW LR, R4 3*7dd7cddfSDavid du Colombier MOVW R1, (R3) 4*7dd7cddfSDavid du Colombier MOVW R4, 4(R3) 5*7dd7cddfSDavid du Colombier MOVW $0, R3 6*7dd7cddfSDavid du Colombier RETURN 7*7dd7cddfSDavid du Colombier 8*7dd7cddfSDavid du ColombierTEXT longjmp(SB), 1, $-4 9*7dd7cddfSDavid du Colombier MOVW R3, R4 10*7dd7cddfSDavid du Colombier MOVW r+4(FP), R3 11*7dd7cddfSDavid du Colombier CMP R3, $0 12*7dd7cddfSDavid du Colombier BNE ok /* ansi: "longjmp(0) => longjmp(1)" */ 13*7dd7cddfSDavid du Colombier MOVW $1, R3 /* bless their pointed heads */ 14*7dd7cddfSDavid du Colombierok: MOVW (R4), R1 15*7dd7cddfSDavid du Colombier MOVW 4(R4), R4 16*7dd7cddfSDavid du Colombier MOVW R4, LR 17*7dd7cddfSDavid du Colombier BR (LR) 18*7dd7cddfSDavid du Colombier 19*7dd7cddfSDavid du Colombier/* 20*7dd7cddfSDavid du Colombier * trampoline functions because the kernel smashes r1 21*7dd7cddfSDavid du Colombier * in the uregs given to notejmp 22*7dd7cddfSDavid du Colombier */ 23*7dd7cddfSDavid du ColombierTEXT __noterestore(SB), 1, $-4 24*7dd7cddfSDavid du Colombier MOVW R4, R3 25*7dd7cddfSDavid du Colombier MOVW R5, LR 26*7dd7cddfSDavid du Colombier BR (LR) 27