mirror of
https://github.com/ziglang/zig.git
synced 2026-02-21 16:54:52 +00:00
std.start: add alpha support
This commit is contained in:
parent
340d6ce1bf
commit
252e1fd7ec
@ -195,9 +195,10 @@ fn _start() callconv(.naked) noreturn {
|
||||
// This is the first userspace frame. Prevent DWARF-based unwinders from unwinding further. We
|
||||
// prevent FP-based unwinders from unwinding further by zeroing the register below.
|
||||
if (builtin.unwind_tables != .none or !builtin.strip_debug_info) asm volatile (switch (native_arch) {
|
||||
.aarch64, .aarch64_be => ".cfi_undefined lr",
|
||||
.alpha => ".cfi_undefined $26",
|
||||
.arc, .arceb => ".cfi_undefined blink",
|
||||
.arm, .armeb, .thumb, .thumbeb => "", // https://github.com/llvm/llvm-project/issues/115891
|
||||
.aarch64, .aarch64_be => ".cfi_undefined lr",
|
||||
.csky => ".cfi_undefined lr",
|
||||
.hexagon => ".cfi_undefined r31",
|
||||
.loongarch32, .loongarch64 => ".cfi_undefined 1",
|
||||
@ -253,6 +254,18 @@ fn _start() callconv(.naked) noreturn {
|
||||
\\ and sp, x0, #-16
|
||||
\\ b %[posixCallMainAndExit]
|
||||
,
|
||||
.alpha =>
|
||||
// $15 = FP, $26 = LR, $29 = GP, $30 = SP
|
||||
\\ br $29, 1f
|
||||
\\1:
|
||||
\\ ldgp $29, 0($29)
|
||||
\\ mov 0, $15
|
||||
\\ mov 0, $26
|
||||
\\ mov $30, $16
|
||||
\\ ldi $1, -16
|
||||
\\ and $30, $30, $1
|
||||
\\ jsr $26, %[posixCallMainAndExit]
|
||||
,
|
||||
.arc, .arceb =>
|
||||
// ARC v1 and v2 had a very low stack alignment requirement of 4; v3 increased it to 16.
|
||||
\\ mov fp, 0
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user