mirror of
https://github.com/ziglang/zig.git
synced 2025-02-12 23:50:18 +00:00
std.os.linux.tls: Add arc support.
This commit is contained in:
parent
e6fe7a329a
commit
9abe3aeeea
@ -63,6 +63,7 @@ const Variant = enum {
|
||||
};
|
||||
|
||||
const current_variant: Variant = switch (native_arch) {
|
||||
.arc,
|
||||
.arm,
|
||||
.armeb,
|
||||
.aarch64,
|
||||
@ -239,6 +240,16 @@ pub fn setThreadPointer(addr: usize) void {
|
||||
: [addr] "r" (addr),
|
||||
);
|
||||
},
|
||||
.arc => {
|
||||
// We apparently need to both set r25 (TP) *and* inform the kernel...
|
||||
asm volatile (
|
||||
\\ mov r25, %[addr]
|
||||
:
|
||||
: [addr] "r" (addr),
|
||||
);
|
||||
const rc = @call(.always_inline, linux.syscall1, .{ .arc_settls, addr });
|
||||
assert(rc == 0);
|
||||
},
|
||||
.arm, .armeb, .thumb, .thumbeb => {
|
||||
const rc = @call(.always_inline, linux.syscall1, .{ .set_tls, addr });
|
||||
assert(rc == 0);
|
||||
|
Loading…
Reference in New Issue
Block a user