Lines Matching defs:src

171 #define SrcWrite    ((u64)1 << 46)  /* Write back src operand */
278 * src: rdx (in/out)
365 #define FOP2E(op, dst, src) \
366 __FOP_FUNC(#op "_" #dst "_" #src) \
367 #op " %" #src ", %" #dst " \n\t" \
368 __FOP_RET(#op "_" #dst "_" #src)
387 /* 2 operand, src is CL */
396 /* 2 operand, src and dest are reversed */
405 #define FOP3E(op, dst, src, src2) \
406 __FOP_FUNC(#op "_" #dst "_" #src "_" #src2) \
407 #op " %" #src2 ", %" #src ", %" #dst " \n\t"\
408 __FOP_RET(#op "_" #dst "_" #src "_" #src2)
476 .src_val = ctxt->src.val64,
478 .src_bytes = ctxt->src.bytes,
487 static void assign_masked(ulong *dest, ulong src, ulong mask)
489 *dest = (*dest & ~mask) | (src & mask);
1050 /* If src is zero, do not writeback, but update flags */
1051 if (ctxt->src.val == 0)
1058 /* If src is zero, do not writeback, but update flags */
1059 if (ctxt->src.val == 0)
1337 if (ctxt->dst.type == OP_MEM && ctxt->src.type == OP_REG) {
1340 if (ctxt->src.bytes == 2)
1341 sv = (s16)ctxt->src.val & (s16)mask;
1342 else if (ctxt->src.bytes == 4)
1343 sv = (s32)ctxt->src.val & (s32)mask;
1345 sv = (s64)ctxt->src.val & (s64)mask;
1352 ctxt->src.val &= (ctxt->dst.bytes << 3) - 1;
1837 return push(ctxt, &ctxt->src.val, ctxt->op_bytes);
1914 unsigned frame_size = ctxt->src.val;
1944 ctxt->src.val = get_segment_selector(ctxt, seg);
1980 (ctxt->src.val = old_esp) : (ctxt->src.val = reg_read(ctxt, reg));
1994 ctxt->src.val = (unsigned long)ctxt->eflags & ~X86_EFLAGS_VM;
2029 ctxt->src.val = ctxt->eflags;
2036 ctxt->src.val = get_segment_selector(ctxt, VCPU_SREG_CS);
2041 ctxt->src.val = ctxt->_eip;
2172 memcpy(&sel, ctxt->src.valptr + ctxt->op_bytes, 2);
2180 rc = assign_eip_far(ctxt, ctxt->src.val);
2190 return assign_eip_near(ctxt, ctxt->src.val);
2199 rc = assign_eip_near(ctxt, ctxt->src.val);
2202 ctxt->src.val = old_eip;
2273 rsp_increment(ctxt, ctxt->src.val);
2282 ctxt->src.orig_val = ctxt->src.val;
2283 ctxt->src.val = ctxt->dst.orig_val;
2288 ctxt->src.type = OP_NONE;
2289 ctxt->dst.val = ctxt->src.orig_val;
2292 ctxt->src.type = OP_REG;
2293 ctxt->src.addr.reg = reg_rmw(ctxt, VCPU_REGS_RAX);
2294 ctxt->src.val = ctxt->dst.orig_val;
2307 memcpy(&sel, ctxt->src.valptr + ctxt->op_bytes, 2);
2313 ctxt->dst.val = ctxt->src.val;
3009 ctxt->src.val = (unsigned long) error_code;
3075 ctxt->src.type = OP_IMM;
3076 ctxt->src.val = 0;
3077 ctxt->src.bytes = 1;
3091 if (ctxt->src.val == 0)
3095 ah = al / ctxt->src.val;
3096 al %= ctxt->src.val;
3101 ctxt->src.type = OP_IMM;
3102 ctxt->src.val = 0;
3103 ctxt->src.bytes = 1;
3114 al = (al + (ah * ctxt->src.val)) & 0xff;
3119 ctxt->src.type = OP_IMM;
3120 ctxt->src.val = 0;
3121 ctxt->src.bytes = 1;
3130 long rel = ctxt->src.val;
3132 ctxt->src.val = (unsigned long)ctxt->_eip;
3152 memcpy(&sel, ctxt->src.valptr + ctxt->op_bytes, 2);
3158 rc = assign_eip_far(ctxt, ctxt->src.val);
3162 ctxt->src.val = old_cs;
3167 ctxt->src.val = old_eip;
3194 rsp_increment(ctxt, ctxt->src.val);
3201 ctxt->src.val = ctxt->dst.val;
3202 write_register_operand(&ctxt->src);
3205 ctxt->dst.val = ctxt->src.orig_val;
3219 ctxt->dst.bytes = ctxt->src.bytes;
3221 ctxt->dst.val = ~((ctxt->src.val >> (ctxt->src.bytes * 8 - 1)) - 1);
3261 memcpy(ctxt->dst.valptr, ctxt->src.valptr, sizeof(ctxt->src.valptr));
3282 tmp = (u16)ctxt->src.val;
3287 ctxt->dst.val = swab32((u32)ctxt->src.val);
3290 ctxt->dst.val = swab64(ctxt->src.val);
3303 if (ctxt->ops->set_cr(ctxt, cr_num, ctxt->src.val))
3327 val = ctxt->src.val & ~0ULL;
3329 val = ctxt->src.val & ~0U;
3397 u16 sel = ctxt->src.val;
3417 u16 sel = ctxt->src.val;
3431 u16 sel = ctxt->src.val;
3443 rc = linearize(ctxt, ctxt->src.addr.mem, 1, false, &linear);
3515 rc = read_descriptor(ctxt, ctxt->src.addr.mem,
3557 | (ctxt->src.val & 0x0f));
3569 rc = jmp_rel(ctxt, ctxt->src.val);
3579 rc = jmp_rel(ctxt, ctxt->src.val);
3586 if (!pio_in_emulated(ctxt, ctxt->dst.bytes, ctxt->src.val,
3595 ctxt->ops->pio_out_emulated(ctxt, ctxt->src.bytes, ctxt->dst.val,
3596 &ctxt->src.val, 1);
3691 ctxt->dst.val = (s32) ctxt->src.val;
3902 u64 new_val = ctxt->src.val64;
3971 if (!emulator_io_permitted(ctxt, ctxt->src.val, ctxt->dst.bytes))
3979 ctxt->src.bytes = min(ctxt->src.bytes, 4u);
3980 if (!emulator_io_permitted(ctxt, ctxt->dst.val, ctxt->src.bytes))
5034 rc = decode_operand(ctxt, &ctxt->src, (ctxt->d >> SrcShift) & OpMask);
5112 : "+a"(ctxt->dst.val), "+d"(ctxt->src.val), [flags]"+D"(flags),
5152 if ((ctxt->d & SrcMask) == SrcMemFAddr && ctxt->src.type != OP_MEM) {
5184 fetch_possible_mmx_operand(&ctxt->src);
5237 if ((ctxt->src.type == OP_MEM) && !(ctxt->d & NoAccess)) {
5238 rc = segmented_read(ctxt, ctxt->src.addr.mem,
5239 ctxt->src.valptr, ctxt->src.bytes);
5242 ctxt->src.orig_val64 = ctxt->src.val64;
5303 rc = jmp_rel(ctxt, ctxt->src.val);
5306 ctxt->dst.val = ctxt->src.addr.mem.ea;
5325 rc = emulate_int(ctxt, ctxt->src.val);
5333 rc = jmp_rel(ctxt, ctxt->src.val);
5364 BUG_ON(ctxt->src.type == OP_MEM || ctxt->src.type == OP_MEM_STR);
5365 rc = writeback(ctxt, &ctxt->src);
5382 string_addr_inc(ctxt, VCPU_REGS_RSI, &ctxt->src);
5391 count = ctxt->src.count;
5453 ctxt->dst.val = ctxt->src.val;
5459 rc = jmp_rel(ctxt, ctxt->src.val);
5466 ctxt->dst.val = (ctxt->src.bytes == 1) ? (u8) ctxt->src.val
5467 : (u16) ctxt->src.val;
5471 ctxt->dst.val = (ctxt->src.bytes == 1) ? (s8) ctxt->src.val :
5472 (s16) ctxt->src.val;