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