Lines Matching refs:source

1067 void CodeGeneratorARM::Move32(Location destination, Location source) {
1068 if (source.Equals(destination)) {
1072 if (source.IsRegister()) {
1073 __ Mov(destination.AsRegister<Register>(), source.AsRegister<Register>());
1074 } else if (source.IsFpuRegister()) {
1075 __ vmovrs(destination.AsRegister<Register>(), source.AsFpuRegister<SRegister>());
1077 __ LoadFromOffset(kLoadWord, destination.AsRegister<Register>(), SP, source.GetStackIndex());
1080 if (source.IsRegister()) {
1081 __ vmovsr(destination.AsFpuRegister<SRegister>(), source.AsRegister<Register>());
1082 } else if (source.IsFpuRegister()) {
1083 __ vmovs(destination.AsFpuRegister<SRegister>(), source.AsFpuRegister<SRegister>());
1085 __ LoadSFromOffset(destination.AsFpuRegister<SRegister>(), SP, source.GetStackIndex());
1089 if (source.IsRegister()) {
1090 __ StoreToOffset(kStoreWord, source.AsRegister<Register>(), SP, destination.GetStackIndex());
1091 } else if (source.IsFpuRegister()) {
1092 __ StoreSToOffset(source.AsFpuRegister<SRegister>(), SP, destination.GetStackIndex());
1094 DCHECK(source.IsStackSlot()) << source;
1095 __ LoadFromOffset(kLoadWord, IP, SP, source.GetStackIndex());
1101 void CodeGeneratorARM::Move64(Location destination, Location source) {
1102 if (source.Equals(destination)) {
1106 if (source.IsRegisterPair()) {
1108 Location::RegisterLocation(source.AsRegisterPairHigh<Register>()),
1111 Location::RegisterLocation(source.AsRegisterPairLow<Register>()),
1114 } else if (source.IsFpuRegister()) {
1116 } else if (source.IsFpuRegisterPair()) {
1119 FromLowSToD(source.AsFpuRegisterPairLow<SRegister>()));
1121 DCHECK(source.IsDoubleStackSlot());
1124 SP, source.GetStackIndex());
1127 if (source.IsDoubleStackSlot()) {
1130 source.GetStackIndex());
1131 } else if (source.IsRegisterPair()) {
1133 source.AsRegisterPairLow<Register>(),
1134 source.AsRegisterPairHigh<Register>());
1140 if (source.IsRegisterPair()) {
1142 if (source.AsRegisterPairLow<Register>() == R1) {
1143 DCHECK_EQ(source.AsRegisterPairHigh<Register>(), R2);
1147 __ StoreToOffset(kStoreWordPair, source.AsRegisterPairLow<Register>(),
1150 } else if (source.IsFpuRegisterPair()) {
1151 __ StoreDToOffset(FromLowSToD(source.AsFpuRegisterPairLow<SRegister>()),
1155 DCHECK(source.IsDoubleStackSlot());
1157 Location::StackSlot(source.GetStackIndex()),
1160 Location::StackSlot(source.GetHighStackIndex(kArmWordSize)),
4522 Register source = value;
4529 __ StoreToOffset(kStoreWord, source, array, offset);
4533 __ StoreToOffset(kStoreWord, source, IP, data_offset);
4637 source = temp1;
4643 __ StoreToOffset(kStoreWord, source, array, offset);
4647 __ StoreToOffset(kStoreWord, source, IP, data_offset);
4853 Location source = move->GetSource();
4856 if (source.IsRegister()) {
4858 __ Mov(destination.AsRegister<Register>(), source.AsRegister<Register>());
4860 __ vmovsr(destination.AsFpuRegister<SRegister>(), source.AsRegister<Register>());
4863 __ StoreToOffset(kStoreWord, source.AsRegister<Register>(),
4866 } else if (source.IsStackSlot()) {
4869 SP, source.GetStackIndex());
4871 __ LoadSFromOffset(destination.AsFpuRegister<SRegister>(), SP, source.GetStackIndex());
4874 __ LoadFromOffset(kLoadWord, IP, SP, source.GetStackIndex());
4877 } else if (source.IsFpuRegister()) {
4879 __ vmovrs(destination.AsRegister<Register>(), source.AsFpuRegister<SRegister>());
4881 __ vmovs(destination.AsFpuRegister<SRegister>(), source.AsFpuRegister<SRegister>());
4884 __ StoreSToOffset(source.AsFpuRegister<SRegister>(), SP, destination.GetStackIndex());
4886 } else if (source.IsDoubleStackSlot()) {
4888 __ LoadDFromOffset(DTMP, SP, source.GetStackIndex());
4893 kLoadWordPair, destination.AsRegisterPairLow<Register>(), SP, source.GetStackIndex());
4898 source.GetStackIndex());
4900 } else if (source.IsRegisterPair()) {
4902 __ Mov(destination.AsRegisterPairLow<Register>(), source.AsRegisterPairLow<Register>());
4903 __ Mov(destination.AsRegisterPairHigh<Register>(), source.AsRegisterPairHigh<Register>());
4906 source.AsRegisterPairLow<Register>(),
4907 source.AsRegisterPairHigh<Register>());
4910 DCHECK(ExpectedPairLayout(source));
4912 kStoreWordPair, source.AsRegisterPairLow<Register>(), SP, destination.GetStackIndex());
4914 } else if (source.IsFpuRegisterPair()) {
4918 FromLowSToD(source.AsFpuRegisterPairLow<SRegister>()));
4921 FromLowSToD(source.AsFpuRegisterPairLow<SRegister>()));
4924 __ StoreDToOffset(FromLowSToD(source.AsFpuRegisterPairLow<SRegister>()),
4929 DCHECK(source.IsConstant()) << source;
4930 HConstant* constant = source.GetConstant();
4997 Location source = move->GetSource();
5000 if (source.IsRegister() && destination.IsRegister()) {
5001 DCHECK_NE(source.AsRegister<Register>(), IP);
5003 __ Mov(IP, source.AsRegister<Register>());
5004 __ Mov(source.AsRegister<Register>(), destination.AsRegister<Register>());
5006 } else if (source.IsRegister() && destination.IsStackSlot()) {
5007 Exchange(source.AsRegister<Register>(), destination.GetStackIndex());
5008 } else if (source.IsStackSlot() && destination.IsRegister()) {
5009 Exchange(destination.AsRegister<Register>(), source.GetStackIndex());
5010 } else if (source.IsStackSlot() && destination.IsStackSlot()) {
5011 Exchange(source.GetStackIndex(), destination.GetStackIndex());
5012 } else if (source.IsFpuRegister() && destination.IsFpuRegister()) {
5013 __ vmovrs(IP, source.AsFpuRegister<SRegister>());
5014 __ vmovs(source.AsFpuRegister<SRegister>(), destination.AsFpuRegister<SRegister>());
5016 } else if (source.IsRegisterPair() && destination.IsRegisterPair()) {
5017 __ vmovdrr(DTMP, source.AsRegisterPairLow<Register>(), source.AsRegisterPairHigh<Register>());
5018 __ Mov(source.AsRegisterPairLow<Register>(), destination.AsRegisterPairLow<Register>());
5019 __ Mov(source.AsRegisterPairHigh<Register>(), destination.AsRegisterPairHigh<Register>());
5023 } else if (source.IsRegisterPair() || destination.IsRegisterPair()) {
5024 Register low_reg = source.IsRegisterPair()
5025 ? source.AsRegisterPairLow<Register>()
5027 int mem = source.IsRegisterPair()
5029 : source.GetStackIndex();
5030 DCHECK(ExpectedPairLayout(source.IsRegisterPair() ? source : destination));
5034 } else if (source.IsFpuRegisterPair() && destination.IsFpuRegisterPair()) {
5035 DRegister first = FromLowSToD(source.AsFpuRegisterPairLow<SRegister>());
5040 } else if (source.IsFpuRegisterPair() || destination.IsFpuRegisterPair()) {
5041 DRegister reg = source.IsFpuRegisterPair()
5042 ? FromLowSToD(source.AsFpuRegisterPairLow<SRegister>())
5044 int mem = source.IsFpuRegisterPair()
5046 : source.GetStackIndex();
5050 } else if (source.IsFpuRegister() || destination.IsFpuRegister()) {
5051 SRegister reg = source.IsFpuRegister() ? source.AsFpuRegister<SRegister>()
5053 int mem = source.IsFpuRegister()
5055 : source.GetStackIndex();
5060 } else if (source.IsDoubleStackSlot() && destination.IsDoubleStackSlot()) {
5061 Exchange(source.GetStackIndex(), destination.GetStackIndex());
5062 Exchange(source.GetHighStackIndex(kArmWordSize), destination.GetHighStackIndex(kArmWordSize));
5064 LOG(FATAL) << "Unimplemented" << source << " <-> " << destination;