mirror of
https://github.com/odin-lang/Odin.git
synced 2026-08-18 19:32:15 +00:00
Infer #clobber memory and #clobber cc from the mnemonics directly
This commit is contained in:
@@ -192,6 +192,18 @@ struct Asm_amd64 {
|
||||
bool writes_mem;
|
||||
bool reads_mem;
|
||||
SideEffectFlags side_effects;
|
||||
|
||||
bool implies_clobber_cc() {
|
||||
u16 const CC_MASK = ClobberFlag_CF|ClobberFlag_PF|ClobberFlag_AF|
|
||||
ClobberFlag_ZF|ClobberFlag_SF|ClobberFlag_OF;
|
||||
return ((flags_wr | flags_undef) & CC_MASK) != 0;
|
||||
}
|
||||
bool implies_clobber_memory() {
|
||||
return writes_mem || reads_mem ||
|
||||
(side_effects & (SideEffectFlag_FENCE |
|
||||
SideEffectFlag_CACHE |
|
||||
SideEffectFlag_SERIALIZING)) != 0;
|
||||
}
|
||||
};
|
||||
|
||||
static u16 const register_codes[REG_COUNT];
|
||||
|
||||
Reference in New Issue
Block a user