diff options
Diffstat (limited to 'src/codegen')
| -rw-r--r-- | src/codegen/c.zig | 5 | ||||
| -rw-r--r-- | src/codegen/llvm.zig | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 646cde788d..7341a9fd0b 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -5781,8 +5781,9 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { c_name_buf[0] = '$'; break :name c_name; } else if ((target.cpu.arch.isMIPS() and (mem.startsWith(u8, field_name, "fcc") or field_name[0] == 'w')) or - ((target.cpu.arch.isMIPS() or target.cpu.arch == .alpha) and field_name[0] == 'f')) name: { - // "$" prefix for FCC, W and F registers + ((target.cpu.arch.isMIPS() or target.cpu.arch == .alpha) and field_name[0] == 'f') or + (target.cpu.arch == .kvx and !mem.eql(u8, field_name, "memory"))) name: { + // "$" prefix for these registers c_name_buf[0] = '$'; @memcpy((&c_name_buf)[1..][0..field_name.len], field_name); break :name (&c_name_buf)[0 .. 1 + field_name.len]; diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index baf340fbc8..10b90e25b8 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -111,6 +111,7 @@ pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8 .hppa, .hppa64, .kalimba, + .kvx, .microblaze, .microblazeel, .or1k, @@ -477,6 +478,7 @@ pub fn dataLayout(target: *const std.Target) []const u8 { .hppa, .hppa64, .kalimba, + .kvx, .microblaze, .microblazeel, .or1k, @@ -11931,6 +11933,8 @@ fn toLlvmCallConvTag(cc_tag: std.builtin.CallingConvention.Tag, target: *const s .hexagon_sysv_hvx, .hppa_elf, .hppa64_elf, + .kvx_lp64, + .kvx_ilp32, .lanai_sysv, .loongarch64_lp64, .loongarch32_ilp32, @@ -13114,6 +13118,7 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { .hppa, .hppa64, .kalimba, + .kvx, .microblaze, .microblazeel, .or1k, |
