diff --git a/src/assembler/X86Assembler.cpp b/src/assembler/X86Assembler.cpp index bde3cf4..47d90e0 100644 --- a/src/assembler/X86Assembler.cpp +++ b/src/assembler/X86Assembler.cpp @@ -26,7 +26,7 @@ struct X86Operand { X86Register m_reg; uint32_t m_value = 0; X86Operand(X86Register reg) : m_reg(reg), m_type(Type::Register) {} - X86Operand(X86Pointer ptr) : m_reg(ptr.m_register), m_value(ptr.m_offset), m_type(Type::ModRM) {} + X86Operand(X86Pointer ptr) : m_reg(ptr.reg), m_value(ptr.offset), m_type(Type::ModRM) {} }; static void encodeModRM(X86Assembler* ass, X86Operand op, uint8_t digit) { diff --git a/src/assembler/X86Assembler.hpp b/src/assembler/X86Assembler.hpp index c869ec7..206653d 100644 --- a/src/assembler/X86Assembler.hpp +++ b/src/assembler/X86Assembler.hpp @@ -24,8 +24,9 @@ namespace tulip::hook { }; struct X86Pointer { - X86Register m_register; - int32_t m_offset = 0; + X86Register reg; + int32_t offset = 0; + X86Pointer(X86Register reg, int32_t offset = 0) : reg(reg), offset(offset) {} }; class X86Assembler : public BaseAssembler { diff --git a/test/assembler/main.cpp b/test/assembler/main.cpp index 38a83b9..2627553 100644 --- a/test/assembler/main.cpp +++ b/test/assembler/main.cpp @@ -9,18 +9,6 @@ std::vector operator""_bytes(const char* data, size_t size) { return std::vector(reinterpret_cast(data), reinterpret_cast(data + size)); } -template -void assertEqImpl(T&& a, U&& b, const char* expr, const char* file, int line) { - if (a != b) { - std::cout << "Assertion `" << expr << "` failed at " << file << ':' << line << std::endl; - std::cout << "lhs is: " << a << std::endl; - std::cout << "rhs is: " << b << std::endl; - std::abort(); - } -} - -#define assertEq(a, b) assertEqImpl(a, b, #a " == " #b, __FILE__, __LINE__) - std::ostream& operator<<(std::ostream& stream, const std::vector& value) { stream << '{'; bool first = true; @@ -33,6 +21,18 @@ std::ostream& operator<<(std::ostream& stream, const std::vector& value return stream << '}'; } +template +void assertEqImpl(T&& a, U&& b, const char* expr, const char* file, int line) { + if (a != b) { + std::cout << "Assertion `" << expr << "` failed at " << file << ':' << line << std::endl; + std::cout << "lhs is: " << a << std::endl; + std::cout << "rhs is: " << b << std::endl; + std::abort(); + } +} + +#define assertEq(a, b) assertEqImpl(a, b, #a " == " #b, __FILE__, __LINE__) + int main() { using enum X86Register;