Text file src/runtime/preempt_amd64.s

     1  // Code generated by mkpreempt.go; DO NOT EDIT.
     2  
     3  #include "go_asm.h"
     4  #include "asm_amd64.h"
     5  #include "textflag.h"
     6  
     7  TEXT ·asyncPreempt(SB),NOSPLIT|NOFRAME,$0-0
     8  	PUSHQ BP
     9  	MOVQ SP, BP
    10  	// Save flags before clobbering them
    11  	PUSHFQ
    12  	// obj doesn't understand ADD/SUB on SP, but does understand ADJSP
    13  	ADJSP $368
    14  	// But vet doesn't know ADJSP, so suppress vet stack checking
    15  	NOP SP
    16  	MOVQ AX, 0(SP)
    17  	MOVQ CX, 8(SP)
    18  	MOVQ DX, 16(SP)
    19  	MOVQ BX, 24(SP)
    20  	MOVQ SI, 32(SP)
    21  	MOVQ DI, 40(SP)
    22  	MOVQ R8, 48(SP)
    23  	MOVQ R9, 56(SP)
    24  	MOVQ R10, 64(SP)
    25  	MOVQ R11, 72(SP)
    26  	MOVQ R12, 80(SP)
    27  	MOVQ R13, 88(SP)
    28  	MOVQ R14, 96(SP)
    29  	MOVQ R15, 104(SP)
    30  	#ifdef GOOS_darwin
    31  	#ifndef hasAVX
    32  	CMPB internal∕cpu·X86+const_offsetX86HasAVX(SB), $0
    33  	JE 2(PC)
    34  	#endif
    35  	VZEROUPPER
    36  	#endif
    37  	MOVUPS X0, 112(SP)
    38  	MOVUPS X1, 128(SP)
    39  	MOVUPS X2, 144(SP)
    40  	MOVUPS X3, 160(SP)
    41  	MOVUPS X4, 176(SP)
    42  	MOVUPS X5, 192(SP)
    43  	MOVUPS X6, 208(SP)
    44  	MOVUPS X7, 224(SP)
    45  	MOVUPS X8, 240(SP)
    46  	MOVUPS X9, 256(SP)
    47  	MOVUPS X10, 272(SP)
    48  	MOVUPS X11, 288(SP)
    49  	MOVUPS X12, 304(SP)
    50  	MOVUPS X13, 320(SP)
    51  	MOVUPS X14, 336(SP)
    52  	MOVUPS X15, 352(SP)
    53  	CALL ·asyncPreempt2(SB)
    54  	MOVUPS 352(SP), X15
    55  	MOVUPS 336(SP), X14
    56  	MOVUPS 320(SP), X13
    57  	MOVUPS 304(SP), X12
    58  	MOVUPS 288(SP), X11
    59  	MOVUPS 272(SP), X10
    60  	MOVUPS 256(SP), X9
    61  	MOVUPS 240(SP), X8
    62  	MOVUPS 224(SP), X7
    63  	MOVUPS 208(SP), X6
    64  	MOVUPS 192(SP), X5
    65  	MOVUPS 176(SP), X4
    66  	MOVUPS 160(SP), X3
    67  	MOVUPS 144(SP), X2
    68  	MOVUPS 128(SP), X1
    69  	MOVUPS 112(SP), X0
    70  	MOVQ 104(SP), R15
    71  	MOVQ 96(SP), R14
    72  	MOVQ 88(SP), R13
    73  	MOVQ 80(SP), R12
    74  	MOVQ 72(SP), R11
    75  	MOVQ 64(SP), R10
    76  	MOVQ 56(SP), R9
    77  	MOVQ 48(SP), R8
    78  	MOVQ 40(SP), DI
    79  	MOVQ 32(SP), SI
    80  	MOVQ 24(SP), BX
    81  	MOVQ 16(SP), DX
    82  	MOVQ 8(SP), CX
    83  	MOVQ 0(SP), AX
    84  	ADJSP $-368
    85  	POPFQ
    86  	POPQ BP
    87  	RET
    88  

View as plain text