Lines Matching refs:x86_emulate_ctxt
218 int (*execute)(struct x86_emulate_ctxt *ctxt);
227 int (*check_perm)(struct x86_emulate_ctxt *ctxt);
266 static ulong reg_read(struct x86_emulate_ctxt *ctxt, unsigned nr) in reg_read()
275 static ulong *reg_write(struct x86_emulate_ctxt *ctxt, unsigned nr) in reg_write()
282 static ulong *reg_rmw(struct x86_emulate_ctxt *ctxt, unsigned nr) in reg_rmw()
288 static void writeback_registers(struct x86_emulate_ctxt *ctxt) in writeback_registers()
296 static void invalidate_registers(struct x86_emulate_ctxt *ctxt) in invalidate_registers()
315 static int fastop(struct x86_emulate_ctxt *ctxt, void (*fop)(struct fastop *));
477 static int emulator_check_intercept(struct x86_emulate_ctxt *ctxt, in emulator_check_intercept()
522 static inline unsigned long ad_mask(struct x86_emulate_ctxt *ctxt) in ad_mask()
527 static ulong stack_mask(struct x86_emulate_ctxt *ctxt) in stack_mask()
538 static int stack_size(struct x86_emulate_ctxt *ctxt) in stack_size()
545 address_mask(struct x86_emulate_ctxt *ctxt, unsigned long reg) in address_mask()
554 register_address(struct x86_emulate_ctxt *ctxt, int reg) in register_address()
565 register_address_increment(struct x86_emulate_ctxt *ctxt, int reg, int inc) in register_address_increment()
572 static void rsp_increment(struct x86_emulate_ctxt *ctxt, int inc) in rsp_increment()
584 static unsigned long seg_base(struct x86_emulate_ctxt *ctxt, int seg) in seg_base()
592 static int emulate_exception(struct x86_emulate_ctxt *ctxt, int vec, in emulate_exception()
602 static int emulate_db(struct x86_emulate_ctxt *ctxt) in emulate_db()
607 static int emulate_gp(struct x86_emulate_ctxt *ctxt, int err) in emulate_gp()
612 static int emulate_ss(struct x86_emulate_ctxt *ctxt, int err) in emulate_ss()
617 static int emulate_ud(struct x86_emulate_ctxt *ctxt) in emulate_ud()
622 static int emulate_ts(struct x86_emulate_ctxt *ctxt, int err) in emulate_ts()
627 static int emulate_de(struct x86_emulate_ctxt *ctxt) in emulate_de()
632 static int emulate_nm(struct x86_emulate_ctxt *ctxt) in emulate_nm()
637 static u16 get_segment_selector(struct x86_emulate_ctxt *ctxt, unsigned seg) in get_segment_selector()
646 static void set_segment_selector(struct x86_emulate_ctxt *ctxt, u16 selector, in set_segment_selector()
666 static unsigned insn_alignment(struct x86_emulate_ctxt *ctxt, unsigned size) in insn_alignment()
685 static __always_inline int __linearize(struct x86_emulate_ctxt *ctxt, in __linearize()
752 static int linearize(struct x86_emulate_ctxt *ctxt, in linearize()
762 static inline int assign_eip(struct x86_emulate_ctxt *ctxt, ulong dst, in assign_eip()
779 static inline int assign_eip_near(struct x86_emulate_ctxt *ctxt, ulong dst) in assign_eip_near()
784 static int assign_eip_far(struct x86_emulate_ctxt *ctxt, ulong dst, in assign_eip_far()
810 static inline int jmp_rel(struct x86_emulate_ctxt *ctxt, int rel) in jmp_rel()
815 static int linear_read_system(struct x86_emulate_ctxt *ctxt, ulong linear, in linear_read_system()
821 static int linear_write_system(struct x86_emulate_ctxt *ctxt, in linear_write_system()
828 static int segmented_read_std(struct x86_emulate_ctxt *ctxt, in segmented_read_std()
842 static int segmented_write_std(struct x86_emulate_ctxt *ctxt, in segmented_write_std()
860 static int __do_insn_fetch_bytes(struct x86_emulate_ctxt *ctxt, int op_size) in __do_insn_fetch_bytes()
904 static __always_inline int do_insn_fetch_bytes(struct x86_emulate_ctxt *ctxt, in do_insn_fetch_bytes()
943 static void *decode_register(struct x86_emulate_ctxt *ctxt, u8 modrm_reg, in decode_register()
956 static int read_descriptor(struct x86_emulate_ctxt *ctxt, in read_descriptor()
1017 static int em_bsf_c(struct x86_emulate_ctxt *ctxt) in em_bsf_c()
1025 static int em_bsr_c(struct x86_emulate_ctxt *ctxt) in em_bsr_c()
1062 static void read_sse_reg(struct x86_emulate_ctxt *ctxt, sse128_t *data, int reg) in read_sse_reg()
1087 static void write_sse_reg(struct x86_emulate_ctxt *ctxt, sse128_t *data, in write_sse_reg()
1113 static void read_mmx_reg(struct x86_emulate_ctxt *ctxt, u64 *data, int reg) in read_mmx_reg()
1128 static void write_mmx_reg(struct x86_emulate_ctxt *ctxt, u64 *data, int reg) in write_mmx_reg()
1143 static int em_fninit(struct x86_emulate_ctxt *ctxt) in em_fninit()
1152 static int em_fnstcw(struct x86_emulate_ctxt *ctxt) in em_fnstcw()
1166 static int em_fnstsw(struct x86_emulate_ctxt *ctxt) in em_fnstsw()
1180 static void decode_register_operand(struct x86_emulate_ctxt *ctxt, in decode_register_operand()
1211 static void adjust_modrm_seg(struct x86_emulate_ctxt *ctxt, int base_reg) in adjust_modrm_seg()
1217 static int decode_modrm(struct x86_emulate_ctxt *ctxt, in decode_modrm()
1354 static int decode_abs(struct x86_emulate_ctxt *ctxt, in decode_abs()
1375 static void fetch_bit_operand(struct x86_emulate_ctxt *ctxt) in fetch_bit_operand()
1397 static int read_emulated(struct x86_emulate_ctxt *ctxt, in read_emulated()
1421 static int segmented_read(struct x86_emulate_ctxt *ctxt, in segmented_read()
1435 static int segmented_write(struct x86_emulate_ctxt *ctxt, in segmented_write()
1450 static int segmented_cmpxchg(struct x86_emulate_ctxt *ctxt, in segmented_cmpxchg()
1465 static int pio_in_emulated(struct x86_emulate_ctxt *ctxt, in pio_in_emulated()
1500 static int read_interrupt_descriptor(struct x86_emulate_ctxt *ctxt, in read_interrupt_descriptor()
1515 static void get_descriptor_table_ptr(struct x86_emulate_ctxt *ctxt, in get_descriptor_table_ptr()
1536 static int get_descriptor_ptr(struct x86_emulate_ctxt *ctxt, in get_descriptor_ptr()
1565 static int read_segment_descriptor(struct x86_emulate_ctxt *ctxt, in read_segment_descriptor()
1579 static int write_segment_descriptor(struct x86_emulate_ctxt *ctxt, in write_segment_descriptor()
1592 static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt, in __load_segment_descriptor()
1766 static int load_segment_descriptor(struct x86_emulate_ctxt *ctxt, in load_segment_descriptor()
1794 static int writeback(struct x86_emulate_ctxt *ctxt, struct operand *op) in writeback()
1834 static int push(struct x86_emulate_ctxt *ctxt, void *data, int bytes) in push()
1845 static int em_push(struct x86_emulate_ctxt *ctxt) in em_push()
1852 static int emulate_pop(struct x86_emulate_ctxt *ctxt, in emulate_pop()
1868 static int em_pop(struct x86_emulate_ctxt *ctxt) in em_pop()
1873 static int emulate_popf(struct x86_emulate_ctxt *ctxt, in emulate_popf()
1915 static int em_popf(struct x86_emulate_ctxt *ctxt) in em_popf()
1923 static int em_enter(struct x86_emulate_ctxt *ctxt) in em_enter()
1945 static int em_leave(struct x86_emulate_ctxt *ctxt) in em_leave()
1952 static int em_push_sreg(struct x86_emulate_ctxt *ctxt) in em_push_sreg()
1965 static int em_pop_sreg(struct x86_emulate_ctxt *ctxt) in em_pop_sreg()
1984 static int em_pusha(struct x86_emulate_ctxt *ctxt) in em_pusha()
2004 static int em_pushf(struct x86_emulate_ctxt *ctxt) in em_pushf()
2010 static int em_popa(struct x86_emulate_ctxt *ctxt) in em_popa()
2031 static int __emulate_int_real(struct x86_emulate_ctxt *ctxt, int irq) in __emulate_int_real()
2080 int emulate_int_real(struct x86_emulate_ctxt *ctxt, int irq) in emulate_int_real()
2091 static int emulate_int(struct x86_emulate_ctxt *ctxt, int irq) in emulate_int()
2106 static int emulate_iret_real(struct x86_emulate_ctxt *ctxt) in emulate_iret_real()
2162 static int em_iret(struct x86_emulate_ctxt *ctxt) in em_iret()
2177 static int em_jmp_far(struct x86_emulate_ctxt *ctxt) in em_jmp_far()
2200 static int em_jmp_abs(struct x86_emulate_ctxt *ctxt) in em_jmp_abs()
2205 static int em_call_near_abs(struct x86_emulate_ctxt *ctxt) in em_call_near_abs()
2219 static int em_cmpxchg8b(struct x86_emulate_ctxt *ctxt) in em_cmpxchg8b()
2240 static int em_ret(struct x86_emulate_ctxt *ctxt) in em_ret()
2252 static int em_ret_far(struct x86_emulate_ctxt *ctxt) in em_ret_far()
2281 static int em_ret_far_imm(struct x86_emulate_ctxt *ctxt) in em_ret_far_imm()
2292 static int em_cmpxchg(struct x86_emulate_ctxt *ctxt) in em_cmpxchg()
2316 static int em_lseg(struct x86_emulate_ctxt *ctxt) in em_lseg()
2332 static int emulator_has_longmode(struct x86_emulate_ctxt *ctxt) in emulator_has_longmode()
2364 static int rsm_load_seg_32(struct x86_emulate_ctxt *ctxt, u64 smbase, int n) in rsm_load_seg_32()
2384 static int rsm_load_seg_64(struct x86_emulate_ctxt *ctxt, u64 smbase, int n) in rsm_load_seg_64()
2403 static int rsm_enter_protected_mode(struct x86_emulate_ctxt *ctxt, in rsm_enter_protected_mode()
2448 static int rsm_load_state_32(struct x86_emulate_ctxt *ctxt, u64 smbase) in rsm_load_state_32()
2502 static int rsm_load_state_64(struct x86_emulate_ctxt *ctxt, u64 smbase) in rsm_load_state_64()
2564 static int em_rsm(struct x86_emulate_ctxt *ctxt) in em_rsm()
2637 setup_syscalls_segments(struct x86_emulate_ctxt *ctxt, in setup_syscalls_segments()
2663 static bool vendor_intel(struct x86_emulate_ctxt *ctxt) in vendor_intel()
2674 static bool em_syscall_is_enabled(struct x86_emulate_ctxt *ctxt) in em_syscall_is_enabled()
2718 static int em_syscall(struct x86_emulate_ctxt *ctxt) in em_syscall()
2778 static int em_sysenter(struct x86_emulate_ctxt *ctxt) in em_sysenter()
2830 static int em_sysexit(struct x86_emulate_ctxt *ctxt) in em_sysexit()
2889 static bool emulator_bad_iopl(struct x86_emulate_ctxt *ctxt) in emulator_bad_iopl()
2903 static bool emulator_io_port_access_allowed(struct x86_emulate_ctxt *ctxt, in emulator_io_port_access_allowed()
2944 static bool emulator_io_permited(struct x86_emulate_ctxt *ctxt, in emulator_io_permited()
2959 static void string_registers_quirk(struct x86_emulate_ctxt *ctxt) in string_registers_quirk()
2983 static void save_state_to_tss16(struct x86_emulate_ctxt *ctxt, in save_state_to_tss16()
3004 static int load_state_from_tss16(struct x86_emulate_ctxt *ctxt, in load_state_from_tss16()
3061 static int task_switch_16(struct x86_emulate_ctxt *ctxt, in task_switch_16()
3096 static void save_state_to_tss32(struct x86_emulate_ctxt *ctxt, in save_state_to_tss32()
3119 static int load_state_from_tss32(struct x86_emulate_ctxt *ctxt, in load_state_from_tss32()
3200 static int task_switch_32(struct x86_emulate_ctxt *ctxt, in task_switch_32()
3239 static int emulator_do_task_switch(struct x86_emulate_ctxt *ctxt, in emulator_do_task_switch()
3341 int emulator_task_switch(struct x86_emulate_ctxt *ctxt, in emulator_task_switch()
3362 static void string_addr_inc(struct x86_emulate_ctxt *ctxt, int reg, in string_addr_inc()
3371 static int em_das(struct x86_emulate_ctxt *ctxt) in em_das()
3409 static int em_aam(struct x86_emulate_ctxt *ctxt) in em_aam()
3431 static int em_aad(struct x86_emulate_ctxt *ctxt) in em_aad()
3449 static int em_call(struct x86_emulate_ctxt *ctxt) in em_call()
3461 static int em_call_far(struct x86_emulate_ctxt *ctxt) in em_call_far()
3505 static int em_ret_near_imm(struct x86_emulate_ctxt *ctxt) in em_ret_near_imm()
3520 static int em_xchg(struct x86_emulate_ctxt *ctxt) in em_xchg()
3532 static int em_imul_3op(struct x86_emulate_ctxt *ctxt) in em_imul_3op()
3538 static int em_cwd(struct x86_emulate_ctxt *ctxt) in em_cwd()
3548 static int em_rdpid(struct x86_emulate_ctxt *ctxt) in em_rdpid()
3558 static int em_rdtsc(struct x86_emulate_ctxt *ctxt) in em_rdtsc()
3568 static int em_rdpmc(struct x86_emulate_ctxt *ctxt) in em_rdpmc()
3579 static int em_mov(struct x86_emulate_ctxt *ctxt) in em_mov()
3587 static int em_movbe(struct x86_emulate_ctxt *ctxt) in em_movbe()
3625 static int em_cr_write(struct x86_emulate_ctxt *ctxt) in em_cr_write()
3635 static int em_dr_write(struct x86_emulate_ctxt *ctxt) in em_dr_write()
3653 static int em_wrmsr(struct x86_emulate_ctxt *ctxt) in em_wrmsr()
3665 static int em_rdmsr(struct x86_emulate_ctxt *ctxt) in em_rdmsr()
3677 static int em_store_sreg(struct x86_emulate_ctxt *ctxt, int segment) in em_store_sreg()
3690 static int em_mov_rm_sreg(struct x86_emulate_ctxt *ctxt) in em_mov_rm_sreg()
3698 static int em_mov_sreg_rm(struct x86_emulate_ctxt *ctxt) in em_mov_sreg_rm()
3713 static int em_sldt(struct x86_emulate_ctxt *ctxt) in em_sldt()
3718 static int em_lldt(struct x86_emulate_ctxt *ctxt) in em_lldt()
3727 static int em_str(struct x86_emulate_ctxt *ctxt) in em_str()
3732 static int em_ltr(struct x86_emulate_ctxt *ctxt) in em_ltr()
3741 static int em_invlpg(struct x86_emulate_ctxt *ctxt) in em_invlpg()
3754 static int em_clts(struct x86_emulate_ctxt *ctxt) in em_clts()
3764 static int em_hypercall(struct x86_emulate_ctxt *ctxt) in em_hypercall()
3778 static int emulate_store_desc_ptr(struct x86_emulate_ctxt *ctxt, in emulate_store_desc_ptr()
3779 void (*get)(struct x86_emulate_ctxt *ctxt, in emulate_store_desc_ptr()
3801 static int em_sgdt(struct x86_emulate_ctxt *ctxt) in em_sgdt()
3806 static int em_sidt(struct x86_emulate_ctxt *ctxt) in em_sidt()
3811 static int em_lgdt_lidt(struct x86_emulate_ctxt *ctxt, bool lgdt) in em_lgdt_lidt()
3835 static int em_lgdt(struct x86_emulate_ctxt *ctxt) in em_lgdt()
3840 static int em_lidt(struct x86_emulate_ctxt *ctxt) in em_lidt()
3845 static int em_smsw(struct x86_emulate_ctxt *ctxt) in em_smsw()
3857 static int em_lmsw(struct x86_emulate_ctxt *ctxt) in em_lmsw()
3865 static int em_loop(struct x86_emulate_ctxt *ctxt) in em_loop()
3877 static int em_jcxz(struct x86_emulate_ctxt *ctxt) in em_jcxz()
3887 static int em_in(struct x86_emulate_ctxt *ctxt) in em_in()
3896 static int em_out(struct x86_emulate_ctxt *ctxt) in em_out()
3905 static int em_cli(struct x86_emulate_ctxt *ctxt) in em_cli()
3914 static int em_sti(struct x86_emulate_ctxt *ctxt) in em_sti()
3924 static int em_cpuid(struct x86_emulate_ctxt *ctxt) in em_cpuid()
3945 static int em_sahf(struct x86_emulate_ctxt *ctxt) in em_sahf()
3958 static int em_lahf(struct x86_emulate_ctxt *ctxt) in em_lahf()
3965 static int em_bswap(struct x86_emulate_ctxt *ctxt) in em_bswap()
3980 static int em_clflush(struct x86_emulate_ctxt *ctxt) in em_clflush()
3986 static int em_movsxd(struct x86_emulate_ctxt *ctxt) in em_movsxd()
3992 static int check_fxsr(struct x86_emulate_ctxt *ctxt) in check_fxsr()
4022 static inline size_t fxstate_size(struct x86_emulate_ctxt *ctxt) in fxstate_size()
4050 static int em_fxsave(struct x86_emulate_ctxt *ctxt) in em_fxsave()
4088 static int em_fxrstor(struct x86_emulate_ctxt *ctxt) in em_fxrstor()
4133 static int check_cr_read(struct x86_emulate_ctxt *ctxt) in check_cr_read()
4141 static int check_cr_write(struct x86_emulate_ctxt *ctxt) in check_cr_write()
4215 static int check_dr7_gd(struct x86_emulate_ctxt *ctxt) in check_dr7_gd()
4225 static int check_dr_read(struct x86_emulate_ctxt *ctxt) in check_dr_read()
4250 static int check_dr_write(struct x86_emulate_ctxt *ctxt) in check_dr_write()
4261 static int check_svme(struct x86_emulate_ctxt *ctxt) in check_svme()
4273 static int check_svme_pa(struct x86_emulate_ctxt *ctxt) in check_svme_pa()
4284 static int check_rdtsc(struct x86_emulate_ctxt *ctxt) in check_rdtsc()
4294 static int check_rdpmc(struct x86_emulate_ctxt *ctxt) in check_rdpmc()
4313 static int check_perm_in(struct x86_emulate_ctxt *ctxt) in check_perm_in()
4322 static int check_perm_out(struct x86_emulate_ctxt *ctxt) in check_perm_out()
4871 static unsigned imm_size(struct x86_emulate_ctxt *ctxt) in imm_size()
4881 static int decode_imm(struct x86_emulate_ctxt *ctxt, struct operand *op, in decode_imm()
4921 static int decode_operand(struct x86_emulate_ctxt *ctxt, struct operand *op, in decode_operand()
5087 int x86_decode_insn(struct x86_emulate_ctxt *ctxt, void *insn, int insn_len) in x86_decode_insn()
5363 bool x86_page_table_writing_insn(struct x86_emulate_ctxt *ctxt) in x86_page_table_writing_insn()
5368 static bool string_insn_completed(struct x86_emulate_ctxt *ctxt) in string_insn_completed()
5388 static int flush_pending_x87_faults(struct x86_emulate_ctxt *ctxt) in flush_pending_x87_faults()
5400 static void fetch_possible_mmx_operand(struct x86_emulate_ctxt *ctxt, in fetch_possible_mmx_operand()
5407 static int fastop(struct x86_emulate_ctxt *ctxt, void (*fop)(struct fastop *)) in fastop()
5425 void init_decode_cache(struct x86_emulate_ctxt *ctxt) in init_decode_cache()
5435 int x86_emulate_insn(struct x86_emulate_ctxt *ctxt) in x86_emulate_insn()
5789 void emulator_invalidate_register_cache(struct x86_emulate_ctxt *ctxt) in emulator_invalidate_register_cache()
5794 void emulator_writeback_register_cache(struct x86_emulate_ctxt *ctxt) in emulator_writeback_register_cache()
5799 bool emulator_can_use_gpa(struct x86_emulate_ctxt *ctxt) in emulator_can_use_gpa()