#include <stdint.h>#include "emu/emu_cpu.h"#include "emu/emu_cpu_data.h"#include "emu/emu_memory.h"
Defines | |
| #define | INSTR_CALC(bits, a) |
| #define | INSTR_SET_FLAG_OF(cpu, bits) |
| #define | INSTR_CALC_AND_SET_FLAGS(bits, cpu, a) |
Functions | |
| int32_t | instr_inc_4x (struct emu_cpu *c, struct emu_cpu_instruction *i) |
| int32_t | instr_group_4_fe_inc (struct emu_cpu *c, struct emu_cpu_instruction *i) |
| int32_t | instr_group_5_ff_inc (struct emu_cpu *c, struct emu_cpu_instruction *i) |
| #define INSTR_CALC | ( | bits, | |||
| a | ) |
| #define INSTR_CALC_AND_SET_FLAGS | ( | bits, | |||
| cpu, | |||||
| a | ) |
INSTR_CALC(bits, a) \ INSTR_SET_FLAG_ZF(cpu) \ INSTR_SET_FLAG_PF(cpu) \ INSTR_SET_FLAG_SF(cpu) \ INSTR_SET_FLAG_OF(cpu,bits)
| #define INSTR_SET_FLAG_OF | ( | cpu, | |||
| bits | ) |
{ \
int64_t sz = (INTOF(bits))operand_a; \
\
sz++; \
\
if (sz < max_inttype_borders[sizeof(operation_result)][0][0] || sz > max_inttype_borders[sizeof(operation_result)][0][1] \
|| sz != (INTOF(bits))operation_result ) \
{ \
CPU_FLAG_SET(cpu, f_of); \
}else \
{ \
CPU_FLAG_UNSET(cpu, f_of); \
} \
}
| int32_t instr_group_4_fe_inc | ( | struct emu_cpu * | c, | |
| struct emu_cpu_instruction * | i | |||
| ) |
References emu_cpu_instruction::ea, INSTR_CALC_AND_SET_FLAGS, MEM_BYTE_READ, MEM_BYTE_WRITE, emu_cpu_instruction::mod, emu_cpu_instruction::modrm, emu_cpu::reg8, and emu_cpu_instruction::rm.
Referenced by instr_group_4_fe().
| int32_t instr_group_5_ff_inc | ( | struct emu_cpu * | c, | |
| struct emu_cpu_instruction * | i | |||
| ) |
References emu_cpu_instruction::ea, INSTR_CALC_AND_SET_FLAGS, MEM_DWORD_READ, MEM_DWORD_WRITE, MEM_WORD_READ, MEM_WORD_WRITE, emu_cpu_instruction::mod, emu_cpu_instruction::modrm, PREFIX_OPSIZE, emu_cpu_instruction::prefixes, emu_cpu::reg, emu_cpu::reg16, and emu_cpu_instruction::rm.
Referenced by instr_group_5_ff().
| int32_t instr_inc_4x | ( | struct emu_cpu * | c, | |
| struct emu_cpu_instruction * | i | |||
| ) |
1.6.1