github.com/code-reading/golang@v0.0.0-20220303082512-ba5bc0e589a3/go/src/runtime/preempt_mipsx.s (about) 1 // Code generated by mkpreempt.go; DO NOT EDIT. 2 3 //go:build mips || mipsle 4 // +build mips mipsle 5 6 #include "go_asm.h" 7 #include "textflag.h" 8 9 // Note: asyncPreempt doesn't use the internal ABI, but we must be able to inject calls to it from the signal handler, so Go code has to see the PC of this function literally. 10 TEXT ·asyncPreempt<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-0 11 MOVW R31, -244(R29) 12 SUB $244, R29 13 MOVW R1, 4(R29) 14 MOVW R2, 8(R29) 15 MOVW R3, 12(R29) 16 MOVW R4, 16(R29) 17 MOVW R5, 20(R29) 18 MOVW R6, 24(R29) 19 MOVW R7, 28(R29) 20 MOVW R8, 32(R29) 21 MOVW R9, 36(R29) 22 MOVW R10, 40(R29) 23 MOVW R11, 44(R29) 24 MOVW R12, 48(R29) 25 MOVW R13, 52(R29) 26 MOVW R14, 56(R29) 27 MOVW R15, 60(R29) 28 MOVW R16, 64(R29) 29 MOVW R17, 68(R29) 30 MOVW R18, 72(R29) 31 MOVW R19, 76(R29) 32 MOVW R20, 80(R29) 33 MOVW R21, 84(R29) 34 MOVW R22, 88(R29) 35 MOVW R24, 92(R29) 36 MOVW R25, 96(R29) 37 MOVW R28, 100(R29) 38 MOVW HI, R1 39 MOVW R1, 104(R29) 40 MOVW LO, R1 41 MOVW R1, 108(R29) 42 #ifndef GOMIPS_softfloat 43 MOVW FCR31, R1 44 MOVW R1, 112(R29) 45 MOVF F0, 116(R29) 46 MOVF F1, 120(R29) 47 MOVF F2, 124(R29) 48 MOVF F3, 128(R29) 49 MOVF F4, 132(R29) 50 MOVF F5, 136(R29) 51 MOVF F6, 140(R29) 52 MOVF F7, 144(R29) 53 MOVF F8, 148(R29) 54 MOVF F9, 152(R29) 55 MOVF F10, 156(R29) 56 MOVF F11, 160(R29) 57 MOVF F12, 164(R29) 58 MOVF F13, 168(R29) 59 MOVF F14, 172(R29) 60 MOVF F15, 176(R29) 61 MOVF F16, 180(R29) 62 MOVF F17, 184(R29) 63 MOVF F18, 188(R29) 64 MOVF F19, 192(R29) 65 MOVF F20, 196(R29) 66 MOVF F21, 200(R29) 67 MOVF F22, 204(R29) 68 MOVF F23, 208(R29) 69 MOVF F24, 212(R29) 70 MOVF F25, 216(R29) 71 MOVF F26, 220(R29) 72 MOVF F27, 224(R29) 73 MOVF F28, 228(R29) 74 MOVF F29, 232(R29) 75 MOVF F30, 236(R29) 76 MOVF F31, 240(R29) 77 #endif 78 CALL ·asyncPreempt2(SB) 79 #ifndef GOMIPS_softfloat 80 MOVF 240(R29), F31 81 MOVF 236(R29), F30 82 MOVF 232(R29), F29 83 MOVF 228(R29), F28 84 MOVF 224(R29), F27 85 MOVF 220(R29), F26 86 MOVF 216(R29), F25 87 MOVF 212(R29), F24 88 MOVF 208(R29), F23 89 MOVF 204(R29), F22 90 MOVF 200(R29), F21 91 MOVF 196(R29), F20 92 MOVF 192(R29), F19 93 MOVF 188(R29), F18 94 MOVF 184(R29), F17 95 MOVF 180(R29), F16 96 MOVF 176(R29), F15 97 MOVF 172(R29), F14 98 MOVF 168(R29), F13 99 MOVF 164(R29), F12 100 MOVF 160(R29), F11 101 MOVF 156(R29), F10 102 MOVF 152(R29), F9 103 MOVF 148(R29), F8 104 MOVF 144(R29), F7 105 MOVF 140(R29), F6 106 MOVF 136(R29), F5 107 MOVF 132(R29), F4 108 MOVF 128(R29), F3 109 MOVF 124(R29), F2 110 MOVF 120(R29), F1 111 MOVF 116(R29), F0 112 MOVW 112(R29), R1 113 MOVW R1, FCR31 114 #endif 115 MOVW 108(R29), R1 116 MOVW R1, LO 117 MOVW 104(R29), R1 118 MOVW R1, HI 119 MOVW 100(R29), R28 120 MOVW 96(R29), R25 121 MOVW 92(R29), R24 122 MOVW 88(R29), R22 123 MOVW 84(R29), R21 124 MOVW 80(R29), R20 125 MOVW 76(R29), R19 126 MOVW 72(R29), R18 127 MOVW 68(R29), R17 128 MOVW 64(R29), R16 129 MOVW 60(R29), R15 130 MOVW 56(R29), R14 131 MOVW 52(R29), R13 132 MOVW 48(R29), R12 133 MOVW 44(R29), R11 134 MOVW 40(R29), R10 135 MOVW 36(R29), R9 136 MOVW 32(R29), R8 137 MOVW 28(R29), R7 138 MOVW 24(R29), R6 139 MOVW 20(R29), R5 140 MOVW 16(R29), R4 141 MOVW 12(R29), R3 142 MOVW 8(R29), R2 143 MOVW 4(R29), R1 144 MOVW 244(R29), R31 145 MOVW (R29), R23 146 ADD $248, R29 147 JMP (R23)