1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-26 23:52:26 +00:00

Remove further errant 'Awaiting's.

This commit is contained in:
Thomas Harte 2022-01-31 08:22:07 -05:00
parent 2d543590dc
commit 85bfd2eba3

View File

@ -39,20 +39,20 @@ std::pair<int, InstructionSet::x86::Instruction> Decoder::decode(const uint8_t *
SetOpSrcDestSize(op, DirectAddress, dest, size); \ SetOpSrcDestSize(op, DirectAddress, dest, size); \
source_ = Source::Immediate; \ source_ = Source::Immediate; \
operand_size_ = size; \ operand_size_ = size; \
phase_ = Phase::AwaitingDisplacementOrOperand phase_ = Phase::DisplacementOrOperand
/// Handles instructions of the form Ax, jjkk where the latter is implicitly an address. /// Handles instructions of the form Ax, jjkk where the latter is implicitly an address.
#define RegAddr(op, dest, op_size, addr_size) \ #define RegAddr(op, dest, op_size, addr_size) \
SetOpSrcDestSize(op, DirectAddress, dest, op_size); \ SetOpSrcDestSize(op, DirectAddress, dest, op_size); \
operand_size_ = addr_size; \ operand_size_ = addr_size; \
phase_ = Phase::AwaitingDisplacementOrOperand phase_ = Phase::DisplacementOrOperand
/// Handles instructions of the form jjkk, Ax where the former is implicitly an address. /// Handles instructions of the form jjkk, Ax where the former is implicitly an address.
#define AddrReg(op, source, op_size, addr_size) \ #define AddrReg(op, source, op_size, addr_size) \
SetOpSrcDestSize(op, source, DirectAddress, op_size); \ SetOpSrcDestSize(op, source, DirectAddress, op_size); \
operand_size_ = addr_size; \ operand_size_ = addr_size; \
destination_ = Source::DirectAddress; \ destination_ = Source::DirectAddress; \
phase_ = Phase::AwaitingDisplacementOrOperand phase_ = Phase::DisplacementOrOperand
/// Covers both `mem/reg, reg` and `reg, mem/reg`. /// Covers both `mem/reg, reg` and `reg, mem/reg`.
#define MemRegReg(op, format, size) \ #define MemRegReg(op, format, size) \
@ -65,13 +65,13 @@ std::pair<int, InstructionSet::x86::Instruction> Decoder::decode(const uint8_t *
/// Handles JO, JNO, JB, etc — jumps with a single byte displacement. /// Handles JO, JNO, JB, etc — jumps with a single byte displacement.
#define Jump(op) \ #define Jump(op) \
operation_ = Operation::op; \ operation_ = Operation::op; \
phase_ = Phase::AwaitingDisplacementOrOperand; \ phase_ = Phase::DisplacementOrOperand; \
displacement_size_ = 1 displacement_size_ = 1
/// Handles far CALL and far JMP — fixed four byte operand operations. /// Handles far CALL and far JMP — fixed four byte operand operations.
#define Far(op) \ #define Far(op) \
operation_ = Operation::op; \ operation_ = Operation::op; \
phase_ = Phase::AwaitingDisplacementOrOperand; \ phase_ = Phase::DisplacementOrOperand; \
operand_size_ = 4; \ operand_size_ = 4; \
while(phase_ == Phase::Instruction && source != end) { while(phase_ == Phase::Instruction && source != end) {