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