aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/preempt_386.s
blob: c3a5fa1f361cfb28c653c27c2f764b54031c7aaf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Code generated by mkpreempt.go; DO NOT EDIT.

#include "go_asm.h"
#include "textflag.h"

TEXT ·asyncPreempt(SB),NOSPLIT|NOFRAME,$0-0
	PUSHFL
	ADJSP $156
	NOP SP
	MOVL AX, 0(SP)
	MOVL CX, 4(SP)
	MOVL DX, 8(SP)
	MOVL BX, 12(SP)
	MOVL BP, 16(SP)
	MOVL SI, 20(SP)
	MOVL DI, 24(SP)
	CMPB internalcpu·X86+const_offsetX86HasSSE2(SB), $1
	JNE nosse
	MOVUPS X0, 28(SP)
	MOVUPS X1, 44(SP)
	MOVUPS X2, 60(SP)
	MOVUPS X3, 76(SP)
	MOVUPS X4, 92(SP)
	MOVUPS X5, 108(SP)
	MOVUPS X6, 124(SP)
	MOVUPS X7, 140(SP)
nosse:
	CALL ·asyncPreempt2(SB)
	CMPB internalcpu·X86+const_offsetX86HasSSE2(SB), $1
	JNE nosse2
	MOVUPS 140(SP), X7
	MOVUPS 124(SP), X6
	MOVUPS 108(SP), X5
	MOVUPS 92(SP), X4
	MOVUPS 76(SP), X3
	MOVUPS 60(SP), X2
	MOVUPS 44(SP), X1
	MOVUPS 28(SP), X0
nosse2:
	MOVL 24(SP), DI
	MOVL 20(SP), SI
	MOVL 16(SP), BP
	MOVL 12(SP), BX
	MOVL 8(SP), DX
	MOVL 4(SP), CX
	MOVL 0(SP), AX
	ADJSP $-156
	POPFL
	RET