diff options
Diffstat (limited to 'asm/intel64/codes.cpp')
-rw-r--r-- | asm/intel64/codes.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/asm/intel64/codes.cpp b/asm/intel64/codes.cpp index 76108a1..18980bd 100644 --- a/asm/intel64/codes.cpp +++ b/asm/intel64/codes.cpp @@ -1,5 +1,6 @@ #include "codes.h" +#include "byteorder.h" #include "minicc.h" #include "../operators.h" @@ -84,7 +85,7 @@ std::vector<uint8_t> ModRM(const std::string& reg, const std::string& rm, int32_ displacement_bytes.push_back(uint8_t(disp)); } else { result |= 0b10000000; // 32 bit displacement - displacement_bytes += to_little_endian(disp); + displacement_bytes += endian::to_little(uint32_t(disp)); } result |= rm_bits; } else { // normal register access @@ -104,6 +105,12 @@ uint8_t RegNo(const std::string& reg) return index->second; } +// Switch from operand size 64bit to 32bit +std::vector<uint8_t> OpSizePrefix() +{ + return {0x66}; +} + #if 0 prefixes{ "lock", 0xf0, |