Black Lives Matter. Support the Equal Justice Initiative.

Text file src/runtime/preempt_s390x.s

Documentation: runtime

     1  // Code generated by mkpreempt.go; DO NOT EDIT.
     2  
     3  #include "go_asm.h"
     4  #include "textflag.h"
     5  
     6  // 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.
     7  TEXT ¬∑asyncPreempt<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-0
     8  	IPM R10
     9  	MOVD R14, -248(R15)
    10  	ADD $-248, R15
    11  	MOVW R10, 8(R15)
    12  	STMG R0, R12, 16(R15)
    13  	FMOVD F0, 120(R15)
    14  	FMOVD F1, 128(R15)
    15  	FMOVD F2, 136(R15)
    16  	FMOVD F3, 144(R15)
    17  	FMOVD F4, 152(R15)
    18  	FMOVD F5, 160(R15)
    19  	FMOVD F6, 168(R15)
    20  	FMOVD F7, 176(R15)
    21  	FMOVD F8, 184(R15)
    22  	FMOVD F9, 192(R15)
    23  	FMOVD F10, 200(R15)
    24  	FMOVD F11, 208(R15)
    25  	FMOVD F12, 216(R15)
    26  	FMOVD F13, 224(R15)
    27  	FMOVD F14, 232(R15)
    28  	FMOVD F15, 240(R15)
    29  	CALL ¬∑asyncPreempt2(SB)
    30  	FMOVD 240(R15), F15
    31  	FMOVD 232(R15), F14
    32  	FMOVD 224(R15), F13
    33  	FMOVD 216(R15), F12
    34  	FMOVD 208(R15), F11
    35  	FMOVD 200(R15), F10
    36  	FMOVD 192(R15), F9
    37  	FMOVD 184(R15), F8
    38  	FMOVD 176(R15), F7
    39  	FMOVD 168(R15), F6
    40  	FMOVD 160(R15), F5
    41  	FMOVD 152(R15), F4
    42  	FMOVD 144(R15), F3
    43  	FMOVD 136(R15), F2
    44  	FMOVD 128(R15), F1
    45  	FMOVD 120(R15), F0
    46  	LMG 16(R15), R0, R12
    47  	MOVD 248(R15), R14
    48  	ADD $256, R15
    49  	MOVWZ -248(R15), R10
    50  	TMLH R10, $(3<<12)
    51  	MOVD -256(R15), R10
    52  	JMP (R10)
    53  

View as plain text