aboutsummaryrefslogtreecommitdiff
path: root/lib/std
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2022-10-31 20:18:15 -0400
committerJacob Young <jacobly0@users.noreply.github.com>2022-10-31 20:18:15 -0400
commitb945d3eb902113317ff66a6e830316c4d7ce10f5 (patch)
tree969eca72f0b7daf7c54c69839ff6ffb9a3289872 /lib/std
parent0bbb000359107e25dccf2411ea7bea7f5cf52684 (diff)
downloadzig-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.zig10
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