Lines Matching refs:seg
544 static unsigned long seg_base(struct x86_emulate_ctxt *ctxt, int seg) in seg_base() argument
546 if (ctxt->mode == X86EMUL_MODE_PROT64 && seg < VCPU_SREG_FS) in seg_base()
549 return ctxt->ops->get_cached_segment_base(ctxt, seg); in seg_base()
597 static u16 get_segment_selector(struct x86_emulate_ctxt *ctxt, unsigned seg) in get_segment_selector() argument
602 ctxt->ops->get_segment(ctxt, &selector, &desc, NULL, seg); in get_segment_selector()
607 unsigned seg) in set_segment_selector() argument
613 ctxt->ops->get_segment(ctxt, &dummy, &desc, &base3, seg); in set_segment_selector()
614 ctxt->ops->set_segment(ctxt, selector, &desc, base3, seg); in set_segment_selector()
652 la = seg_base(ctxt, addr.seg) + addr.ea; in __linearize()
667 addr.seg); in __linearize()
699 if (addr.seg == VCPU_SREG_SS) in __linearize()
721 struct segmented_address addr = { .seg = VCPU_SREG_CS, in assign_eip()
792 struct segmented_address addr = { .seg = VCPU_SREG_CS, in __do_insn_fetch_bytes()
1537 u16 selector, int seg, u8 cpl, in __load_segment_descriptor() argument
1556 ctxt->ops->get_segment(ctxt, &dummy, &seg_desc, NULL, seg); in __load_segment_descriptor()
1559 } else if (seg <= VCPU_SREG_GS && ctxt->mode == X86EMUL_MODE_VM86) { in __load_segment_descriptor()
1573 if ((seg == VCPU_SREG_CS in __load_segment_descriptor()
1574 || (seg == VCPU_SREG_SS in __load_segment_descriptor()
1576 || seg == VCPU_SREG_TR) in __load_segment_descriptor()
1581 if (seg == VCPU_SREG_TR && (selector & (1 << 2))) in __load_segment_descriptor()
1596 if (seg <= VCPU_SREG_GS && !seg_desc.s) { in __load_segment_descriptor()
1603 err_vec = (seg == VCPU_SREG_SS) ? SS_VECTOR : NP_VECTOR; in __load_segment_descriptor()
1609 switch (seg) { in __load_segment_descriptor()
1689 ctxt->ops->set_segment(ctxt, selector, &seg_desc, base3, seg); in __load_segment_descriptor()
1698 u16 selector, int seg) in load_segment_descriptor() argument
1701 return __load_segment_descriptor(ctxt, selector, seg, cpl, in load_segment_descriptor()
1756 addr.seg = VCPU_SREG_SS; in push()
1775 addr.seg = VCPU_SREG_SS; in emulate_pop()
1870 int seg = ctxt->src2.val; in em_push_sreg() local
1872 ctxt->src.val = get_segment_selector(ctxt, seg); in em_push_sreg()
1883 int seg = ctxt->src2.val; in em_pop_sreg() local
1896 rc = load_segment_descriptor(ctxt, (u16)selector, seg); in em_pop_sreg()
2248 int seg = ctxt->src2.val; in em_lseg() local
2254 rc = load_segment_descriptor(ctxt, sel, seg); in em_lseg()
4663 op->addr.mem.seg = VCPU_SREG_ES; in decode_operand()
4717 op->addr.mem.seg = ctxt->seg_override; in decode_operand()
4728 op->addr.mem.seg = ctxt->seg_override; in decode_operand()
5015 ctxt->memop.addr.mem.seg = ctxt->seg_override; in x86_decode_insn()