Home | History | Annotate | Download | only in x86

Lines Matching full:r_dest

25 LIR* X86Mir2Lir::OpFpRegCopy(int r_dest, int r_src) {
28 DCHECK_EQ(X86_DOUBLEREG(r_dest), X86_DOUBLEREG(r_src));
29 if (X86_DOUBLEREG(r_dest)) {
32 if (X86_SINGLEREG(r_dest)) {
44 LIR* res = RawLIR(current_dalvik_offset_, opcode, r_dest, r_src);
45 if (r_dest == r_src) {
73 * 1) r_dest is freshly returned from AllocTemp or
76 LIR* X86Mir2Lir::LoadConstantNoClobber(int r_dest, int value) {
77 int r_dest_save = r_dest;
78 if (X86_FPREG(r_dest)) {
80 return NewLIR2(kX86XorpsRR, r_dest, r_dest);
82 DCHECK(X86_SINGLEREG(r_dest));
83 r_dest = AllocTemp();
88 res = NewLIR2(kX86Xor32RR, r_dest, r_dest);
91 res = NewLIR2(kX86Mov32RI, r_dest, value);
95 NewLIR2(kX86MovdxrRR, r_dest_save, r_dest);
96 FreeTemp(r_dest);
198 LIR* X86Mir2Lir::OpRegMem(OpKind op, int r_dest, int rBase,
218 return NewLIR3(opcode, r_dest, rBase, offset);
221 LIR* X86Mir2Lir::OpRegRegReg(OpKind op, int r_dest, int r_src1,
223 if (r_dest != r_src1 && r_dest != r_src2) {
226 OpRegCopy(r_dest, r_src1);
227 return OpRegImm(kOpLsl, r_dest, 1);
229 return NewLIR5(kX86Lea32RA, r_dest, r_src1 /* base */,
232 return NewLIR5(kX86Lea32RA, r_dest, r_src2 /* base */,
236 OpRegCopy(r_dest, r_src1);
237 return OpRegReg(op, r_dest, r_src2);
239 } else if (r_dest == r_src1) {
240 return OpRegReg(op, r_dest, r_src2);
241 } else { // r_dest == r_src2
244 OpReg(kOpNeg, r_dest);
252 LIR* res = OpRegCopy(r_dest, t_reg);
265 return OpRegReg(op, r_dest, r_src1);
269 LIR* X86Mir2Lir::OpRegRegImm(OpKind op, int r_dest, int r_src,
273 return NewLIR3(opcode, r_dest, r_src, value);
276 return NewLIR2(kX86Movzx8RR, r_dest, r_src);
278 return NewLIR2(kX86Movzx16RR, r_dest, r_src);
281 if (r_dest != r_src) {
284 return NewLIR5(kX86Lea32RA, r_dest, r5sib_no_base /* base */,
287 return NewLIR5(kX86Lea32RA, r_dest, r_src /* base */,
290 OpRegCopy(r_dest, r_src);
292 return OpRegImm(op, r_dest, value);
345 int displacement, int r_dest, int r_dest_hi, OpSize size,
357 if (X86_FPREG(r_dest)) {
359 if (X86_SINGLEREG(r_dest)) {
361 DCHECK_EQ(r_dest, (r_dest_hi - 1));
362 r_dest = S2d(r_dest, r_dest_hi);
364 r_dest_hi = r_dest + 1;
375 if (X86_FPREG(r_dest)) {
377 DCHECK(X86_SINGLEREG(r_dest));
401 load = NewLIR3(opcode, r_dest, rBase, displacement + LOWORD_OFFSET);
403 if (rBase == r_dest) {
406 load = NewLIR3(opcode, r_dest, rBase, displacement + LOWORD_OFFSET);
408 load = NewLIR3(opcode, r_dest, rBase, displacement + LOWORD_OFFSET);
423 load = NewLIR5(opcode, r_dest, rBase, r_index, scale,
426 if (rBase == r_dest) {
429 load = NewLIR5(opcode, r_dest, rBase, r_index, scale,
432 load = NewLIR5(opcode, r_dest, rBase, r_index, scale,
445 int r_index, int r_dest, int scale, OpSize size) {
447 r_dest, INVALID_REG, size, INVALID_SREG);
451 int r_dest, OpSize size, int s_reg) {
453 r_dest, INVALID_REG, size, s_reg);