aboutsummaryrefslogtreecommitdiff
path: root/lib/std/os/linux/tls.zig
diff options
context:
space:
mode:
authorTimon Kruiper <timonkruiper@gmail.com>2020-04-21 18:42:21 +0200
committerAndrew Kelley <andrew@ziglang.org>2020-04-24 15:28:55 -0400
commitc829f2f7b7c5bdd13d3c39ae2960ed108393a210 (patch)
treef93b1df14908722f4e587f438102813067e3a4c6 /lib/std/os/linux/tls.zig
parenta9eb4a6740e0bb00e1984de3768a7de6001c25dd (diff)
downloadzig-c829f2f7b7c5bdd13d3c39ae2960ed108393a210.tar.gz
zig-c829f2f7b7c5bdd13d3c39ae2960ed108393a210.zip
Add mips support to standard library
Diffstat (limited to 'lib/std/os/linux/tls.zig')
-rw-r--r--lib/std/os/linux/tls.zig10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/std/os/linux/tls.zig b/lib/std/os/linux/tls.zig
index e7d836eff6..8cba45d4b3 100644
--- a/lib/std/os/linux/tls.zig
+++ b/lib/std/os/linux/tls.zig
@@ -48,7 +48,7 @@ const TLSVariant = enum {
};
const tls_variant = switch (builtin.arch) {
- .arm, .armeb, .aarch64, .aarch64_be, .riscv32, .riscv64, .mipsel => TLSVariant.VariantI,
+ .arm, .armeb, .aarch64, .aarch64_be, .riscv32, .riscv64, .mips, .mipsel => TLSVariant.VariantI,
.x86_64, .i386 => TLSVariant.VariantII,
else => @compileError("undefined tls_variant for this architecture"),
};
@@ -64,7 +64,7 @@ const tls_tcb_size = switch (builtin.arch) {
// Controls if the TP points to the end of the TCB instead of its beginning
const tls_tp_points_past_tcb = switch (builtin.arch) {
- .riscv32, .riscv64, .mipsel, .powerpc64, .powerpc64le => true,
+ .riscv32, .riscv64, .mips, .mipsel, .powerpc64, .powerpc64le => true,
else => false,
};
@@ -72,12 +72,12 @@ const tls_tp_points_past_tcb = switch (builtin.arch) {
// make the generated code more efficient
const tls_tp_offset = switch (builtin.arch) {
- .mipsel => 0x7000,
+ .mips, .mipsel => 0x7000,
else => 0,
};
const tls_dtv_offset = switch (builtin.arch) {
- .mipsel => 0x8000,
+ .mips, .mipsel => 0x8000,
.riscv32, .riscv64 => 0x800,
else => 0,
};
@@ -156,7 +156,7 @@ pub fn setThreadPointer(addr: usize) void {
: [addr] "r" (addr)
);
},
- .mipsel => {
+ .mips, .mipsel => {
const rc = std.os.linux.syscall1(.set_thread_area, addr);
assert(rc == 0);
},