Lines Matching refs:sreg

1113         struct segment_register sreg;  in put_fpu()  local
1116 ops->read_segment(x86_seg_cs, &sreg, ctxt) == X86EMUL_OKAY ) in put_fpu()
1117 aux.cs = sreg.sel; in put_fpu()
1122 ops->read_segment(state->ea.mem.seg, &sreg, in put_fpu()
1124 aux.ds = sreg.sel; in put_fpu()
1656 struct segment_register *sreg, in realmode_load_seg() argument
1665 if ( (rc = ops->read_segment(seg, sreg, ctxt)) == X86EMUL_OKAY ) in realmode_load_seg()
1667 sreg->sel = sel; in realmode_load_seg()
1668 sreg->base = (uint32_t)sel << 4; in realmode_load_seg()
1683 struct segment_register *sreg, in protmode_load_seg() argument
1712 ops->read_segment(seg, sreg, ctxt) != X86EMUL_OKAY ) in protmode_load_seg()
1713 memset(sreg, 0, sizeof(*sreg)); in protmode_load_seg()
1715 sreg->attr = 0; in protmode_load_seg()
1716 sreg->sel = sel; in protmode_load_seg()
1720 sreg->dpl = sel; in protmode_load_seg()
1891 sreg->base = (((uint64_t)desc_hi.a << 32) | in protmode_load_seg()
1895 sreg->attr = (((desc.b >> 8) & 0x00ffu) | in protmode_load_seg()
1897 sreg->limit = (desc.b & 0x000f0000u) | (desc.a & 0x0000ffffu); in protmode_load_seg()
1898 if ( sreg->g ) in protmode_load_seg()
1899 sreg->limit = (sreg->limit << 12) | 0xfffu; in protmode_load_seg()
1900 sreg->sel = sel; in protmode_load_seg()
1914 struct segment_register *sreg, in load_seg() argument
1924 if ( !sreg ) in load_seg()
1925 sreg = &reg; in load_seg()
1928 rc = protmode_load_seg(seg, sel, is_ret, sreg, ctxt, ops); in load_seg()
1930 rc = realmode_load_seg(seg, sel, sreg, ctxt, ops); in load_seg()
1932 if ( !rc && sreg == &reg ) in load_seg()
1933 rc = ops->write_segment(seg, sreg, ctxt); in load_seg()
3212 struct segment_register cs, sreg; in x86_emulate() local
3259 if ( (rc = ops->read_segment((b >> 3) & 7, &sreg, in x86_emulate()
3262 src.val = sreg.sel; in x86_emulate()
3603 if ( (rc = ops->read_segment(seg, &sreg, ctxt)) != 0 ) in x86_emulate()
3605 dst.val = sreg.sel; in x86_emulate()
3675 if ( (rc = ops->read_segment(x86_seg_cs, &sreg, ctxt)) || in x86_emulate()
3678 src.val = sreg.sel, in x86_emulate()
4989 &sreg, ctxt, ops) ) in x86_emulate()
4992 if ( sreg.s && in x86_emulate()
4993 ((modrm_reg & 1) ? ((sreg.type & 0xa) == 0x2) in x86_emulate()
4994 : ((sreg.type & 0xa) != 0x8)) ) in x86_emulate()
5135 if ( (rc = ops->read_segment(seg, &sreg, ctxt)) ) in x86_emulate()
5141 sreg.base &= 0xffffff; in x86_emulate()
5144 if ( (rc = ops->write(ea.mem.seg, ea.mem.off, &sreg.limit, in x86_emulate()
5147 &sreg.base, op_bytes, ctxt)) != X86EMUL_OKAY ) in x86_emulate()
5156 memset(&sreg, 0, sizeof(sreg)); in x86_emulate()
5163 sreg.base = base; in x86_emulate()
5164 sreg.limit = limit; in x86_emulate()
5166 sreg.base &= 0xffffff; in x86_emulate()
5167 if ( (rc = ops->write_segment(seg, &sreg, ctxt)) ) in x86_emulate()
5225 switch ( rc = protmode_load_seg(x86_seg_none, src.val, false, &sreg, in x86_emulate()
5229 if ( !sreg.s ) in x86_emulate()
5231 switch ( sreg.type ) in x86_emulate()
5263 dst.val = ((sreg.attr & 0xff) << 8) | in x86_emulate()
5264 ((sreg.limit >> (sreg.g ? 12 : 0)) & 0xf0000) | in x86_emulate()
5265 ((sreg.attr & 0xf00) << 12); in x86_emulate()
5273 switch ( rc = protmode_load_seg(x86_seg_none, src.val, false, &sreg, in x86_emulate()
5277 if ( !sreg.s ) in x86_emulate()
5279 switch ( sreg.type ) in x86_emulate()
5308 dst.val = sreg.limit; in x86_emulate()
5326 sreg.sel = cs.sel + 8; in x86_emulate()
5328 cs.base = sreg.base = 0; /* flat segment */ in x86_emulate()
5329 cs.limit = sreg.limit = ~0u; /* 4GB limit */ in x86_emulate()
5330 sreg.attr = 0xc93; /* G+DB+P+S+Data */ in x86_emulate()
5362 (rc = ops->write_segment(x86_seg_ss, &sreg, ctxt)) ) in x86_emulate()
5782 sreg.sel = cs.sel + 8; in x86_emulate()
5783 sreg.base = 0; /* flat segment */ in x86_emulate()
5784 sreg.limit = ~0u; /* 4GB limit */ in x86_emulate()
5785 sreg.attr = 0xc93; /* G+DB+P+S+Data */ in x86_emulate()
5789 (rc = ops->write_segment(x86_seg_ss, &sreg, ctxt)) != 0 ) in x86_emulate()
5828 sreg.sel = cs.sel + 8; in x86_emulate()
5829 sreg.base = 0; /* flat segment */ in x86_emulate()
5830 sreg.limit = ~0u; /* 4GB limit */ in x86_emulate()
5831 sreg.attr = 0xcf3; /* G+DB+P+DPL3+S+Data */ in x86_emulate()
5835 (rc = ops->write_segment(x86_seg_ss, &sreg, ctxt)) != 0 ) in x86_emulate()
6561 if ( (rc = ops->read_segment(seg, &sreg, ctxt)) != X86EMUL_OKAY ) in x86_emulate()
6569 dst.val = sreg.base; in x86_emulate()
6576 sreg.base = *dst.reg; in x86_emulate()
6577 generate_exception_if(!is_canonical_address(sreg.base), in x86_emulate()
6581 sreg.base = (uint32_t)*dst.reg; in x86_emulate()
6583 if ( (rc = ops->write_segment(seg, &sreg, ctxt)) != X86EMUL_OKAY ) in x86_emulate()