1// Assembly code for making aarch64 syscalls. 2// 3// aarch64 syscall argument register ordering is the same as the aarch64 4// userspace argument register ordering except that the syscall number 5// (nr) is passed in w8. 6// 7// outline.rs takes care of reordering the nr argument to the end for us, 8// so we only need to move nr into w8. 9// 10// arm64-ilp32 is not yet supported. 11 12 .file "aarch64.s" 13 .arch armv8-a 14 15 .section .text.rustix_syscall0_nr_last,"ax",@progbits 16 .p2align 2 17 .weak rustix_syscall0_nr_last 18 .hidden rustix_syscall0_nr_last 19 .type rustix_syscall0_nr_last, @function 20rustix_syscall0_nr_last: 21 .cfi_startproc 22 mov w8, w0 23 svc #0 24 ret 25 .cfi_endproc 26 .size rustix_syscall0_nr_last, .-rustix_syscall0_nr_last 27 28 .section .text.rustix_syscall1_nr_last,"ax",@progbits 29 .p2align 2 30 .weak rustix_syscall1_nr_last 31 .hidden rustix_syscall1_nr_last 32 .type rustix_syscall1_nr_last, @function 33rustix_syscall1_nr_last: 34 .cfi_startproc 35 mov w8, w1 36 svc #0 37 ret 38 .cfi_endproc 39 .size rustix_syscall1_nr_last, .-rustix_syscall1_nr_last 40 41 .section .text.rustix_syscall1_noreturn_nr_last,"ax",@progbits 42 .p2align 2 43 .weak rustix_syscall1_noreturn_nr_last 44 .hidden rustix_syscall1_noreturn_nr_last 45 .type rustix_syscall1_noreturn_nr_last, @function 46rustix_syscall1_noreturn_nr_last: 47 .cfi_startproc 48 mov w8, w1 49 svc #0 50 brk #0x1 51 .cfi_endproc 52 .size rustix_syscall1_noreturn_nr_last, .-rustix_syscall1_noreturn_nr_last 53 54 .section .text.rustix_syscall2_nr_last,"ax",@progbits 55 .p2align 2 56 .weak rustix_syscall2_nr_last 57 .hidden rustix_syscall2_nr_last 58 .type rustix_syscall2_nr_last, @function 59rustix_syscall2_nr_last: 60 .cfi_startproc 61 mov w8, w2 62 svc #0 63 ret 64 .cfi_endproc 65 .size rustix_syscall2_nr_last, .-rustix_syscall2_nr_last 66 67 .section .text.rustix_syscall3_nr_last,"ax",@progbits 68 .p2align 2 69 .weak rustix_syscall3_nr_last 70 .hidden rustix_syscall3_nr_last 71 .type rustix_syscall3_nr_last, @function 72rustix_syscall3_nr_last: 73 .cfi_startproc 74 mov w8, w3 75 svc #0 76 ret 77 .cfi_endproc 78 .size rustix_syscall3_nr_last, .-rustix_syscall3_nr_last 79 80 .section .text.rustix_syscall4_nr_last,"ax",@progbits 81 .p2align 2 82 .weak rustix_syscall4_nr_last 83 .hidden rustix_syscall4_nr_last 84 .type rustix_syscall4_nr_last, @function 85rustix_syscall4_nr_last: 86 .cfi_startproc 87 mov w8, w4 88 svc #0 89 ret 90 .cfi_endproc 91 .size rustix_syscall4_nr_last, .-rustix_syscall4_nr_last 92 93 .section .text.rustix_syscall5_nr_last,"ax",@progbits 94 .p2align 2 95 .weak rustix_syscall5_nr_last 96 .hidden rustix_syscall5_nr_last 97 .type rustix_syscall5_nr_last, @function 98rustix_syscall5_nr_last: 99 .cfi_startproc 100 mov w8, w5 101 svc #0 102 ret 103 .cfi_endproc 104 .size rustix_syscall5_nr_last, .-rustix_syscall5_nr_last 105 106 .section .text.rustix_syscall6_nr_last,"ax",@progbits 107 .p2align 2 108 .weak rustix_syscall6_nr_last 109 .hidden rustix_syscall6_nr_last 110 .type rustix_syscall6_nr_last, @function 111rustix_syscall6_nr_last: 112 .cfi_startproc 113 mov w8, w6 114 svc #0 115 ret 116 .cfi_endproc 117 .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last 118 119 .section .note.GNU-stack,"",@progbits 120