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
No known key found for this signature in database
GPG Key ID: 5CF5B5A4747520AA

View File

@ -11672,7 +11672,7 @@ pub const FuncGen = struct {
\\ srl $$0, $$0, 19 \\ srl $$0, $$0, 19
\\ or $$13, $$13, $$13 \\ or $$13, $$13, $$13
, ,
.constraints = "={$11},{$12},{$11},~{memory}", .constraints = "={$11},{$12},{$11},~{memory},~{$1}",
}, },
.mips64, .mips64el => .{ .mips64, .mips64el => .{
.template = .template =
@ -11680,7 +11680,7 @@ pub const FuncGen = struct {
\\ dsll $$0, $$0, 29 ; dsll $$0, $$0, 19 \\ dsll $$0, $$0, 29 ; dsll $$0, $$0, 19
\\ or $$13, $$13, $$13 \\ or $$13, $$13, $$13
, ,
.constraints = "={$11},{$12},{$11},~{memory}", .constraints = "={$11},{$12},{$11},~{memory},~{$1}",
}, },
.powerpc, .powerpcle => .{ .powerpc, .powerpcle => .{
.template = .template =
@ -11727,7 +11727,7 @@ pub const FuncGen = struct {
\\ roll $$61, %edi ; roll $$51, %edi \\ roll $$61, %edi ; roll $$51, %edi
\\ xchgl %ebx, %ebx \\ xchgl %ebx, %ebx
, ,
.constraints = "={edx},{eax},{edx},~{cc},~{memory}", .constraints = "={edx},{eax},{edx},~{cc},~{memory},~{dirflag},~{fpsr},~{flags}",
}, },
.x86_64 => .{ .x86_64 => .{
.template = .template =
@ -11735,7 +11735,7 @@ pub const FuncGen = struct {
\\ rolq $$61, %rdi ; rolq $$51, %rdi \\ rolq $$61, %rdi ; rolq $$51, %rdi
\\ xchgq %rbx, %rbx \\ xchgq %rbx, %rbx
, ,
.constraints = "={rdx},{rax},{rdx},~{cc},~{memory}", .constraints = "={rdx},{rax},{rdx},~{cc},~{memory},~{dirflag},~{fpsr},~{flags}",
}, },
else => unreachable, else => unreachable,
}; };