| ... | @@ -70,6 +70,8 @@ const current_variant: Variant = switch (native_arch) { | ... | @@ -70,6 +70,8 @@ const current_variant: Variant = switch (native_arch) { |
| 70 | .thumb, | 70 | .thumb, |
| 71 | .thumbeb, | 71 | .thumbeb, |
| 72 | => .I_original, | 72 | => .I_original, |
| | 73 | .loongarch32, |
| | 74 | .loongarch64, |
| 73 | .m68k, | 75 | .m68k, |
| 74 | .mips, | 76 | .mips, |
| 75 | .mipsel, | 77 | .mipsel, |
| ... | @@ -243,6 +245,13 @@ pub fn setThreadPointer(addr: usize) void { | ... | @@ -243,6 +245,13 @@ pub fn setThreadPointer(addr: usize) void { |
| 243 | const rc = linux.syscall1(.set_thread_area, addr); | 245 | const rc = linux.syscall1(.set_thread_area, addr); |
| 244 | assert(rc == 0); | 246 | assert(rc == 0); |
| 245 | }, | 247 | }, |
| | 248 | .loongarch32, .loongarch64 => { |
| | 249 | asm volatile ( |
| | 250 | \\ mv tp, %[addr] |
| | 251 | : |
| | 252 | : [addr] "r" (addr), |
| | 253 | ); |
| | 254 | }, |
| 246 | .riscv32, .riscv64 => { | 255 | .riscv32, .riscv64 => { |
| 247 | asm volatile ( | 256 | asm volatile ( |
| 248 | \\ mv tp, %[addr] | 257 | \\ mv tp, %[addr] |