aboutsummaryrefslogtreecommitdiff
path: root/lib/std/start.zig
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2024-07-22 11:55:30 +0200
committerAlex Rønne Petersen <alex@alexrp.com>2024-07-22 14:39:53 +0200
commit142209444a52c5c44b19a984f25376173027da7e (patch)
tree810915bd02e1cb3bdaccdb37712ade78a60c382e /lib/std/start.zig
parent1fc42ed3e7ca0b74b54aaa827276d995d6c7c6cd (diff)
downloadzig-142209444a52c5c44b19a984f25376173027da7e.tar.gz
zig-142209444a52c5c44b19a984f25376173027da7e.zip
start: Pass _start() into its own inline asm as an operand.
Diffstat (limited to 'lib/std/start.zig')
-rw-r--r--lib/std/start.zig7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/std/start.zig b/lib/std/start.zig
index e0f99b4762..d927f74517 100644
--- a/lib/std/start.zig
+++ b/lib/std/start.zig
@@ -340,8 +340,8 @@ fn _start() callconv(.Naked) noreturn {
,
.powerpc64, .powerpc64le =>
// Setup the initial stack frame and clear the back chain pointer.
- \\ addis 2, 12, .TOC. - _start@ha
- \\ addi 2, 2, .TOC. - _start@l
+ \\ addis 2, 12, .TOC. - %[_start]@ha
+ \\ addi 2, 2, .TOC. - %[_start]@l
\\ mr 3, 1
\\ clrrdi 1, 1, 4
\\ li 0, 0
@@ -359,7 +359,8 @@ fn _start() callconv(.Naked) noreturn {
else => @compileError("unsupported arch"),
}
:
- : [posixCallMainAndExit] "X" (&posixCallMainAndExit),
+ : [_start] "X" (_start),
+ [posixCallMainAndExit] "X" (&posixCallMainAndExit),
);
}