| ... | ... | @@ -155,4 +155,48 @@ pub fn addCases(ctx: *TestContext) !void { |
| 155 | 155 | "Hello, World!\n", |
| 156 | 156 | ); |
| 157 | 157 | } |
| 158 | |
| 159 | { |
| 160 | var case = ctx.exe("exit fn taking argument", macos_aarch64); |
| 161 | |
| 162 | case.addCompareOutput( |
| 163 | \\export fn _start() noreturn { |
| 164 | \\ exit(0); |
| 165 | \\} |
| 166 | \\ |
| 167 | \\fn exit(ret: usize) noreturn { |
| 168 | \\ asm volatile ("svc #0x80" |
| 169 | \\ : |
| 170 | \\ : [number] "{x16}" (1), |
| 171 | \\ [arg1] "{x0}" (ret) |
| 172 | \\ : "memory" |
| 173 | \\ ); |
| 174 | \\ unreachable; |
| 175 | \\} |
| 176 | , |
| 177 | "", |
| 178 | ); |
| 179 | } |
| 180 | |
| 181 | { |
| 182 | var case = ctx.exe("exit fn taking argument", linux_aarch64); |
| 183 | |
| 184 | case.addCompareOutput( |
| 185 | \\export fn _start() noreturn { |
| 186 | \\ exit(0); |
| 187 | \\} |
| 188 | \\ |
| 189 | \\fn exit(ret: usize) noreturn { |
| 190 | \\ asm volatile ("svc #0" |
| 191 | \\ : |
| 192 | \\ : [number] "{x8}" (93), |
| 193 | \\ [arg1] "{x0}" (ret) |
| 194 | \\ : "memory", "cc" |
| 195 | \\ ); |
| 196 | \\ unreachable; |
| 197 | \\} |
| 198 | , |
| 199 | "", |
| 200 | ); |
| 201 | } |
| 158 | 202 | } |