aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2025-06-04 06:04:34 +0200
committerAlex Rønne Petersen <alex@alexrp.com>2025-06-04 19:24:08 +0200
commit2add31bfde7c261c433b61328a88953892fb1b41 (patch)
tree99069fd702d097d5e319fda5608eaa5b16080068 /src/codegen
parent100b76e17a7523edc04aa7fa97806c183c2b5a88 (diff)
downloadzig-2add31bfde7c261c433b61328a88953892fb1b41.tar.gz
zig-2add31bfde7c261c433b61328a88953892fb1b41.zip
valgrind: Add riscv64-linux support.
This appeared in Valgrind 3.25.0.
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/llvm.zig15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 268a57417b..3b26c9674d 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -11604,7 +11604,7 @@ pub const FuncGen = struct {
const pt = o.pt;
const zcu = pt.zcu;
const target = zcu.getTarget();
- if (!target_util.hasValgrindSupport(target)) return default_value;
+ if (!target_util.hasValgrindSupport(target, .stage2_llvm)) return default_value;
const llvm_usize = try o.lowerType(Type.usize);
const usize_alignment = Type.usize.abiAlignment(zcu).toLlvm();
@@ -11678,6 +11678,19 @@ pub const FuncGen = struct {
,
.constraints = "={r3},{r4},{r3},~{cc},~{memory}",
},
+ .riscv64 => .{
+ .template =
+ \\ .option push
+ \\ .option norvc
+ \\ srli zero, zero, 3
+ \\ srli zero, zero, 13
+ \\ srli zero, zero, 51
+ \\ srli zero, zero, 61
+ \\ or a0, a0, a0
+ \\ .option pop
+ ,
+ .constraints = "={a3},{a4},{a3},~{cc},~{memory}",
+ },
.s390x => .{
.template =
\\ lr %r15, %r15