Home | History | Annotate | Download | only in arm

Lines Matching refs:rl_src

116 void ArmMir2Lir::GenConversion(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src) {
141 rl_src = LoadValueWide(rl_src, kFPReg);
142 RegisterInfo* info = GetRegInfo(rl_src.reg);
161 GenConversionCall(kQuickF2l, rl_dest, rl_src);
164 rl_src = LoadValueWide(rl_src, kFPReg);
165 RegisterInfo* info = GetRegInfo(rl_src.reg);
191 GenConversionCall(kQuickD2l, rl_dest, rl_src);
196 if (rl_src.wide) {
197 rl_src = LoadValueWide(rl_src, kFPReg);
198 src_reg = rl_src.reg.GetReg();
200 rl_src = LoadValue(rl_src, kFPReg);
201 src_reg = rl_src.reg.GetReg();
323 void ArmMir2Lir::GenNegFloat(RegLocation rl_dest, RegLocation rl_src) {
325 rl_src = LoadValue(rl_src, kFPReg);
327 NewLIR2(kThumb2Vnegs, rl_result.reg.GetReg(), rl_src.reg.GetReg());
331 void ArmMir2Lir::GenNegDouble(RegLocation rl_dest, RegLocation rl_src) {
333 rl_src = LoadValueWide(rl_src, kFPReg);
335 NewLIR2(kThumb2Vnegd, rl_result.reg.GetReg(), rl_src.reg.GetReg());
339 static RegisterClass RegClassForAbsFP(RegLocation rl_src, RegLocation rl_dest) {
341 if ((rl_src.location == kLocPhysReg && !rl_src.reg.IsFloat()) ||
346 if (rl_src.location == kLocPhysReg || rl_dest.location == kLocPhysReg) {
362 RegLocation rl_src = UpdateLoc(info->args[0]);
363 RegisterClass reg_class = RegClassForAbsFP(rl_src, rl_dest);
364 rl_src = LoadValue(rl_src, reg_class);
367 NewLIR2(kThumb2Vabss, rl_result.reg.GetReg(), rl_src.reg.GetReg());
369 OpRegRegImm(kOpAnd, rl_result.reg, rl_src.reg, 0x7fffffff);
380 RegLocation rl_src = UpdateLocWide(info->args[0]);
381 RegisterClass reg_class = RegClassForAbsFP(rl_src, rl_dest);
382 rl_src = LoadValueWide(rl_src, reg_class);
385 NewLIR2(kThumb2Vabsd, rl_result.reg.GetReg(), rl_src.reg.GetReg());
386 } else if (rl_result.reg.GetLow().GetReg() != rl_src.reg.GetHigh().GetReg()) {
388 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetLow());
389 OpRegRegImm(kOpAnd, rl_result.reg.GetHigh(), rl_src.reg.GetHigh(), 0x7fffffff);
393 OpRegCopy(rs_tmp, rl_src.reg.GetHigh());
394 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetLow());
404 RegLocation rl_src = info->args[0];
406 rl_src = LoadValueWide(rl_src, kFPReg);
408 NewLIR2(kThumb2Vsqrtd, rl_result.reg.GetReg(), rl_src.reg.GetReg());