Commit 0a9f666ea6

Alex Rønne Petersen <alex@alexrp.com>
2025-11-23 07:26:56
cbe: translate sparc ccr/icc/xcc registers to icc
C compilers do not distinguish between these.
1 parent 1231aa9
Changed files (1)
src
codegen
src/codegen/c.zig
@@ -5672,6 +5672,10 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue {
                             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];
+                        } else if (target.cpu.arch.isSPARC() and
+                        (mem.eql(u8, field_name, "ccr") or mem.eql(u8, field_name, "icc") or mem.eql(u8, field_name, "xcc"))) name: {
+                            // C compilers just use `icc` to encompass all of these.
+                            break :name "icc";
                         } else field_name;
 
                     try w.print(" {f}", .{fmtStringLiteral(name, null)});