1# Assembly code for making mips64 syscalls. 2# 3# mips64 syscall argument register ordering is the same as the mips64 4# userspace argument register ordering except that the syscall number 5# (nr) is passed in v0. 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 v0. 9 10 .file "mips.s" 11 .section .mdebug.abi64 12 .previous 13 .abicalls 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 20 .set nomips16 21 .set nomicromips 22 .ent rustix_syscall0_nr_last 23rustix_syscall0_nr_last: 24 .frame $sp,0,$31 25 .mask 0x00000000,0 26 .fmask 0x00000000,0 27 .set noreorder 28 .set nomacro 29 move $2, $4 30 syscall 31 dnegu $12, $2 32 jr $31 33 movn $2, $12, $7 34 .end rustix_syscall0_nr_last 35 .size rustix_syscall0_nr_last, .-rustix_syscall0_nr_last 36 37 .section .text.rustix_syscall1_nr_last,"ax",@progbits 38 .p2align 2 39 .weak rustix_syscall1_nr_last 40 .hidden rustix_syscall1_nr_last 41 .type rustix_syscall1_nr_last, @function 42 .set nomips16 43 .set nomicromips 44 .ent rustix_syscall1_nr_last 45rustix_syscall1_nr_last: 46 .frame $sp,0,$31 47 .mask 0x00000000,0 48 .fmask 0x00000000,0 49 .set noreorder 50 .set nomacro 51 move $2, $5 52 syscall 53 dnegu $12, $2 54 jr $31 55 movn $2, $12, $7 56 .end rustix_syscall1_nr_last 57 .size rustix_syscall1_nr_last, .-rustix_syscall1_nr_last 58 59 .section .text.rustix_syscall1_noreturn_nr_last,"ax",@progbits 60 .p2align 2 61 .weak rustix_syscall1_noreturn_nr_last 62 .hidden rustix_syscall1_noreturn_nr_last 63 .type rustix_syscall1_noreturn_nr_last, @function 64 .set nomips16 65 .set nomicromips 66 .ent rustix_syscall1_noreturn_nr_last 67rustix_syscall1_noreturn_nr_last: 68 .frame $sp,0,$31 69 .mask 0x00000000,0 70 .fmask 0x00000000,0 71 .set noreorder 72 .set nomacro 73 move $2, $5 74 syscall 75 teq $0, $0 76 .end rustix_syscall1_noreturn_nr_last 77 .size rustix_syscall1_noreturn_nr_last, .-rustix_syscall1_noreturn_nr_last 78 79 .section .text.rustix_syscall2_nr_last,"ax",@progbits 80 .p2align 2 81 .weak rustix_syscall2_nr_last 82 .hidden rustix_syscall2_nr_last 83 .type rustix_syscall2_nr_last, @function 84 .set nomips16 85 .set nomicromips 86 .ent rustix_syscall2_nr_last 87rustix_syscall2_nr_last: 88 .frame $sp,0,$31 89 .mask 0x00000000,0 90 .fmask 0x00000000,0 91 .set noreorder 92 .set nomacro 93 move $2, $6 94 syscall 95 dnegu $12, $2 96 jr $31 97 movn $2, $12, $7 98 .end rustix_syscall2_nr_last 99 .size rustix_syscall2_nr_last, .-rustix_syscall2_nr_last 100 101 .section .text.rustix_syscall3_nr_last,"ax",@progbits 102 .p2align 2 103 .weak rustix_syscall3_nr_last 104 .hidden rustix_syscall3_nr_last 105 .type rustix_syscall3_nr_last, @function 106 .set nomips16 107 .set nomicromips 108 .ent rustix_syscall3_nr_last 109rustix_syscall3_nr_last: 110 .frame $sp,0,$31 111 .mask 0x00000000,0 112 .fmask 0x00000000,0 113 .set noreorder 114 .set nomacro 115 move $2, $7 116 syscall 117 dnegu $12, $2 118 jr $31 119 movn $2, $12, $7 120 .end rustix_syscall3_nr_last 121 .size rustix_syscall3_nr_last, .-rustix_syscall3_nr_last 122 123 .section .text.rustix_syscall4_nr_last,"ax",@progbits 124 .p2align 2 125 .weak rustix_syscall4_nr_last 126 .hidden rustix_syscall4_nr_last 127 .type rustix_syscall4_nr_last, @function 128 .set nomips16 129 .set nomicromips 130 .ent rustix_syscall4_nr_last 131rustix_syscall4_nr_last: 132 .frame $sp,0,$31 133 .mask 0x00000000,0 134 .fmask 0x00000000,0 135 .set noreorder 136 .set nomacro 137 move $2, $8 138 syscall 139 dnegu $12, $2 140 jr $31 141 movn $2, $12, $7 142 .end rustix_syscall4_nr_last 143 .size rustix_syscall4_nr_last, .-rustix_syscall4_nr_last 144 145 .section .text.rustix_syscall5_nr_last,"ax",@progbits 146 .p2align 2 147 .weak rustix_syscall5_nr_last 148 .hidden rustix_syscall5_nr_last 149 .type rustix_syscall5_nr_last, @function 150 .set nomips16 151 .set nomicromips 152 .ent rustix_syscall5_nr_last 153rustix_syscall5_nr_last: 154 .frame $sp,0,$31 155 .mask 0x00000000,0 156 .fmask 0x00000000,0 157 .set noreorder 158 .set nomacro 159 move $2, $9 160 syscall 161 dnegu $12, $2 162 jr $31 163 movn $2, $12, $7 164 .end rustix_syscall5_nr_last 165 .size rustix_syscall5_nr_last, .-rustix_syscall5_nr_last 166 167 .section .text.rustix_syscall6_nr_last,"ax",@progbits 168 .p2align 2 169 .weak rustix_syscall6_nr_last 170 .hidden rustix_syscall6_nr_last 171 .type rustix_syscall6_nr_last, @function 172 .set nomips16 173 .set nomicromips 174 .ent rustix_syscall6_nr_last 175rustix_syscall6_nr_last: 176 .frame $sp,0,$31 177 .mask 0x00000000,0 178 .fmask 0x00000000,0 179 .set noreorder 180 .set nomacro 181 move $2, $10 182 syscall 183 dnegu $12, $2 184 jr $31 185 movn $2, $12, $7 186 .end rustix_syscall6_nr_last 187 .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last 188 189 .section .note.GNU-stack,"",@progbits 190