Home | History | Annotate | Download | only in optimizing

Lines Matching defs:source

2  * Copyright (C) 2014 The Android Open Source Project
332 Location source = instruction_->IsLoadClass() ? out : locations->InAt(0);
334 source,
1313 Location source,
1315 if (source.Equals(destination)) {
1319 // A valid move can always be inferred from the destination and source
1327 HConstant* src_cst = source.IsConstant() ? source.GetConstant() : nullptr;
1328 if (source.IsStackSlot() ||
1335 // If the source is a double stack slot or a 64bit constant, a 64bit
1336 // type is appropriate. Else the source is a register, and since the
1345 if (source.IsStackSlot() || source.IsDoubleStackSlot()) {
1346 DCHECK(dst.Is64Bits() == source.IsDoubleStackSlot());
1347 __ Ldr(dst, StackOperandFrom(source));
1348 } else if (source.IsSIMDStackSlot()) {
1349 __ Ldr(QRegisterFrom(destination), StackOperandFrom(source));
1350 } else if (source.IsConstant()) {
1351 DCHECK(CoherentConstantAndType(source, dst_type));
1352 MoveConstant(dst, source.GetConstant());
1353 } else if (source.IsRegister()) {
1355 __ Mov(Register(dst), RegisterFrom(source, dst_type));
1361 __ Fmov(FPRegisterFrom(destination, dst_type), RegisterFrom(source, source_type));
1364 DCHECK(source.IsFpuRegister());
1369 __ Fmov(RegisterFrom(destination, dst_type), FPRegisterFrom(source, source_type));
1373 __ Mov(QRegisterFrom(destination), QRegisterFrom(source));
1375 __ Fmov(FPRegister(dst), FPRegisterFrom(source, dst_type));
1380 if (source.IsFpuRegister()) {
1381 __ Str(QRegisterFrom(source), StackOperandFrom(destination));
1383 DCHECK(source.IsSIMDStackSlot());
1387 __ Ldr(temp, MemOperand(sp, source.GetStackIndex()));
1389 __ Ldr(temp, MemOperand(sp, source.GetStackIndex() + kArm64WordSize));
1393 __ Ldr(temp, StackOperandFrom(source));
1399 if (source.IsRegister() || source.IsFpuRegister()) {
1401 if (source.IsRegister()) {
1409 (source.IsFpuRegister() == DataType::IsFloatingPointType(dst_type)));
1410 __ Str(CPURegisterFrom(source, dst_type), StackOperandFrom(destination));
1411 } else if (source.IsConstant()) {
1412 DCHECK(unspecified_type || CoherentConstantAndType(source, dst_type))
1413 << source << " " << dst_type;
1415 HConstant* src_cst = source.GetConstant();
1436 DCHECK(source.IsStackSlot() || source.IsDoubleStackSlot());
1437 DCHECK(source.IsDoubleStackSlot() == destination.IsDoubleStackSlot());
1458 __ Ldr(temp, StackOperandFrom(source));
1936 CPURegister source = value;
1950 source = temp;
1955 instruction, field_type, source, HeapOperand(obj, offset), /* needs_null_check= */ true);
1959 codegen_->Store(field_type, source, HeapOperand(obj, offset));
2387 MemOperand source = HeapOperand(obj);
2423 source = HeapOperand(obj, offset);
2452 source = HeapOperand(temp, XRegisterFrom(index), LSL, DataType::SizeShift(type));
2458 codegen_->Load(type, OutputCPURegister(instruction), source);
2526 CPURegister source = value;
2656 source = temp2;
2664 // and the poisoned `source` could be using the other scratch register.
2670 __ Str(source, destination);
5556 Register source = InputRegisterAt(conversion, 0);
5565 __ Mov(output.W(), source.W());
5568 __ Ubfx(output, output.IsX() ? source.X() : source.W(), 0, result_size * kBitsPerByte);
5570 __ Sbfx(output, output.IsX() ? source.X() : source.W(), 0, min_size * kBitsPerByte);