diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2022-10-31 20:18:15 -0400 |
|---|---|---|
| committer | Jacob Young <jacobly0@users.noreply.github.com> | 2022-10-31 20:18:15 -0400 |
| commit | b945d3eb902113317ff66a6e830316c4d7ce10f5 (patch) | |
| tree | 969eca72f0b7daf7c54c69839ff6ffb9a3289872 /lib/std | |
| parent | 0bbb000359107e25dccf2411ea7bea7f5cf52684 (diff) | |
| download | zig-b945d3eb902113317ff66a6e830316c4d7ce10f5.tar.gz zig-b945d3eb902113317ff66a6e830316c4d7ce10f5.zip | |
cbe: improve support for non-native float types
* Fix _start on aarch64.
* Add fallbacks when a float type is unsupported.
Fixes #13357
Diffstat (limited to 'lib/std')
| -rw-r--r-- | lib/std/start.zig | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/std/start.zig b/lib/std/start.zig index 14903b0bc9..7ba24ad78c 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -281,7 +281,15 @@ fn _start() callconv(.Naked) noreturn { \\ andl $-16, %%esp \\ jmp _posixCallMainAndExit ), - .aarch64, .aarch64_be, .arm, .armeb, .thumb => asm volatile ( + .aarch64, .aarch64_be => asm volatile ( + \\ mov fp, #0 + \\ mov lr, #0 + \\ mov x0, sp + \\ adrp x1, argc_argv_ptr + \\ str x0, [x1, :lo12:argc_argv_ptr] + \\ b _posixCallMainAndExit + ), + .arm, .armeb, .thumb => asm volatile ( \\ mov fp, #0 \\ mov lr, #0 \\ str sp, argc_argv_ptr |
