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