Lines Matching defs:addr
688 struct segmented_address addr,
700 la = seg_base(ctxt, addr.seg) + addr.ea;
716 addr.seg);
729 if (addr.ea <= lim)
733 if (addr.ea > lim)
738 *max_size = (u64)lim + 1 - addr.ea;
748 if (addr.seg == VCPU_SREG_SS)
755 struct segmented_address addr,
760 return __linearize(ctxt, addr, &max_size, size, write, false,
769 struct segmented_address addr = { .seg = VCPU_SREG_CS,
773 addr.ea = dst & ((1UL << (ctxt->op_bytes << 3)) - 1);
774 rc = __linearize(ctxt, addr, &max_size, 1, false, true, ctxt->mode, &linear);
776 ctxt->_eip = addr.ea;
860 struct segmented_address addr,
867 rc = linearize(ctxt, addr, size, false, &linear);
874 struct segmented_address addr,
881 rc = linearize(ctxt, addr, size, true, &linear);
897 struct segmented_address addr = { .seg = VCPU_SREG_CS,
910 rc = __linearize(ctxt, addr, &max_size, 0, false, true, ctxt->mode,
988 struct segmented_address addr,
996 rc = segmented_read_std(ctxt, addr, size, 2);
999 addr.ea += 2;
1000 rc = segmented_read_std(ctxt, addr, address, op_bytes);
1079 op->val = *(u8 *)op->addr.reg;
1082 op->val = *(u16 *)op->addr.reg;
1085 op->val = *(u32 *)op->addr.reg;
1088 op->val = *(u64 *)op->addr.reg;
1149 op->addr.xmm = reg;
1157 op->addr.mm = reg;
1163 op->addr.reg = decode_register(ctxt, reg, ctxt->d & ByteOp);
1195 op->addr.reg = decode_register(ctxt, ctxt->modrm_rm,
1200 op->addr.xmm = ctxt->modrm_rm;
1207 op->addr.mm = ctxt->modrm_rm & 7;
1304 op->addr.mem.ea = modrm_ea;
1306 ctxt->memop.addr.mem.ea = (u32)ctxt->memop.addr.mem.ea;
1320 op->addr.mem.ea = insn_fetch(u16, ctxt);
1323 op->addr.mem.ea = insn_fetch(u32, ctxt);
1326 op->addr.mem.ea = insn_fetch(u64, ctxt);
1347 ctxt->dst.addr.mem.ea = address_mask(ctxt,
1348 ctxt->dst.addr.mem.ea + (sv >> 3));
1356 unsigned long addr, void *dest, unsigned size)
1367 rc = ctxt->ops->read_emulated(ctxt, addr, mc->data + mc->end, size,
1381 struct segmented_address addr,
1388 rc = linearize(ctxt, addr, size, false, &linear);
1395 struct segmented_address addr,
1402 rc = linearize(ctxt, addr, size, true, &linear);
1410 struct segmented_address addr,
1417 rc = linearize(ctxt, addr, size, true, &linear);
1463 ulong addr;
1470 addr = dt.address + index * 8;
1471 return linear_read_system(ctxt, addr, desc, sizeof(*desc));
1500 ulong addr;
1507 addr = dt.address + index * 8;
1510 if (addr >> 32 != 0) {
1515 addr &= (u32)-1;
1519 *desc_addr_p = addr;
1542 ulong addr;
1544 rc = get_descriptor_ptr(ctxt, selector, &addr);
1548 return linear_write_system(ctxt, addr, desc, sizeof(*desc));
1781 return assign_register(op->addr.reg, op->val, op->bytes);
1793 op->addr.mem,
1799 op->addr.mem,
1804 op->addr.mem,
1808 kvm_write_sse_reg(op->addr.xmm, &op->vec_val);
1811 kvm_write_mmx_reg(op->addr.mm, &op->mm_val);
1824 struct segmented_address addr;
1827 addr.ea = reg_read(ctxt, VCPU_REGS_RSP) & stack_mask(ctxt);
1828 addr.seg = VCPU_SREG_SS;
1830 return segmented_write(ctxt, addr, data, bytes);
1844 struct segmented_address addr;
1846 addr.ea = reg_read(ctxt, VCPU_REGS_RSP) & stack_mask(ctxt);
1847 addr.seg = VCPU_SREG_SS;
1848 rc = segmented_read(ctxt, addr, dest, len);
1906 ctxt->dst.addr.reg = &ctxt->eflags;
2293 ctxt->src.addr.reg = reg_rmw(ctxt, VCPU_REGS_RAX);
3046 op->addr.mem.ea = register_address(ctxt, reg);
3220 ctxt->dst.addr.reg = reg_rmw(ctxt, VCPU_REGS_RDX);
3443 rc = linearize(ctxt, ctxt->src.addr.mem, 1, false, &linear);
3494 return segmented_write_std(ctxt, ctxt->dst.addr.mem,
3515 rc = read_descriptor(ctxt, ctxt->src.addr.mem,
3768 return segmented_write_std(ctxt, ctxt->memop.addr.mem, &fx_state,
3803 rc = segmented_read_std(ctxt, ctxt->memop.addr.mem, &fx_state, size);
4561 op->addr.mem.ea = ctxt->_eip;
4621 op->addr.reg = reg_rmw(ctxt, VCPU_REGS_RAX);
4628 op->addr.reg = reg_rmw(ctxt, VCPU_REGS_RAX);
4639 op->addr.reg = reg_rmw(ctxt, VCPU_REGS_RDX);
4646 op->addr.mem.ea =
4648 op->addr.mem.seg = VCPU_SREG_ES;
4655 op->addr.reg = reg_rmw(ctxt, VCPU_REGS_RDX);
4680 ctxt->memop.addr.reg = decode_register(ctxt,
4700 op->addr.mem.ea =
4702 op->addr.mem.seg = ctxt->seg_override;
4709 op->addr.mem.ea =
4713 op->addr.mem.seg = ctxt->seg_override;
4718 op->addr.mem.ea = ctxt->_eip;
5028 ctxt->memop.addr.mem.seg = ctxt->seg_override;
5050 ctxt->memopp->addr.mem.ea = address_mask(ctxt,
5051 ctxt->memopp->addr.mem.ea + ctxt->_eip);
5101 kvm_read_mmx_reg(op->addr.mm, &op->mm_val);
5238 rc = segmented_read(ctxt, ctxt->src.addr.mem,
5246 rc = segmented_read(ctxt, ctxt->src2.addr.mem,
5258 rc = segmented_read(ctxt, ctxt->dst.addr.mem,
5306 ctxt->dst.val = ctxt->src.addr.mem.ea;
5309 if (ctxt->dst.addr.reg == reg_rmw(ctxt, VCPU_REGS_RAX))