| // Code generated by mkpreempt.go; DO NOT EDIT. | |
| #include "go_asm.h" | |
| #include "asm_amd64.h" | |
| #include "textflag.h" | |
| TEXT ·asyncPreempt(SB),NOSPLIT|NOFRAME,$0-0 | |
| PUSHQ BP | |
| MOVQ SP, BP | |
| // Save flags before clobbering them | |
| PUSHFQ | |
| // obj doesn't understand ADD/SUB on SP, but does understand ADJSP | |
| ADJSP $368 | |
| // But vet doesn't know ADJSP, so suppress vet stack checking | |
| NOP SP | |
| MOVQ AX, 0(SP) | |
| MOVQ CX, 8(SP) | |
| MOVQ DX, 16(SP) | |
| MOVQ BX, 24(SP) | |
| MOVQ SI, 32(SP) | |
| MOVQ DI, 40(SP) | |
| MOVQ R8, 48(SP) | |
| MOVQ R9, 56(SP) | |
| MOVQ R10, 64(SP) | |
| MOVQ R11, 72(SP) | |
| MOVQ R12, 80(SP) | |
| MOVQ R13, 88(SP) | |
| MOVQ R14, 96(SP) | |
| MOVQ R15, 104(SP) | |
| MOVUPS X0, 112(SP) | |
| MOVUPS X1, 128(SP) | |
| MOVUPS X2, 144(SP) | |
| MOVUPS X3, 160(SP) | |
| MOVUPS X4, 176(SP) | |
| MOVUPS X5, 192(SP) | |
| MOVUPS X6, 208(SP) | |
| MOVUPS X7, 224(SP) | |
| MOVUPS X8, 240(SP) | |
| MOVUPS X9, 256(SP) | |
| MOVUPS X10, 272(SP) | |
| MOVUPS X11, 288(SP) | |
| MOVUPS X12, 304(SP) | |
| MOVUPS X13, 320(SP) | |
| MOVUPS X14, 336(SP) | |
| MOVUPS X15, 352(SP) | |
| CALL ·asyncPreempt2(SB) | |
| MOVUPS 352(SP), X15 | |
| MOVUPS 336(SP), X14 | |
| MOVUPS 320(SP), X13 | |
| MOVUPS 304(SP), X12 | |
| MOVUPS 288(SP), X11 | |
| MOVUPS 272(SP), X10 | |
| MOVUPS 256(SP), X9 | |
| MOVUPS 240(SP), X8 | |
| MOVUPS 224(SP), X7 | |
| MOVUPS 208(SP), X6 | |
| MOVUPS 192(SP), X5 | |
| MOVUPS 176(SP), X4 | |
| MOVUPS 160(SP), X3 | |
| MOVUPS 144(SP), X2 | |
| MOVUPS 128(SP), X1 | |
| MOVUPS 112(SP), X0 | |
| MOVQ 104(SP), R15 | |
| MOVQ 96(SP), R14 | |
| MOVQ 88(SP), R13 | |
| MOVQ 80(SP), R12 | |
| MOVQ 72(SP), R11 | |
| MOVQ 64(SP), R10 | |
| MOVQ 56(SP), R9 | |
| MOVQ 48(SP), R8 | |
| MOVQ 40(SP), DI | |
| MOVQ 32(SP), SI | |
| MOVQ 24(SP), BX | |
| MOVQ 16(SP), DX | |
| MOVQ 8(SP), CX | |
| MOVQ 0(SP), AX | |
| ADJSP $-368 | |
| POPFQ | |
| POPQ BP | |
| RET |