authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-09-17 00:23:48+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-09-18 10:08:38+02:00
loge7f1624e6ea11bb30c779963f9fdfabd51902276
tree00203d3cbba21cfb24f3aac89070a99e167a5d15
parentc547a05b656118bef790478c26b439e07c858c76
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.mem: work around LoongArch inline asm bug in doNotOptimizeAway()

https://github.com/llvm/llvm-project/issues/159200

1 files changed, 2 insertions(+), 1 deletions(-)

lib/std/mem.zig+2-1
...@@ -4534,7 +4534,8 @@ pub fn doNotOptimizeAway(val: anytype) void {...@@ -4534,7 +4534,8 @@ pub fn doNotOptimizeAway(val: anytype) void {
4534 } else doNotOptimizeAway(&val);4534 } else doNotOptimizeAway(&val);
4535 },4535 },
4536 .float => {4536 .float => {
4537 if ((t.float.bits == 32 or t.float.bits == 64) and builtin.zig_backend != .stage2_c) {4537 // https://github.com/llvm/llvm-project/issues/159200
4538 if ((t.float.bits == 32 or t.float.bits == 64) and builtin.zig_backend != .stage2_c and !builtin.cpu.arch.isLoongArch()) {
4538 asm volatile (""4539 asm volatile (""
4539 :4540 :
4540 : [_] "rm" (val),4541 : [_] "rm" (val),