mirror of
https://github.com/ziglang/zig.git
synced 2026-02-12 20:37:54 +00:00
std.os.linux.start_pie: Add hexagon support.
This commit is contained in:
parent
a0b2b987c8
commit
38c492bb53
@ -9,6 +9,7 @@ const R_ARC_RELATIVE = 56;
|
||||
const R_ARM_RELATIVE = 23;
|
||||
const R_AARCH64_RELATIVE = 1027;
|
||||
const R_CSKY_RELATIVE = 9;
|
||||
const R_HEXAGON_RELATIVE = 35;
|
||||
const R_LARCH_RELATIVE = 3;
|
||||
const R_68K_RELATIVE = 22;
|
||||
const R_RISCV_RELATIVE = 3;
|
||||
@ -22,6 +23,7 @@ const R_RELATIVE = switch (builtin.cpu.arch) {
|
||||
.arm, .armeb, .thumb, .thumbeb => R_ARM_RELATIVE,
|
||||
.aarch64, .aarch64_be => R_AARCH64_RELATIVE,
|
||||
.csky => R_CSKY_RELATIVE,
|
||||
.hexagon => R_HEXAGON_RELATIVE,
|
||||
.loongarch32, .loongarch64 => R_LARCH_RELATIVE,
|
||||
.m68k => R_68K_RELATIVE,
|
||||
.riscv64 => R_RISCV_RELATIVE,
|
||||
@ -80,6 +82,20 @@ fn getDynamicSymbol() [*]elf.Dyn {
|
||||
\\ ldw %[ret], %[ret]
|
||||
: [ret] "=r" (-> [*]elf.Dyn),
|
||||
),
|
||||
.hexagon => asm volatile (
|
||||
\\ .weak _DYNAMIC
|
||||
\\ .hidden _DYNAMIC
|
||||
\\ jump 1f
|
||||
\\ .word _DYNAMIC - .
|
||||
\\ 1:
|
||||
\\ r1 = pc
|
||||
\\ r1 = add(r1, #-4)
|
||||
\\ %[ret] = memw(r1)
|
||||
\\ %[ret] = add(r1, %[ret])
|
||||
: [ret] "=r" (-> [*]elf.Dyn),
|
||||
:
|
||||
: "r1"
|
||||
),
|
||||
.loongarch32, .loongarch64 => asm volatile (
|
||||
\\ .weak _DYNAMIC
|
||||
\\ .hidden _DYNAMIC
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user