github.com/comwrg/go/src@v0.0.0-20220319063731-c238d0440370/runtime/preempt_mips64x.s (about) 1 // Code generated by mkpreempt.go; DO NOT EDIT. 2 3 //go:build mips64 || mips64le 4 // +build mips64 mips64le 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 MOVV R31, -488(R29) 12 SUBV $488, R29 13 MOVV R1, 8(R29) 14 MOVV R2, 16(R29) 15 MOVV R3, 24(R29) 16 MOVV R4, 32(R29) 17 MOVV R5, 40(R29) 18 MOVV R6, 48(R29) 19 MOVV R7, 56(R29) 20 MOVV R8, 64(R29) 21 MOVV R9, 72(R29) 22 MOVV R10, 80(R29) 23 MOVV R11, 88(R29) 24 MOVV R12, 96(R29) 25 MOVV R13, 104(R29) 26 MOVV R14, 112(R29) 27 MOVV R15, 120(R29) 28 MOVV R16, 128(R29) 29 MOVV R17, 136(R29) 30 MOVV R18, 144(R29) 31 MOVV R19, 152(R29) 32 MOVV R20, 160(R29) 33 MOVV R21, 168(R29) 34 MOVV R22, 176(R29) 35 MOVV R24, 184(R29) 36 MOVV R25, 192(R29) 37 MOVV RSB, 200(R29) 38 MOVV HI, R1 39 MOVV R1, 208(R29) 40 MOVV LO, R1 41 MOVV R1, 216(R29) 42 #ifndef GOMIPS64_softfloat 43 MOVV FCR31, R1 44 MOVV R1, 224(R29) 45 MOVD F0, 232(R29) 46 MOVD F1, 240(R29) 47 MOVD F2, 248(R29) 48 MOVD F3, 256(R29) 49 MOVD F4, 264(R29) 50 MOVD F5, 272(R29) 51 MOVD F6, 280(R29) 52 MOVD F7, 288(R29) 53 MOVD F8, 296(R29) 54 MOVD F9, 304(R29) 55 MOVD F10, 312(R29) 56 MOVD F11, 320(R29) 57 MOVD F12, 328(R29) 58 MOVD F13, 336(R29) 59 MOVD F14, 344(R29) 60 MOVD F15, 352(R29) 61 MOVD F16, 360(R29) 62 MOVD F17, 368(R29) 63 MOVD F18, 376(R29) 64 MOVD F19, 384(R29) 65 MOVD F20, 392(R29) 66 MOVD F21, 400(R29) 67 MOVD F22, 408(R29) 68 MOVD F23, 416(R29) 69 MOVD F24, 424(R29) 70 MOVD F25, 432(R29) 71 MOVD F26, 440(R29) 72 MOVD F27, 448(R29) 73 MOVD F28, 456(R29) 74 MOVD F29, 464(R29) 75 MOVD F30, 472(R29) 76 MOVD F31, 480(R29) 77 #endif 78 CALL ·asyncPreempt2(SB) 79 #ifndef GOMIPS64_softfloat 80 MOVD 480(R29), F31 81 MOVD 472(R29), F30 82 MOVD 464(R29), F29 83 MOVD 456(R29), F28 84 MOVD 448(R29), F27 85 MOVD 440(R29), F26 86 MOVD 432(R29), F25 87 MOVD 424(R29), F24 88 MOVD 416(R29), F23 89 MOVD 408(R29), F22 90 MOVD 400(R29), F21 91 MOVD 392(R29), F20 92 MOVD 384(R29), F19 93 MOVD 376(R29), F18 94 MOVD 368(R29), F17 95 MOVD 360(R29), F16 96 MOVD 352(R29), F15 97 MOVD 344(R29), F14 98 MOVD 336(R29), F13 99 MOVD 328(R29), F12 100 MOVD 320(R29), F11 101 MOVD 312(R29), F10 102 MOVD 304(R29), F9 103 MOVD 296(R29), F8 104 MOVD 288(R29), F7 105 MOVD 280(R29), F6 106 MOVD 272(R29), F5 107 MOVD 264(R29), F4 108 MOVD 256(R29), F3 109 MOVD 248(R29), F2 110 MOVD 240(R29), F1 111 MOVD 232(R29), F0 112 MOVV 224(R29), R1 113 MOVV R1, FCR31 114 #endif 115 MOVV 216(R29), R1 116 MOVV R1, LO 117 MOVV 208(R29), R1 118 MOVV R1, HI 119 MOVV 200(R29), RSB 120 MOVV 192(R29), R25 121 MOVV 184(R29), R24 122 MOVV 176(R29), R22 123 MOVV 168(R29), R21 124 MOVV 160(R29), R20 125 MOVV 152(R29), R19 126 MOVV 144(R29), R18 127 MOVV 136(R29), R17 128 MOVV 128(R29), R16 129 MOVV 120(R29), R15 130 MOVV 112(R29), R14 131 MOVV 104(R29), R13 132 MOVV 96(R29), R12 133 MOVV 88(R29), R11 134 MOVV 80(R29), R10 135 MOVV 72(R29), R9 136 MOVV 64(R29), R8 137 MOVV 56(R29), R7 138 MOVV 48(R29), R6 139 MOVV 40(R29), R5 140 MOVV 32(R29), R4 141 MOVV 24(R29), R3 142 MOVV 16(R29), R2 143 MOVV 8(R29), R1 144 MOVV 488(R29), R31 145 MOVV (R29), R23 146 ADDV $496, R29 147 JMP (R23)