![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
Go to the source code of this file.
Macros | |
#define | FETCH_DECODE_MODRM(mod, rh, rl) fetch_decode_modrm(&mod,&rh,&rl) |
#define | DECODE_RM_BYTE_REGISTER(r) decode_rm_byte_register(r) |
#define | DECODE_RM_WORD_REGISTER(r) decode_rm_word_register(r) |
#define | DECODE_RM_LONG_REGISTER(r) decode_rm_long_register(r) |
#define | DECODE_CLEAR_SEGOVR() M.x86.mode &= ~SYSMODE_CLRMASK |
#define DECODE_CLEAR_SEGOVR | ( | ) | M.x86.mode &= ~SYSMODE_CLRMASK |
#define DECODE_RM_BYTE_REGISTER | ( | r | ) | decode_rm_byte_register(r) |
#define DECODE_RM_LONG_REGISTER | ( | r | ) | decode_rm_long_register(r) |
#define DECODE_RM_WORD_REGISTER | ( | r | ) | decode_rm_word_register(r) |
#define FETCH_DECODE_MODRM | ( | mod, | |
rh, | |||
rl | |||
) | fetch_decode_modrm(&mod,&rh,&rl) |
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().
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 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 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().