61a62
> #include <iostream>
66a68,89
>
> enum Prefixes {
> NoOverride = 0,
> CSOverride = 1,
> DSOverride = 2,
> ESOverride = 3,
> FSOverride = 4,
> GSOverride = 5,
> SSOverride = 6,
> //The Rex prefix obviously doesn't fit in with the above, but putting
> //it here lets us save double the space the enums take up.
> Rex = 7,
> //There can be only one segment override, so they share the
> //first 3 bits in the legacyPrefixes bitfield.
> SegmentOverride = 0x7,
> OperandSizeOverride = 8,
> AddressSizeOverride = 16,
> Lock = 32,
> Rep = 64,
> Repne = 128
> };
>
70c93,116
< //Empty for now...
---
> public: //XXX These should be hidden in the future
>
> uint8_t legacyPrefixes;
> uint8_t rexPrefix;
> bool twoByteOpcode;
> uint8_t opcode;
> uint64_t immediate;
> uint64_t displacement;
>
> public:
>
> //These are to pacify the decoder for now. This will go away once
> //it can handle non integer inputs, and in the mean time allow me to
> //excercise the predecoder a little.
> operator unsigned int()
> {
> return 0;
> }
>
> ExtMachInst(unsigned int)
> {;}
>
> ExtMachInst()
> {;}
73c119,120
< bool operator == (const ExtMachInst &emi1, const ExtMachInst &emi2)
---
> inline static std::ostream &
> operator << (std::ostream & os, const ExtMachInst & emi)
74a122,128
> os << "{X86 ExtMachInst}";
> return os;
> }
>
> inline static bool
> operator == (const ExtMachInst &emi1, const ExtMachInst &emi2)
> {