H A D | emulate.c | 207 int (*execute)(struct x86_emulate_ctxt *ctxt); 214 int (*check_perm)(struct x86_emulate_ctxt *ctxt); 256 static ulong reg_read(struct x86_emulate_ctxt *ctxt, unsigned nr) argument 258 if (!(ctxt->regs_valid & (1 << nr))) { 259 ctxt->regs_valid |= 1 << nr; 260 ctxt->_regs[nr] = ctxt->ops->read_gpr(ctxt, nr); 262 return ctxt->_regs[nr]; 265 static ulong *reg_write(struct x86_emulate_ctxt *ctxt, unsigne argument 272 reg_rmw(struct x86_emulate_ctxt *ctxt, unsigned nr) argument 278 writeback_registers(struct x86_emulate_ctxt *ctxt) argument 286 invalidate_registers(struct x86_emulate_ctxt *ctxt) argument 422 emulator_check_intercept(struct x86_emulate_ctxt *ctxt, enum x86_intercept intercept, enum x86_intercept_stage stage) argument 448 ad_mask(struct x86_emulate_ctxt *ctxt) argument 453 stack_mask(struct x86_emulate_ctxt *ctxt) argument 464 stack_size(struct x86_emulate_ctxt *ctxt) argument 471 address_mask(struct x86_emulate_ctxt *ctxt, unsigned long reg) argument 480 register_address(struct x86_emulate_ctxt *ctxt, unsigned long reg) argument 491 register_address_increment(struct x86_emulate_ctxt *ctxt, unsigned long *reg, int inc) argument 502 rsp_increment(struct x86_emulate_ctxt *ctxt, int inc) argument 514 seg_base(struct x86_emulate_ctxt *ctxt, int seg) argument 522 emulate_exception(struct x86_emulate_ctxt *ctxt, int vec, u32 error, bool valid) argument 532 emulate_db(struct x86_emulate_ctxt *ctxt) argument 537 emulate_gp(struct x86_emulate_ctxt *ctxt, int err) argument 542 emulate_ss(struct x86_emulate_ctxt *ctxt, int err) argument 547 emulate_ud(struct x86_emulate_ctxt *ctxt) argument 552 emulate_ts(struct x86_emulate_ctxt *ctxt, int err) argument 557 emulate_de(struct x86_emulate_ctxt *ctxt) argument 562 emulate_nm(struct x86_emulate_ctxt *ctxt) argument 567 assign_eip_far(struct x86_emulate_ctxt *ctxt, ulong dst, int cs_l) argument 591 assign_eip_near(struct x86_emulate_ctxt *ctxt, ulong dst) argument 596 jmp_rel(struct x86_emulate_ctxt *ctxt, int rel) argument 601 get_segment_selector(struct x86_emulate_ctxt *ctxt, unsigned seg) argument 610 set_segment_selector(struct x86_emulate_ctxt *ctxt, u16 selector, unsigned seg) argument 629 insn_aligned(struct x86_emulate_ctxt *ctxt, unsigned size) argument 644 __linearize(struct x86_emulate_ctxt *ctxt, struct segmented_address addr, unsigned *max_size, unsigned size, bool write, bool fetch, ulong *linear) argument 732 linearize(struct x86_emulate_ctxt *ctxt, struct segmented_address addr, unsigned size, bool write, ulong *linear) argument 742 segmented_read_std(struct x86_emulate_ctxt *ctxt, struct segmented_address addr, void *data, unsigned size) argument 760 __do_insn_fetch_bytes(struct x86_emulate_ctxt *ctxt, int op_size) argument 803 do_insn_fetch_bytes(struct x86_emulate_ctxt *ctxt, unsigned size) argument 842 decode_register(struct x86_emulate_ctxt *ctxt, u8 modrm_reg, int byteop) argument 855 read_descriptor(struct x86_emulate_ctxt *ctxt, struct segmented_address addr, u16 *size, unsigned long *address, int op_bytes) argument 943 read_sse_reg(struct x86_emulate_ctxt *ctxt, sse128_t *data, int reg) argument 970 write_sse_reg(struct x86_emulate_ctxt *ctxt, sse128_t *data, int reg) argument 998 read_mmx_reg(struct x86_emulate_ctxt *ctxt, u64 *data, int reg) argument 1015 write_mmx_reg(struct x86_emulate_ctxt *ctxt, u64 *data, int reg) argument 1032 em_fninit(struct x86_emulate_ctxt *ctxt) argument 1043 em_fnstcw(struct x86_emulate_ctxt *ctxt) argument 1061 em_fnstsw(struct x86_emulate_ctxt *ctxt) argument 1079 decode_register_operand(struct x86_emulate_ctxt *ctxt, struct operand *op) argument 1110 adjust_modrm_seg(struct x86_emulate_ctxt *ctxt, int base_reg) argument 1116 decode_modrm(struct x86_emulate_ctxt *ctxt, struct operand *op) argument 1252 decode_abs(struct x86_emulate_ctxt *ctxt, struct operand *op) argument 1273 fetch_bit_operand(struct x86_emulate_ctxt *ctxt) argument 1294 read_emulated(struct x86_emulate_ctxt *ctxt, unsigned long addr, void *dest, unsigned size) argument 1318 segmented_read(struct x86_emulate_ctxt *ctxt, struct segmented_address addr, void *data, unsigned size) argument 1332 segmented_write(struct x86_emulate_ctxt *ctxt, struct segmented_address addr, const void *data, unsigned size) argument 1347 segmented_cmpxchg(struct x86_emulate_ctxt *ctxt, struct segmented_address addr, const void *orig_data, const void *data, unsigned size) argument 1362 pio_in_emulated(struct x86_emulate_ctxt *ctxt, unsigned int size, unsigned short port, void *dest) argument 1397 read_interrupt_descriptor(struct x86_emulate_ctxt *ctxt, u16 index, struct desc_struct *desc) argument 1413 get_descriptor_table_ptr(struct x86_emulate_ctxt *ctxt, u16 selector, struct desc_ptr *dt) argument 1435 read_segment_descriptor(struct x86_emulate_ctxt *ctxt, u16 selector, struct desc_struct *desc, ulong *desc_addr_p) argument 1454 write_segment_descriptor(struct x86_emulate_ctxt *ctxt, u16 selector, struct desc_struct *desc) argument 1472 __load_segment_descriptor(struct x86_emulate_ctxt *ctxt, u16 selector, int seg, u8 cpl, bool in_task_switch, struct desc_struct *desc) argument 1623 load_segment_descriptor(struct x86_emulate_ctxt *ctxt, u16 selector, int seg) argument 1649 writeback(struct x86_emulate_ctxt *ctxt, struct operand *op) argument 1689 push(struct x86_emulate_ctxt *ctxt, void *data, int bytes) argument 1700 em_push(struct x86_emulate_ctxt *ctxt) argument 1707 emulate_pop(struct x86_emulate_ctxt *ctxt, void *dest, int len) argument 1723 em_pop(struct x86_emulate_ctxt *ctxt) argument 1728 emulate_popf(struct x86_emulate_ctxt *ctxt, void *dest, int len) argument 1768 em_popf(struct x86_emulate_ctxt *ctxt) argument 1776 em_enter(struct x86_emulate_ctxt *ctxt) argument 1798 em_leave(struct x86_emulate_ctxt *ctxt) argument 1805 em_push_sreg(struct x86_emulate_ctxt *ctxt) argument 1814 em_pop_sreg(struct x86_emulate_ctxt *ctxt) argument 1831 em_pusha(struct x86_emulate_ctxt *ctxt) argument 1851 em_pushf(struct x86_emulate_ctxt *ctxt) argument 1857 em_popa(struct x86_emulate_ctxt *ctxt) argument 1876 __emulate_int_real(struct x86_emulate_ctxt *ctxt, int irq) argument 1925 emulate_int_real(struct x86_emulate_ctxt *ctxt, int irq) argument 1936 emulate_int(struct x86_emulate_ctxt *ctxt, int irq) argument 1951 emulate_iret_real(struct x86_emulate_ctxt *ctxt) argument 2003 em_iret(struct x86_emulate_ctxt *ctxt) argument 2018 em_jmp_far(struct x86_emulate_ctxt *ctxt) argument 2048 em_grp45(struct x86_emulate_ctxt *ctxt) argument 2076 em_cmpxchg8b(struct x86_emulate_ctxt *ctxt) argument 2097 em_ret(struct x86_emulate_ctxt *ctxt) argument 2109 em_ret_far(struct x86_emulate_ctxt *ctxt) argument 2143 em_ret_far_imm(struct x86_emulate_ctxt *ctxt) argument 2154 em_cmpxchg(struct x86_emulate_ctxt *ctxt) argument 2175 em_lseg(struct x86_emulate_ctxt *ctxt) argument 2192 setup_syscalls_segments(struct x86_emulate_ctxt *ctxt, struct desc_struct *cs, struct desc_struct *ss) argument 2218 vendor_intel(struct x86_emulate_ctxt *ctxt) argument 2229 em_syscall_is_enabled(struct x86_emulate_ctxt *ctxt) argument 2273 em_syscall(struct x86_emulate_ctxt *ctxt) argument 2331 em_sysenter(struct x86_emulate_ctxt *ctxt) argument 2396 em_sysexit(struct x86_emulate_ctxt *ctxt) argument 2453 emulator_bad_iopl(struct x86_emulate_ctxt *ctxt) argument 2464 emulator_io_port_access_allowed(struct x86_emulate_ctxt *ctxt, u16 port, u16 len) argument 2497 emulator_io_permited(struct x86_emulate_ctxt *ctxt, u16 port, u16 len) argument 2512 save_state_to_tss16(struct x86_emulate_ctxt *ctxt, struct tss_segment_16 *tss) argument 2533 load_state_from_tss16(struct x86_emulate_ctxt *ctxt, struct tss_segment_16 *tss) argument 2590 task_switch_16(struct x86_emulate_ctxt *ctxt, u16 tss_selector, u16 old_tss_sel, ulong old_tss_base, struct desc_struct *new_desc) argument 2634 save_state_to_tss32(struct x86_emulate_ctxt *ctxt, struct tss_segment_32 *tss) argument 2657 load_state_from_tss32(struct x86_emulate_ctxt *ctxt, struct tss_segment_32 *tss) argument 2740 task_switch_32(struct x86_emulate_ctxt *ctxt, u16 tss_selector, u16 old_tss_sel, ulong old_tss_base, struct desc_struct *new_desc) argument 2787 emulator_do_task_switch(struct x86_emulate_ctxt *ctxt, u16 tss_selector, int idt_index, int reason, bool has_error_code, u32 error_code) argument 2890 emulator_task_switch(struct x86_emulate_ctxt *ctxt, u16 tss_selector, int idt_index, int reason, bool has_error_code, u32 error_code) argument 2911 string_addr_inc(struct x86_emulate_ctxt *ctxt, int reg, struct operand *op) argument 2920 em_das(struct x86_emulate_ctxt *ctxt) argument 2958 em_aam(struct x86_emulate_ctxt *ctxt) argument 2980 em_aad(struct x86_emulate_ctxt *ctxt) argument 2998 em_call(struct x86_emulate_ctxt *ctxt) argument 3010 em_call_far(struct x86_emulate_ctxt *ctxt) argument 3050 em_ret_near_imm(struct x86_emulate_ctxt *ctxt) argument 3065 em_xchg(struct x86_emulate_ctxt *ctxt) argument 3077 em_imul_3op(struct x86_emulate_ctxt *ctxt) argument 3083 em_cwd(struct x86_emulate_ctxt *ctxt) argument 3093 em_rdtsc(struct x86_emulate_ctxt *ctxt) argument 3103 em_rdpmc(struct x86_emulate_ctxt *ctxt) argument 3114 em_mov(struct x86_emulate_ctxt *ctxt) argument 3122 em_movbe(struct x86_emulate_ctxt *ctxt) argument 3160 em_cr_write(struct x86_emulate_ctxt *ctxt) argument 3170 em_dr_write(struct x86_emulate_ctxt *ctxt) argument 3188 em_wrmsr(struct x86_emulate_ctxt *ctxt) argument 3200 em_rdmsr(struct x86_emulate_ctxt *ctxt) argument 3212 em_mov_rm_sreg(struct x86_emulate_ctxt *ctxt) argument 3221 em_mov_sreg_rm(struct x86_emulate_ctxt *ctxt) argument 3236 em_lldt(struct x86_emulate_ctxt *ctxt) argument 3245 em_ltr(struct x86_emulate_ctxt *ctxt) argument 3254 em_invlpg(struct x86_emulate_ctxt *ctxt) argument 3267 em_clts(struct x86_emulate_ctxt *ctxt) argument 3277 em_vmcall(struct x86_emulate_ctxt *ctxt) argument 3291 emulate_store_desc_ptr(struct x86_emulate_ctxt *ctxt, void (*get)(struct x86_emulate_ctxt *ctxt, struct desc_ptr *ptr)) argument 3310 em_sgdt(struct x86_emulate_ctxt *ctxt) argument 3315 em_sidt(struct x86_emulate_ctxt *ctxt) argument 3320 em_lgdt(struct x86_emulate_ctxt *ctxt) argument 3338 em_vmmcall(struct x86_emulate_ctxt *ctxt) argument 3349 em_lidt(struct x86_emulate_ctxt *ctxt) argument 3367 em_smsw(struct x86_emulate_ctxt *ctxt) argument 3375 em_lmsw(struct x86_emulate_ctxt *ctxt) argument 3383 em_loop(struct x86_emulate_ctxt *ctxt) argument 3395 em_jcxz(struct x86_emulate_ctxt *ctxt) argument 3405 em_in(struct x86_emulate_ctxt *ctxt) argument 3414 em_out(struct x86_emulate_ctxt *ctxt) argument 3423 em_cli(struct x86_emulate_ctxt *ctxt) argument 3432 em_sti(struct x86_emulate_ctxt *ctxt) argument 3442 em_cpuid(struct x86_emulate_ctxt *ctxt) argument 3456 em_sahf(struct x86_emulate_ctxt *ctxt) argument 3468 em_lahf(struct x86_emulate_ctxt *ctxt) argument 3475 em_bswap(struct x86_emulate_ctxt *ctxt) argument 3490 em_clflush(struct x86_emulate_ctxt *ctxt) argument 3508 check_cr_read(struct x86_emulate_ctxt *ctxt) argument 3516 check_cr_write(struct x86_emulate_ctxt *ctxt) argument 3577 check_dr7_gd(struct x86_emulate_ctxt *ctxt) argument 3587 check_dr_read(struct x86_emulate_ctxt *ctxt) argument 3605 check_dr_write(struct x86_emulate_ctxt *ctxt) argument 3616 check_svme(struct x86_emulate_ctxt *ctxt) argument 3628 check_svme_pa(struct x86_emulate_ctxt *ctxt) argument 3639 check_rdtsc(struct x86_emulate_ctxt *ctxt) argument 3649 check_rdpmc(struct x86_emulate_ctxt *ctxt) argument 3661 check_perm_in(struct x86_emulate_ctxt *ctxt) argument 3670 check_perm_out(struct x86_emulate_ctxt *ctxt) argument 4175 imm_size(struct x86_emulate_ctxt *ctxt) argument 4185 decode_imm(struct x86_emulate_ctxt *ctxt, struct operand *op, unsigned size, bool sign_extension) argument 4225 decode_operand(struct x86_emulate_ctxt *ctxt, struct operand *op, unsigned d) argument 4391 x86_decode_insn(struct x86_emulate_ctxt *ctxt, void *insn, int insn_len) argument 4640 x86_page_table_writing_insn(struct x86_emulate_ctxt *ctxt) argument 4645 string_insn_completed(struct x86_emulate_ctxt *ctxt) argument 4665 flush_pending_x87_faults(struct x86_emulate_ctxt *ctxt) argument 4687 fetch_possible_mmx_operand(struct x86_emulate_ctxt *ctxt, struct operand *op) argument 4694 fastop(struct x86_emulate_ctxt *ctxt, void (*fop)(struct fastop *)) argument 4709 init_decode_cache(struct x86_emulate_ctxt *ctxt) argument 4719 x86_emulate_insn(struct x86_emulate_ctxt *ctxt) argument 5076 emulator_invalidate_register_cache(struct x86_emulate_ctxt *ctxt) argument 5081 emulator_writeback_register_cache(struct x86_emulate_ctxt *ctxt) argument [all...] |