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