![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include "x86emui.h"
Go to the source code of this file.
Macros | |
#define | GET_SEGMENT(segment) |
#define GET_SEGMENT | ( | segment | ) |
unsigned int decode_rm00_address | ( | int | rm | ) |
Definition at line 877 of file decode.c.
References DECODE_PRINTF, DECODE_PRINTF2, decode_sib_address(), fetch_long_imm(), fetch_word_imm(), HALT_SYS, M, offset, SYSMODE_PREFIX_ADDR, and SYSMODE_SEG_DS_SS.
Referenced by decode_rmXX_address(), x86emuOp2_opc_01(), x86emuOp_esc_coprocess_d9(), x86emuOp_esc_coprocess_da(), x86emuOp_esc_coprocess_db(), x86emuOp_esc_coprocess_dc(), x86emuOp_esc_coprocess_dd(), x86emuOp_esc_coprocess_de(), and x86emuOp_esc_coprocess_df().
unsigned int decode_rm01_address | ( | int | rm | ) |
Definition at line 957 of file decode.c.
References DECODE_PRINTF2, decode_sib_address(), fetch_byte_imm(), HALT_SYS, M, offset, SYSMODE_PREFIX_ADDR, and SYSMODE_SEG_DS_SS.
Referenced by decode_rmXX_address(), x86emuOp2_opc_01(), x86emuOp_esc_coprocess_d9(), x86emuOp_esc_coprocess_da(), x86emuOp_esc_coprocess_db(), x86emuOp_esc_coprocess_dc(), x86emuOp_esc_coprocess_dd(), x86emuOp_esc_coprocess_de(), and x86emuOp_esc_coprocess_df().
unsigned int decode_rm10_address | ( | int | rm | ) |
Definition at line 1046 of file decode.c.
References DECODE_PRINTF2, decode_sib_address(), fetch_long_imm(), fetch_word_imm(), HALT_SYS, M, offset, SYSMODE_PREFIX_ADDR, and SYSMODE_SEG_DS_SS.
Referenced by decode_rmXX_address(), x86emuOp2_opc_01(), x86emuOp_esc_coprocess_d9(), x86emuOp_esc_coprocess_da(), x86emuOp_esc_coprocess_db(), x86emuOp_esc_coprocess_dc(), x86emuOp_esc_coprocess_dd(), x86emuOp_esc_coprocess_de(), and x86emuOp_esc_coprocess_df().
u8* decode_rm_byte_register | ( | int | reg | ) |
u32* decode_rm_long_register | ( | int | reg | ) |
u16* decode_rm_seg_register | ( | int | reg | ) |
Definition at line 695 of file decode.c.
References DECODE_PRINTF, HALT_SYS, M, and NULL.
Referenced by x86emuOp_mov_word_RM_SR(), and x86emuOp_mov_word_SR_RM().
u16* decode_rm_word_register | ( | int | reg | ) |
unsigned int decode_rmXX_address | ( | int | mod, |
int | rm | ||
) |
Definition at line 1138 of file decode.c.
References decode_rm00_address(), decode_rm01_address(), and decode_rm10_address().
Referenced by x86emuOp2_bsf(), x86emuOp2_bsr(), x86emuOp2_bt_R(), x86emuOp2_btc_R(), x86emuOp2_btr_R(), x86emuOp2_bts_R(), x86emuOp2_btX_I(), x86emuOp2_imul_R_RM(), x86emuOp2_lfs_R_IMM(), x86emuOp2_lgs_R_IMM(), x86emuOp2_lss_R_IMM(), x86emuOp2_movsx_byte_R_RM(), x86emuOp2_movsx_word_R_RM(), x86emuOp2_movzx_byte_R_RM(), x86emuOp2_movzx_word_R_RM(), x86emuOp2_set_byte(), x86emuOp2_shld_CL(), x86emuOp2_shld_IMM(), x86emuOp2_shrd_CL(), x86emuOp2_shrd_IMM(), x86emuOp_genop_byte_R_RM(), x86emuOp_genop_byte_RM_R(), x86emuOp_genop_word_R_RM(), x86emuOp_genop_word_RM_R(), x86emuOp_imul_byte_IMM(), x86emuOp_imul_word_IMM(), x86emuOp_lds_R_IMM(), x86emuOp_lea_word_R_M(), x86emuOp_les_R_IMM(), x86emuOp_mov_byte_R_RM(), x86emuOp_mov_byte_RM_IMM(), x86emuOp_mov_byte_RM_R(), x86emuOp_mov_word_R_RM(), x86emuOp_mov_word_RM_IMM(), x86emuOp_mov_word_RM_R(), x86emuOp_mov_word_RM_SR(), x86emuOp_mov_word_SR_RM(), x86emuOp_opc80_byte_RM_IMM(), x86emuOp_opc81_word_RM_IMM(), x86emuOp_opc82_byte_RM_IMM(), x86emuOp_opc83_word_RM_IMM(), x86emuOp_opcC0_byte_RM_MEM(), x86emuOp_opcC1_word_RM_MEM(), x86emuOp_opcD0_byte_RM_1(), x86emuOp_opcD1_word_RM_1(), x86emuOp_opcD2_byte_RM_CL(), x86emuOp_opcD3_word_RM_CL(), x86emuOp_opcF6_byte_RM(), x86emuOp_opcF7_word_RM(), x86emuOp_opcFE_byte_RM(), x86emuOp_opcFF_word_RM(), x86emuOp_pop_RM(), x86emuOp_test_byte_RM_R(), x86emuOp_test_word_RM_R(), x86emuOp_xchg_byte_RM_R(), and x86emuOp_xchg_word_RM_R().
|
static |
Definition at line 788 of file decode.c.
References base, DECODE_PRINTF, DECODE_PRINTF2, decode_sib_si(), fetch_byte_imm(), fetch_long_imm(), HALT_SYS, M, and offset.
Referenced by decode_rm00_address(), decode_rm01_address(), and decode_rm10_address().
|
static |
Definition at line 738 of file decode.c.
References DECODE_PRINTF, DECODE_PRINTF2, HALT_SYS, and M.
Referenced by decode_sib_address().
Definition at line 178 of file decode.c.
References CHECK_IP_FETCH, DB, INC_DECODED_INST_LEN, M, and x86emu_check_ip_access().
Referenced by decode_rm01_address(), decode_sib_address(), x86emuOp2_btX_I(), x86emuOp2_shld_IMM(), x86emuOp2_shrd_IMM(), x86emuOp_aad(), x86emuOp_aam(), x86emuOp_enter(), x86emuOp_genop_byte_AL_IMM(), x86emuOp_imul_byte_IMM(), x86emuOp_in_byte_AL_IMM(), x86emuOp_in_word_AX_IMM(), x86emuOp_int_IMM(), x86emuOp_jcxz(), x86emuOp_jump_byte_IMM(), x86emuOp_jump_near_cond(), x86emuOp_loop(), x86emuOp_loope(), x86emuOp_loopne(), x86emuOp_mov_byte_register_IMM(), x86emuOp_mov_byte_RM_IMM(), x86emuOp_opc80_byte_RM_IMM(), x86emuOp_opc82_byte_RM_IMM(), x86emuOp_opc83_word_RM_IMM(), x86emuOp_opcC0_byte_RM_MEM(), x86emuOp_opcC1_word_RM_MEM(), x86emuOp_opcF6_byte_RM(), x86emuOp_out_byte_IMM_AL(), x86emuOp_out_word_IMM_AX(), x86emuOp_push_byte_IMM(), and x86emuOp_test_AL_IMM().
Definition at line 305 of file decode.c.
References CHECK_DATA_ACCESS, get_data_segment(), offset, and x86emu_check_data_access().
Referenced by x86emuOp2_movsx_byte_R_RM(), x86emuOp2_movzx_byte_R_RM(), x86emuOp_cmps_byte(), x86emuOp_genop_byte_R_RM(), x86emuOp_genop_byte_RM_R(), x86emuOp_lods_byte(), x86emuOp_mov_AL_M_IMM(), x86emuOp_mov_byte_R_RM(), x86emuOp_movs_byte(), x86emuOp_opc80_byte_RM_IMM(), x86emuOp_opc82_byte_RM_IMM(), x86emuOp_opcC0_byte_RM_MEM(), x86emuOp_opcD0_byte_RM_1(), x86emuOp_opcD2_byte_RM_CL(), x86emuOp_opcF6_byte_RM(), x86emuOp_opcFE_byte_RM(), x86emuOp_test_byte_RM_R(), x86emuOp_xchg_byte_RM_R(), and x86emuOp_xlat().
Definition at line 363 of file decode.c.
References CHECK_DATA_ACCESS, offset, and x86emu_check_data_access().
Referenced by single_out(), x86emuOp_cmps_byte(), and x86emuOp_scas_byte().
Definition at line 343 of file decode.c.
References CHECK_DATA_ACCESS, get_data_segment(), offset, and x86emu_check_data_access().
Referenced by x86emuOp2_bsf(), x86emuOp2_bsr(), x86emuOp2_bt_R(), x86emuOp2_btc_R(), x86emuOp2_btr_R(), x86emuOp2_bts_R(), x86emuOp2_btX_I(), x86emuOp2_imul_R_RM(), x86emuOp2_shld_CL(), x86emuOp2_shld_IMM(), x86emuOp2_shrd_CL(), x86emuOp2_shrd_IMM(), x86emuOp_cmps_word(), x86emuOp_genop_word_R_RM(), x86emuOp_genop_word_RM_R(), x86emuOp_imul_byte_IMM(), x86emuOp_imul_word_IMM(), x86emuOp_lods_word(), x86emuOp_mov_AX_M_IMM(), x86emuOp_mov_word_R_RM(), x86emuOp_movs_word(), x86emuOp_opc81_word_RM_IMM(), x86emuOp_opc83_word_RM_IMM(), x86emuOp_opcC1_word_RM_MEM(), x86emuOp_opcD1_word_RM_1(), x86emuOp_opcD3_word_RM_CL(), x86emuOp_opcF7_word_RM(), x86emuOp_opcFF_word_RM(), x86emuOp_test_word_RM_R(), and x86emuOp_xchg_word_RM_R().
Definition at line 405 of file decode.c.
References CHECK_DATA_ACCESS, offset, and x86emu_check_data_access().
Referenced by single_out(), x86emuOp_cmps_word(), and x86emuOp_scas_word().
Definition at line 324 of file decode.c.
References CHECK_DATA_ACCESS, get_data_segment(), offset, and x86emu_check_data_access().
Referenced by x86emuOp2_bsf(), x86emuOp2_bsr(), x86emuOp2_bt_R(), x86emuOp2_btc_R(), x86emuOp2_btr_R(), x86emuOp2_bts_R(), x86emuOp2_btX_I(), x86emuOp2_imul_R_RM(), x86emuOp2_lfs_R_IMM(), x86emuOp2_lgs_R_IMM(), x86emuOp2_lss_R_IMM(), x86emuOp2_movsx_word_R_RM(), x86emuOp2_movzx_word_R_RM(), x86emuOp2_shld_CL(), x86emuOp2_shld_IMM(), x86emuOp2_shrd_CL(), x86emuOp2_shrd_IMM(), x86emuOp_cmps_word(), x86emuOp_genop_word_R_RM(), x86emuOp_genop_word_RM_R(), x86emuOp_imul_byte_IMM(), x86emuOp_imul_word_IMM(), x86emuOp_lds_R_IMM(), x86emuOp_les_R_IMM(), x86emuOp_lods_word(), x86emuOp_mov_AX_M_IMM(), x86emuOp_mov_word_R_RM(), x86emuOp_mov_word_SR_RM(), x86emuOp_movs_word(), x86emuOp_opc81_word_RM_IMM(), x86emuOp_opc83_word_RM_IMM(), x86emuOp_opcC1_word_RM_MEM(), x86emuOp_opcD1_word_RM_1(), x86emuOp_opcD3_word_RM_CL(), x86emuOp_opcF7_word_RM(), x86emuOp_opcFF_word_RM(), x86emuOp_test_word_RM_R(), and x86emuOp_xchg_word_RM_R().
Definition at line 384 of file decode.c.
References CHECK_DATA_ACCESS, offset, and x86emu_check_data_access().
Referenced by single_out(), x86emuOp_cmps_word(), x86emuOp_enter(), and x86emuOp_scas_word().
void fetch_decode_modrm | ( | int * | mod, |
int * | regh, | ||
int * | regl | ||
) |
Definition at line 152 of file decode.c.
References CHECK_IP_FETCH, DB, INC_DECODED_INST_LEN, M, and x86emu_check_ip_access().
Definition at line 221 of file decode.c.
References CHECK_IP_FETCH, DB, INC_DECODED_INST_LEN, M, and x86emu_check_ip_access().
Referenced by decode_rm00_address(), decode_rm10_address(), decode_sib_address(), x86emuOp_call_far_IMM(), x86emuOp_call_near_IMM(), x86emuOp_genop_word_AX_IMM(), x86emuOp_imul_word_IMM(), x86emuOp_jump_far_IMM(), x86emuOp_jump_near_IMM(), x86emuOp_mov_word_register_IMM(), x86emuOp_mov_word_RM_IMM(), x86emuOp_opc81_word_RM_IMM(), x86emuOp_opcF7_word_RM(), x86emuOp_push_word_IMM(), and x86emuOp_test_AX_IMM().
Definition at line 199 of file decode.c.
References CHECK_IP_FETCH, DB, INC_DECODED_INST_LEN, M, and x86emu_check_ip_access().
Referenced by decode_rm00_address(), decode_rm10_address(), x86emuOp2_long_jump(), x86emuOp_call_far_IMM(), x86emuOp_call_near_IMM(), x86emuOp_enter(), x86emuOp_genop_word_AX_IMM(), x86emuOp_imul_word_IMM(), x86emuOp_jump_far_IMM(), x86emuOp_jump_near_IMM(), x86emuOp_mov_AL_M_IMM(), x86emuOp_mov_AX_M_IMM(), x86emuOp_mov_M_AL_IMM(), x86emuOp_mov_M_AX_IMM(), x86emuOp_mov_word_register_IMM(), x86emuOp_mov_word_RM_IMM(), x86emuOp_opc81_word_RM_IMM(), x86emuOp_opcF7_word_RM(), x86emuOp_push_word_IMM(), x86emuOp_ret_far_IMM(), x86emuOp_ret_near_IMM(), and x86emuOp_test_AX_IMM().
Definition at line 262 of file decode.c.
References HALT_SYS, M, printf, SYSMODE_SEG_DS_SS, SYSMODE_SEGMASK, SYSMODE_SEGOVR_CS, SYSMODE_SEGOVR_DS, SYSMODE_SEGOVR_ES, SYSMODE_SEGOVR_FS, SYSMODE_SEGOVR_GS, and SYSMODE_SEGOVR_SS.
Referenced by fetch_data_byte(), fetch_data_long(), fetch_data_word(), store_data_byte(), store_data_long(), and store_data_word().
Definition at line 427 of file decode.c.
References CHECK_DATA_ACCESS, get_data_segment(), offset, val, and x86emu_check_data_access().
Referenced by x86emuOp2_set_byte(), x86emuOp_genop_byte_RM_R(), x86emuOp_mov_byte_RM_IMM(), x86emuOp_mov_byte_RM_R(), x86emuOp_mov_M_AL_IMM(), x86emuOp_opc80_byte_RM_IMM(), x86emuOp_opc82_byte_RM_IMM(), x86emuOp_opcC0_byte_RM_MEM(), x86emuOp_opcD0_byte_RM_1(), x86emuOp_opcD2_byte_RM_CL(), x86emuOp_opcF6_byte_RM(), x86emuOp_opcFE_byte_RM(), and x86emuOp_xchg_byte_RM_R().
Definition at line 493 of file decode.c.
References CHECK_DATA_ACCESS, offset, val, and x86emu_check_data_access().
Referenced by single_in(), x86emuOp_movs_byte(), and x86emuOp_stos_byte().
Definition at line 471 of file decode.c.
References CHECK_DATA_ACCESS, get_data_segment(), offset, val, and x86emu_check_data_access().
Referenced by x86emuOp2_btc_R(), x86emuOp2_btr_R(), x86emuOp2_bts_R(), x86emuOp2_btX_I(), x86emuOp2_shld_CL(), x86emuOp2_shld_IMM(), x86emuOp2_shrd_CL(), x86emuOp2_shrd_IMM(), x86emuOp_genop_word_RM_R(), x86emuOp_mov_M_AX_IMM(), x86emuOp_mov_word_RM_IMM(), x86emuOp_mov_word_RM_R(), x86emuOp_opc81_word_RM_IMM(), x86emuOp_opc83_word_RM_IMM(), x86emuOp_opcC1_word_RM_MEM(), x86emuOp_opcD1_word_RM_1(), x86emuOp_opcD3_word_RM_CL(), x86emuOp_opcF7_word_RM(), x86emuOp_opcFF_word_RM(), x86emuOp_pop_RM(), and x86emuOp_xchg_word_RM_R().
Definition at line 539 of file decode.c.
References CHECK_DATA_ACCESS, offset, val, and x86emu_check_data_access().
Referenced by single_in(), x86emuOp_movs_word(), and x86emuOp_stos_word().
Definition at line 449 of file decode.c.
References CHECK_DATA_ACCESS, get_data_segment(), offset, val, and x86emu_check_data_access().
Referenced by x86emuOp2_btc_R(), x86emuOp2_btr_R(), x86emuOp2_bts_R(), x86emuOp2_btX_I(), x86emuOp2_opc_01(), x86emuOp2_shld_CL(), x86emuOp2_shld_IMM(), x86emuOp2_shrd_CL(), x86emuOp2_shrd_IMM(), x86emuOp_genop_word_RM_R(), x86emuOp_mov_M_AX_IMM(), x86emuOp_mov_word_RM_IMM(), x86emuOp_mov_word_RM_R(), x86emuOp_mov_word_RM_SR(), x86emuOp_opc81_word_RM_IMM(), x86emuOp_opc83_word_RM_IMM(), x86emuOp_opcC1_word_RM_MEM(), x86emuOp_opcD1_word_RM_1(), x86emuOp_opcD3_word_RM_CL(), x86emuOp_opcF7_word_RM(), x86emuOp_opcFF_word_RM(), x86emuOp_pop_RM(), and x86emuOp_xchg_word_RM_R().
Definition at line 516 of file decode.c.
References CHECK_DATA_ACCESS, offset, val, and x86emu_check_data_access().
Referenced by single_in(), x86emuOp_movs_word(), and x86emuOp_stos_word().
Definition at line 92 of file decode.c.
References ACCESS_FLAG, CHECK_IP_FETCH, DB, F_IF, INC_DECODED_INST_LEN, INTR_HALTED, INTR_SYNCH, M, SAVE_IP_CS, x86emu_check_ip_access(), x86emu_end_instr(), x86emu_intr_handle(), and x86emu_optab.
Referenced by biosemu(), runInt10(), runInt13(), and void().
Definition at line 135 of file decode.c.
References INTR_HALTED, and M.
Referenced by void(), and x86emuOp_illegal_op().
Definition at line 48 of file decode.c.
References _X86EMU_intrTab, CLEAR_FLAG, F_IF, F_TF, INTR_SYNCH, M, mem_access_word(), and push_word().
Referenced by X86EMU_exec().
Definition at line 77 of file decode.c.
References INTR_SYNCH, M, printf, and x86emu_dump_regs().
Referenced by div_byte(), div_long(), div_word(), idiv_byte(), idiv_long(), and idiv_word().