| ... | ... | @@ -84,6 +84,7 @@ const current_variant: Variant = switch (native_arch) { |
| 84 | 84 | .riscv32, |
| 85 | 85 | .riscv64, |
| 86 | 86 | => .I_modified, |
| 87 | .s390x, |
| 87 | 88 | .sparc64, |
| 88 | 89 | .x86, |
| 89 | 90 | .x86_64, |
| ... | ... | @@ -277,6 +278,17 @@ pub fn setThreadPointer(addr: usize) void { |
| 277 | 278 | : [addr] "r" (addr), |
| 278 | 279 | ); |
| 279 | 280 | }, |
| 281 | .s390x => { |
| 282 | asm volatile ( |
| 283 | \\ lgr %%r0, %[addr] |
| 284 | \\ sar %%a1, %%r0 |
| 285 | \\ srlg %%r0, %%r0, 32 |
| 286 | \\ sar %%a0, %%r0 |
| 287 | : |
| 288 | : [addr] "r" (addr), |
| 289 | : "r0" |
| 290 | ); |
| 291 | }, |
| 280 | 292 | .sparc64 => { |
| 281 | 293 | asm volatile ( |
| 282 | 294 | \\ mov %[addr], %%g7 |