| ... | @@ -73,6 +73,8 @@ const current_variant: Variant = switch (native_arch) { | ... | @@ -73,6 +73,8 @@ const current_variant: Variant = switch (native_arch) { |
| 73 | .csky, | 73 | .csky, |
| 74 | .microblaze, | 74 | .microblaze, |
| 75 | .microblazeel, | 75 | .microblazeel, |
| | 76 | .sh, |
| | 77 | .sheb, |
| 76 | .thumb, | 78 | .thumb, |
| 77 | .thumbeb, | 79 | .thumbeb, |
| 78 | => .I_original, | 80 | => .I_original, |
| ... | @@ -144,6 +146,8 @@ const AbiTcb = switch (current_variant) { | ... | @@ -144,6 +146,8 @@ const AbiTcb = switch (current_variant) { |
| 144 | .armeb, | 146 | .armeb, |
| 145 | .microblaze, | 147 | .microblaze, |
| 146 | .microblazeel, | 148 | .microblazeel, |
| | 149 | .sh, |
| | 150 | .sheb, |
| 147 | .thumb, | 151 | .thumb, |
| 148 | .thumbeb, | 152 | .thumbeb, |
| 149 | => extern struct { | 153 | => extern struct { |
| ... | @@ -337,6 +341,13 @@ pub fn setThreadPointer(addr: usize) void { | ... | @@ -337,6 +341,13 @@ pub fn setThreadPointer(addr: usize) void { |
| 337 | : [addr] "r" (addr), | 341 | : [addr] "r" (addr), |
| 338 | : .{ .r0 = true }); | 342 | : .{ .r0 = true }); |
| 339 | }, | 343 | }, |
| | 344 | .sh, .sheb => { |
| | 345 | asm volatile ( |
| | 346 | \\ ldc gbr, %[addr] |
| | 347 | : |
| | 348 | : [addr] "r" (addr), |
| | 349 | ); |
| | 350 | }, |
| 340 | .sparc, .sparc64 => { | 351 | .sparc, .sparc64 => { |
| 341 | asm volatile ( | 352 | asm volatile ( |
| 342 | \\ mov %[addr], %%g7 | 353 | \\ mov %[addr], %%g7 |