[Flint] adding flag allocation pass for gen9
Mirror Gitea refs to GitHub / mirror (push) Successful in 16s
Test / build_and_test (push) Successful in 2m17s
Build / build (push) Successful in 3m24s

This commit is contained in:
2026-08-17 18:28:01 +02:00
parent ae994bc345
commit 67314a71ae
3 changed files with 268 additions and 3 deletions
+7 -2
View File
@@ -11,6 +11,7 @@ pub const Error = error{
InvalidInstruction,
InvalidVirtualRegister,
InvalidVirtualFlag,
UnallocatedVirtualFlag,
InvalidPhysicalRegister,
InvalidRegisterSize,
InvalidRegisterAlignment,
@@ -300,8 +301,12 @@ fn validateRegisterRef(program: *const program_ir.Program, register: operand.Reg
fn validateFlag(program: *const program_ir.Program, flag: operand.FlagRef) Error!void {
switch (flag) {
.virtual => |id| if (!program.virtual_flags.isLive(id))
return Error.InvalidVirtualFlag,
.virtual => |id| {
if (program.properties.flags_allocated)
return Error.UnallocatedVirtualFlag;
if (!program.virtual_flags.isLive(id))
return Error.InvalidVirtualFlag;
},
.physical => {},
}
}