llvm: add extra clobbers to valgrind requests

This seems to work around a very puzzling miscompilation first
present in LLVM 21.x. We already unconditionally add these
clobbers to inline assembly that came from the source, the
valgrind requests should also contain them.
This commit is contained in:
David Rubin
2025-11-06 20:27:38 -08:00
parent 09e4035e79
commit 483f9bd367
+4 -4
View File
@@ -11672,7 +11672,7 @@ pub const FuncGen = struct {
\\ srl $$0, $$0, 19
\\ or $$13, $$13, $$13
,
.constraints = "={$11},{$12},{$11},~{memory}",
.constraints = "={$11},{$12},{$11},~{memory},~{$1}",
},
.mips64, .mips64el => .{
.template =
@@ -11680,7 +11680,7 @@ pub const FuncGen = struct {
\\ dsll $$0, $$0, 29 ; dsll $$0, $$0, 19
\\ or $$13, $$13, $$13
,
.constraints = "={$11},{$12},{$11},~{memory}",
.constraints = "={$11},{$12},{$11},~{memory},~{$1}",
},
.powerpc, .powerpcle => .{
.template =
@@ -11727,7 +11727,7 @@ pub const FuncGen = struct {
\\ roll $$61, %edi ; roll $$51, %edi
\\ xchgl %ebx, %ebx
,
.constraints = "={edx},{eax},{edx},~{cc},~{memory}",
.constraints = "={edx},{eax},{edx},~{cc},~{memory},~{dirflag},~{fpsr},~{flags}",
},
.x86_64 => .{
.template =
@@ -11735,7 +11735,7 @@ pub const FuncGen = struct {
\\ rolq $$61, %rdi ; rolq $$51, %rdi
\\ xchgq %rbx, %rbx
,
.constraints = "={rdx},{rax},{rdx},~{cc},~{memory}",
.constraints = "={rdx},{rax},{rdx},~{cc},~{memory},~{dirflag},~{fpsr},~{flags}",
},
else => unreachable,
};