#include #include #include "Native.h" namespace pim { class X86Native : public Native { public: X86Native() : Native(), nativeRom() {} virtual std::vector Compile(Simulation * sim, Instruction * rom, int romSize); private: void emit(std::string opcode); void emit(int constant); void emitCall(intptr_t objectPtr, intptr_t functionAddress, int stackSize); void emitPlaceholder(int virtualAddress); unsigned char hex(char c); std::vector nativeRom; std::map virtualToNative; std::map placeholders; }; }