Remove f suffix e.g. %flags.z rather than %flags.zf

This commit is contained in:
gingerBill
2026-08-17 13:00:18 +01:00
parent d1f561ec88
commit 5fe724bff3
2 changed files with 16 additions and 16 deletions

View File

@@ -221,21 +221,21 @@ struct Asm_amd64 {
i32 flag_bit_from_name(String const &name, i32 *width_) {
static const struct {String name; i32 bit; } table[] = {
{str_lit("cf"), 0}, // Carry
{str_lit("pf"), 2}, // Parity
{str_lit("af"), 4}, // Auxiliary Carry
{str_lit("zf"), 6}, // Zero
{str_lit("sf"), 7}, // Sign
{str_lit("tf"), 8}, // Trap
{str_lit("if"), 9}, // Interrupt Enable
{str_lit("df"), 10}, // Direction
{str_lit("of"), 11}, // Overflow
{str_lit("c"), 0}, // Carry
{str_lit("p"), 2}, // Parity
{str_lit("a"), 4}, // Auxiliary Carry
{str_lit("z"), 6}, // Zero
{str_lit("s"), 7}, // Sign
{str_lit("t"), 8}, // Trap
{str_lit("i"), 9}, // Interrupt Enable
{str_lit("d"), 10}, // Direction
{str_lit("o"), 11}, // Overflow
{str_lit("iopl"),12}, // I/O Privilege Level (2-bit field: bits 12-13, low bit)
{str_lit("nt"), 14}, // Nested Task
{str_lit("rf"), 16}, // Resume
{str_lit("r"), 16}, // Resume
{str_lit("vm"), 17}, // Virtual-8086 Mode
{str_lit("ac"), 18}, // Alignment Check / Access Control
{str_lit("vif"), 19}, // Virtual Interrupt Flag
{str_lit("vi"), 19}, // Virtual Interrupt Flag
{str_lit("vip"), 20}, // Virtual Interrupt Pending
{str_lit("id"), 21}, // Identification
};

View File

@@ -245,11 +245,11 @@ struct lbAsmGenerate_amd64 : lbAsmGenerate {
// Map an EFLAGS flag name to its LLVM `=@cc<suffix>` setcc condition, or {} if
// the flag has no single-flag setcc form (af/df/if/... can't be a flag output).
String flag_output_cc_suffix(String const &pin_flag) override {
if (pin_flag == "cf") return str_lit("c"); // carry
if (pin_flag == "pf") return str_lit("p"); // parity (even)
if (pin_flag == "zf") return str_lit("z"); // zero
if (pin_flag == "sf") return str_lit("s"); // sign
if (pin_flag == "of") return str_lit("o"); // overflow
if (pin_flag == "c") return str_lit("c"); // carry
if (pin_flag == "p") return str_lit("p"); // parity (even)
if (pin_flag == "z") return str_lit("z"); // zero
if (pin_flag == "s") return str_lit("s"); // sign
if (pin_flag == "o") return str_lit("o"); // overflow
return {};
}