aboutsummaryrefslogtreecommitdiff
path: root/third_party/boringssl/win-x86/crypto/test/trampoline-x86.asm
blob: 5fb72c74b0bd2a59f09217ed2bcf37238b42d654 (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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
; This file is generated from a similarly-named Perl script in the BoringSSL
; source tree. Do not edit by hand.

%ifdef BORINGSSL_PREFIX
%include "boringssl_prefix_symbols_nasm.inc"
%endif
%ifidn __OUTPUT_FORMAT__,obj
section	code	use32 class=code align=64
%elifidn __OUTPUT_FORMAT__,win32
$@feat.00 equ 1
section	.text	code align=64
%else
section	.text	code
%endif
global	_abi_test_trampoline
align	16
_abi_test_trampoline:
L$_abi_test_trampoline_begin:
	push	ebp
	push	ebx
	push	esi
	push	edi
	mov	ecx,DWORD [24+esp]
	mov	esi,DWORD [ecx]
	mov	edi,DWORD [4+ecx]
	mov	ebx,DWORD [8+ecx]
	mov	ebp,DWORD [12+ecx]
	sub	esp,44
	mov	eax,DWORD [72+esp]
	xor	ecx,ecx
L$000loop:
	cmp	ecx,DWORD [76+esp]
	jae	NEAR L$001loop_done
	mov	edx,DWORD [ecx*4+eax]
	mov	DWORD [ecx*4+esp],edx
	add	ecx,1
	jmp	NEAR L$000loop
L$001loop_done:
	call	DWORD [64+esp]
	add	esp,44
	mov	ecx,DWORD [24+esp]
	mov	DWORD [ecx],esi
	mov	DWORD [4+ecx],edi
	mov	DWORD [8+ecx],ebx
	mov	DWORD [12+ecx],ebp
	pop	edi
	pop	esi
	pop	ebx
	pop	ebp
	ret
global	_abi_test_get_and_clear_direction_flag
align	16
_abi_test_get_and_clear_direction_flag:
L$_abi_test_get_and_clear_direction_flag_begin:
	pushfd
	pop	eax
	and	eax,1024
	shr	eax,10
	cld
	ret
global	_abi_test_set_direction_flag
align	16
_abi_test_set_direction_flag:
L$_abi_test_set_direction_flag_begin:
	std
	ret
global	_abi_test_clobber_eax
align	16
_abi_test_clobber_eax:
L$_abi_test_clobber_eax_begin:
	xor	eax,eax
	ret
global	_abi_test_clobber_ebx
align	16
_abi_test_clobber_ebx:
L$_abi_test_clobber_ebx_begin:
	xor	ebx,ebx
	ret
global	_abi_test_clobber_ecx
align	16
_abi_test_clobber_ecx:
L$_abi_test_clobber_ecx_begin:
	xor	ecx,ecx
	ret
global	_abi_test_clobber_edx
align	16
_abi_test_clobber_edx:
L$_abi_test_clobber_edx_begin:
	xor	edx,edx
	ret
global	_abi_test_clobber_edi
align	16
_abi_test_clobber_edi:
L$_abi_test_clobber_edi_begin:
	xor	edi,edi
	ret
global	_abi_test_clobber_esi
align	16
_abi_test_clobber_esi:
L$_abi_test_clobber_esi_begin:
	xor	esi,esi
	ret
global	_abi_test_clobber_ebp
align	16
_abi_test_clobber_ebp:
L$_abi_test_clobber_ebp_begin:
	xor	ebp,ebp
	ret
global	_abi_test_clobber_xmm0
align	16
_abi_test_clobber_xmm0:
L$_abi_test_clobber_xmm0_begin:
	pxor	xmm0,xmm0
	ret
global	_abi_test_clobber_xmm1
align	16
_abi_test_clobber_xmm1:
L$_abi_test_clobber_xmm1_begin:
	pxor	xmm1,xmm1
	ret
global	_abi_test_clobber_xmm2
align	16
_abi_test_clobber_xmm2:
L$_abi_test_clobber_xmm2_begin:
	pxor	xmm2,xmm2
	ret
global	_abi_test_clobber_xmm3
align	16
_abi_test_clobber_xmm3:
L$_abi_test_clobber_xmm3_begin:
	pxor	xmm3,xmm3
	ret
global	_abi_test_clobber_xmm4
align	16
_abi_test_clobber_xmm4:
L$_abi_test_clobber_xmm4_begin:
	pxor	xmm4,xmm4
	ret
global	_abi_test_clobber_xmm5
align	16
_abi_test_clobber_xmm5:
L$_abi_test_clobber_xmm5_begin:
	pxor	xmm5,xmm5
	ret
global	_abi_test_clobber_xmm6
align	16
_abi_test_clobber_xmm6:
L$_abi_test_clobber_xmm6_begin:
	pxor	xmm6,xmm6
	ret
global	_abi_test_clobber_xmm7
align	16
_abi_test_clobber_xmm7:
L$_abi_test_clobber_xmm7_begin:
	pxor	xmm7,xmm7
	ret