Attempt to enable RV32 C extension. c.lw and c.sw are definitely broken somehow wrt MMIO memory.

Examples built using C extensions, many fail in strange ways
This commit is contained in:
Toby Jaffey 2025-12-17 15:43:15 +00:00
parent 652094c289
commit adec69e1d7
17 changed files with 132 additions and 76 deletions

View file

@ -14,12 +14,13 @@ pub fn build(b: *std.Build) void {
// disable all CPU extensions
disabled_features.addFeature(@intFromEnum(features.a));
disabled_features.addFeature(@intFromEnum(features.c));
// disabled_features.addFeature(@intFromEnum(features.c));
disabled_features.addFeature(@intFromEnum(features.d));
disabled_features.addFeature(@intFromEnum(features.e));
disabled_features.addFeature(@intFromEnum(features.f));
// except multiply
enabled_features.addFeature(@intFromEnum(features.m));
enabled_features.addFeature(@intFromEnum(features.c));
const target = b.resolveTargetQuery(.{
.cpu_arch = Target.Cpu.Arch.riscv32,