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