| ... | @@ -84,6 +84,7 @@ const current_variant: Variant = switch (native_arch) { | ... | @@ -84,6 +84,7 @@ const current_variant: Variant = switch (native_arch) { |
| 84 | .riscv32, | 84 | .riscv32, |
| 85 | .riscv64, | 85 | .riscv64, |
| 86 | => .I_modified, | 86 | => .I_modified, |
| | 87 | .hexagon, |
| 87 | .s390x, | 88 | .s390x, |
| 88 | .sparc64, | 89 | .sparc64, |
| 89 | .x86, | 90 | .x86, |
| ... | @@ -246,6 +247,13 @@ pub fn setThreadPointer(addr: usize) void { | ... | @@ -246,6 +247,13 @@ pub fn setThreadPointer(addr: usize) void { |
| 246 | const rc = linux.syscall1(.set_thread_area, addr); | 247 | const rc = linux.syscall1(.set_thread_area, addr); |
| 247 | assert(rc == 0); | 248 | assert(rc == 0); |
| 248 | }, | 249 | }, |
| | 250 | .hexagon => { |
| | 251 | asm volatile ( |
| | 252 | \\ ugp = %[addr] |
| | 253 | : |
| | 254 | : [addr] "r" (addr), |
| | 255 | ); |
| | 256 | }, |
| 249 | .loongarch32, .loongarch64 => { | 257 | .loongarch32, .loongarch64 => { |
| 250 | asm volatile ( | 258 | asm volatile ( |
| 251 | \\ mv tp, %[addr] | 259 | \\ mv tp, %[addr] |