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