]> git.proxmox.com Git - rustc.git/blame - vendor/rustix-0.36.5/src/backend/linux_raw/arch/outline/riscv64.s
New upstream version 1.70.0+dfsg2
[rustc.git] / vendor / rustix-0.36.5 / src / backend / linux_raw / arch / outline / riscv64.s
CommitLineData
353b0b11
FG
1# Assembly code for making riscv64 syscalls.
2#
3# riscv64 syscall argument register ordering is the same as the riscv64
4# userspace argument register ordering except that the syscall number
5# (nr) is passed in a7.
6#
7# nr_last.rs takes care of reordering the nr argument to the end for us,
8# so we only need to move nr into a7.
9
10 .file "riscv64.s"
11
12 .section .text.rustix_syscall0_nr_last,"ax",@progbits
13 .p2align 4
14 .weak rustix_syscall0_nr_last
15 .hidden rustix_syscall0_nr_last
16 .type rustix_syscall0_nr_last, @function
17rustix_syscall0_nr_last:
18 .cfi_startproc
19 mv a7, a0
20 ecall
21 ret
22 .cfi_endproc
23 .size rustix_syscall0_nr_last, .-rustix_syscall0_nr_last
24
25 .section .text.rustix_syscall1_nr_last,"ax",@progbits
26 .p2align 4
27 .weak rustix_syscall1_nr_last
28 .hidden rustix_syscall1_nr_last
29 .type rustix_syscall1_nr_last, @function
30rustix_syscall1_nr_last:
31 .cfi_startproc
32 mv a7, a1
33 ecall
34 ret
35 .cfi_endproc
36 .size rustix_syscall1_nr_last, .-rustix_syscall1_nr_last
37
38 .section .text.rustix_syscall1_noreturn_nr_last,"ax",@progbits
39 .p2align 4
40 .weak rustix_syscall1_noreturn_nr_last
41 .hidden rustix_syscall1_noreturn_nr_last
42 .type rustix_syscall1_noreturn_nr_last, @function
43rustix_syscall1_noreturn_nr_last:
44 .cfi_startproc
45 mv a7, a1
46 ecall
47 unimp
48 .cfi_endproc
49 .size rustix_syscall1_noreturn_nr_last, .-rustix_syscall1_noreturn_nr_last
50
51 .section .text.rustix_syscall2_nr_last,"ax",@progbits
52 .p2align 4
53 .weak rustix_syscall2_nr_last
54 .hidden rustix_syscall2_nr_last
55 .type rustix_syscall2_nr_last, @function
56rustix_syscall2_nr_last:
57 .cfi_startproc
58 mv a7, a2
59 ecall
60 ret
61 .cfi_endproc
62 .size rustix_syscall2_nr_last, .-rustix_syscall2_nr_last
63
64 .section .text.rustix_syscall3_nr_last,"ax",@progbits
65 .p2align 4
66 .weak rustix_syscall3_nr_last
67 .hidden rustix_syscall3_nr_last
68 .type rustix_syscall3_nr_last, @function
69rustix_syscall3_nr_last:
70 .cfi_startproc
71 mv a7, a3
72 ecall
73 ret
74 .cfi_endproc
75 .size rustix_syscall3_nr_last, .-rustix_syscall3_nr_last
76
77 .section .text.rustix_syscall4_nr_last,"ax",@progbits
78 .p2align 4
79 .weak rustix_syscall4_nr_last
80 .hidden rustix_syscall4_nr_last
81 .type rustix_syscall4_nr_last, @function
82rustix_syscall4_nr_last:
83 .cfi_startproc
84 mv a7, a4
85 ecall
86 ret
87 .cfi_endproc
88 .size rustix_syscall4_nr_last, .-rustix_syscall4_nr_last
89
90 .section .text.rustix_syscall5_nr_last,"ax",@progbits
91 .p2align 4
92 .weak rustix_syscall5_nr_last
93 .hidden rustix_syscall5_nr_last
94 .type rustix_syscall5_nr_last, @function
95rustix_syscall5_nr_last:
96 .cfi_startproc
97 mv a7, a5
98 ecall
99 ret
100 .cfi_endproc
101 .size rustix_syscall5_nr_last, .-rustix_syscall5_nr_last
102
103 .section .text.rustix_syscall6_nr_last,"ax",@progbits
104 .p2align 4
105 .weak rustix_syscall6_nr_last
106 .hidden rustix_syscall6_nr_last
107 .type rustix_syscall6_nr_last, @function
108rustix_syscall6_nr_last:
109 .cfi_startproc
110 mv a7, a6
111 ecall
112 ret
113 .cfi_endproc
114 .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last
115
116 .section .note.GNU-stack,"",@progbits