xref: /xnu-10063.121.3/tools/tests/execperf/exit-asm.S (revision 2c2f96dc2b9a4408a43d3150ae9c105355ca3daa)
1*2c2f96dcSApple OSS Distributions.text
2*2c2f96dcSApple OSS Distributions	.align 2
3*2c2f96dcSApple OSS Distributions	.globl _main
4*2c2f96dcSApple OSS Distributions_main:
5*2c2f96dcSApple OSS Distributions#if defined(__x86_64__)
6*2c2f96dcSApple OSS Distributions	pushq $0
7*2c2f96dcSApple OSS Distributions	mov %rsp, %rbp
8*2c2f96dcSApple OSS Distributions	andq $0xfffffffffffffff0, %rsp
9*2c2f96dcSApple OSS Distributions	movl $42, %edi
10*2c2f96dcSApple OSS Distributions	movl $0x2000001, %eax
11*2c2f96dcSApple OSS Distributions	movl $0, %ecx
12*2c2f96dcSApple OSS Distributions	movq %rcx, %r10
13*2c2f96dcSApple OSS Distributions	syscall
14*2c2f96dcSApple OSS Distributions	jmp 1f
15*2c2f96dcSApple OSS Distributions1:
16*2c2f96dcSApple OSS Distributions	hlt
17*2c2f96dcSApple OSS Distributions	nop
18*2c2f96dcSApple OSS Distributions	nop
19*2c2f96dcSApple OSS Distributions	nop
20*2c2f96dcSApple OSS Distributions	nop
21*2c2f96dcSApple OSS Distributions#elif defined(__i386__)
22*2c2f96dcSApple OSS Distributions	pushl $0
23*2c2f96dcSApple OSS Distributions	mov %esp, %ebp
24*2c2f96dcSApple OSS Distributions	andl $0xfffffff0, %esp
25*2c2f96dcSApple OSS Distributions	subl $12, %esp
26*2c2f96dcSApple OSS Distributions	pushl $42
27*2c2f96dcSApple OSS Distributions	mov $0x40001, %eax
28*2c2f96dcSApple OSS Distributions	call _sysenter_trap
29*2c2f96dcSApple OSS Distributions	jmp 1f
30*2c2f96dcSApple OSS Distributions1:
31*2c2f96dcSApple OSS Distributions	hlt
32*2c2f96dcSApple OSS Distributions	nop
33*2c2f96dcSApple OSS Distributions	nop
34*2c2f96dcSApple OSS Distributions	nop
35*2c2f96dcSApple OSS Distributions	nop
36*2c2f96dcSApple OSS Distributions_sysenter_trap:
37*2c2f96dcSApple OSS Distributions	pop %edx
38*2c2f96dcSApple OSS Distributions	mov %esp, %ecx
39*2c2f96dcSApple OSS Distributions	sysenter
40*2c2f96dcSApple OSS Distributions	nop
41*2c2f96dcSApple OSS Distributions#elif defined(__arm64__)
42*2c2f96dcSApple OSS Distributions	movz	x0, #42
43*2c2f96dcSApple OSS Distributions	movz	x16, #1
44*2c2f96dcSApple OSS Distributions	svc	#0x80
45*2c2f96dcSApple OSS Distributions	b.cc	1f
46*2c2f96dcSApple OSS Distributions1:
47*2c2f96dcSApple OSS Distributions	nop
48*2c2f96dcSApple OSS Distributions#else
49*2c2f96dcSApple OSS Distributions#error Unsupported architecture
50*2c2f96dcSApple OSS Distributions#endif
51