Open pgoodman opened 9 years ago
Another nasty thing is that arch::Operand::reg
is overloaded to have the same meaning as arch::Operand::mem::base
. This is a historical artefact of base/index registers in compound memory operands not previously being VirtualRegister
s and instead being xed_reg_enum_t
s. This has since switched, and so the separation is uuuuugly.
Instead, we should just have our own, Granary-specific
enum
. One purpose of this enum is that it should also serve to eliminate the various flags such asis_compound
. Thus, compound and non-compound memory operands should be distinguished by the enumerator. Other flags should be transformed in this way.