| ... | ... | @@ -63,12 +63,13 @@ const Variant = enum { |
| 63 | 63 | }; |
| 64 | 64 | |
| 65 | 65 | const current_variant: Variant = switch (native_arch) { |
| 66 | .aarch64, |
| 67 | .aarch64_be, |
| 68 | .alpha, |
| 66 | 69 | .arc, |
| 67 | 70 | .arceb, |
| 68 | 71 | .arm, |
| 69 | 72 | .armeb, |
| 70 | | .aarch64, |
| 71 | | .aarch64_be, |
| 72 | 73 | .csky, |
| 73 | 74 | .thumb, |
| 74 | 75 | .thumbeb, |
| ... | ... | @@ -138,6 +139,7 @@ const AbiTcb = switch (current_variant) { |
| 138 | 139 | // usual, while the second one is unspecified. |
| 139 | 140 | .aarch64, |
| 140 | 141 | .aarch64_be, |
| 142 | .alpha, |
| 141 | 143 | .arm, |
| 142 | 144 | .armeb, |
| 143 | 145 | .thumb, |
| ... | ... | @@ -244,6 +246,14 @@ pub fn setThreadPointer(addr: usize) void { |
| 244 | 246 | : [addr] "r" (addr), |
| 245 | 247 | ); |
| 246 | 248 | }, |
| 249 | .alpha => { |
| 250 | asm volatile ( |
| 251 | \\ lda a0, %[addr] |
| 252 | \\ wruniq |
| 253 | : |
| 254 | : [addr] "r" (addr), |
| 255 | ); |
| 256 | }, |
| 247 | 257 | .arc, .arceb => { |
| 248 | 258 | // We apparently need to both set r25 (TP) *and* inform the kernel... |
| 249 | 259 | asm volatile ( |