Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM. |
| 6 #if defined(TARGET_ARCH_ARM) | 6 #if defined(TARGET_ARCH_ARM) |
| 7 | 7 |
| 8 #include "vm/intermediate_language.h" | 8 #include "vm/intermediate_language.h" |
| 9 | 9 |
| 10 #include "lib/error.h" | 10 #include "lib/error.h" |
| (...skipping 2929 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2940 default: UNREACHABLE(); | 2940 default: UNREACHABLE(); |
| 2941 } | 2941 } |
| 2942 } | 2942 } |
| 2943 | 2943 |
| 2944 | 2944 |
| 2945 LocationSummary* Float32x4ShuffleInstr::MakeLocationSummary() const { | 2945 LocationSummary* Float32x4ShuffleInstr::MakeLocationSummary() const { |
| 2946 const intptr_t kNumInputs = 1; | 2946 const intptr_t kNumInputs = 1; |
| 2947 const intptr_t kNumTemps = 0; | 2947 const intptr_t kNumTemps = 0; |
| 2948 LocationSummary* summary = | 2948 LocationSummary* summary = |
| 2949 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); | 2949 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
| 2950 summary->set_in(0, Location::RequiresFpuRegister()); | 2950 summary->set_in(0, Location::FpuRegisterLocation(Q5)); |
|
regis
2013/07/23 17:38:04
Please, add a comment about which one of the instr
zra
2013/07/23 18:24:14
Done.
| |
| 2951 summary->set_out(Location::RequiresFpuRegister()); | 2951 summary->set_out(Location::FpuRegisterLocation(Q6)); |
| 2952 return summary; | 2952 return summary; |
| 2953 } | 2953 } |
| 2954 | 2954 |
| 2955 | 2955 |
| 2956 void Float32x4ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 2956 void Float32x4ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 2957 QRegister value = locs()->in(0).fpu_reg(); | 2957 QRegister value = locs()->in(0).fpu_reg(); |
| 2958 QRegister result = locs()->out().fpu_reg(); | 2958 QRegister result = locs()->out().fpu_reg(); |
| 2959 DRegister dresult0 = EvenDRegisterOf(result); | 2959 DRegister dresult0 = EvenDRegisterOf(result); |
| 2960 SRegister sresult0 = EvenSRegisterOf(dresult0); | 2960 SRegister sresult0 = EvenSRegisterOf(dresult0); |
| 2961 | 2961 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3002 | 3002 |
| 3003 LocationSummary* Float32x4ConstructorInstr::MakeLocationSummary() const { | 3003 LocationSummary* Float32x4ConstructorInstr::MakeLocationSummary() const { |
| 3004 const intptr_t kNumInputs = 4; | 3004 const intptr_t kNumInputs = 4; |
| 3005 const intptr_t kNumTemps = 0; | 3005 const intptr_t kNumTemps = 0; |
| 3006 LocationSummary* summary = | 3006 LocationSummary* summary = |
| 3007 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); | 3007 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
| 3008 summary->set_in(0, Location::RequiresFpuRegister()); | 3008 summary->set_in(0, Location::RequiresFpuRegister()); |
| 3009 summary->set_in(1, Location::RequiresFpuRegister()); | 3009 summary->set_in(1, Location::RequiresFpuRegister()); |
| 3010 summary->set_in(2, Location::RequiresFpuRegister()); | 3010 summary->set_in(2, Location::RequiresFpuRegister()); |
| 3011 summary->set_in(3, Location::RequiresFpuRegister()); | 3011 summary->set_in(3, Location::RequiresFpuRegister()); |
| 3012 summary->set_out(Location::RequiresFpuRegister()); | 3012 summary->set_out(Location::FpuRegisterLocation(Q6)); |
|
regis
2013/07/23 17:38:04
ditto
zra
2013/07/23 18:24:14
Done.
| |
| 3013 return summary; | 3013 return summary; |
| 3014 } | 3014 } |
| 3015 | 3015 |
| 3016 | 3016 |
| 3017 void Float32x4ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 3017 void Float32x4ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 3018 QRegister q0 = locs()->in(0).fpu_reg(); | 3018 QRegister q0 = locs()->in(0).fpu_reg(); |
| 3019 QRegister q1 = locs()->in(1).fpu_reg(); | 3019 QRegister q1 = locs()->in(1).fpu_reg(); |
| 3020 QRegister q2 = locs()->in(2).fpu_reg(); | 3020 QRegister q2 = locs()->in(2).fpu_reg(); |
| 3021 QRegister q3 = locs()->in(3).fpu_reg(); | 3021 QRegister q3 = locs()->in(3).fpu_reg(); |
| 3022 QRegister r = locs()->out().fpu_reg(); | 3022 QRegister r = locs()->out().fpu_reg(); |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3172 } | 3172 } |
| 3173 | 3173 |
| 3174 | 3174 |
| 3175 LocationSummary* Float32x4WithInstr::MakeLocationSummary() const { | 3175 LocationSummary* Float32x4WithInstr::MakeLocationSummary() const { |
| 3176 const intptr_t kNumInputs = 2; | 3176 const intptr_t kNumInputs = 2; |
| 3177 const intptr_t kNumTemps = 0; | 3177 const intptr_t kNumTemps = 0; |
| 3178 LocationSummary* summary = | 3178 LocationSummary* summary = |
| 3179 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); | 3179 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
| 3180 summary->set_in(0, Location::RequiresFpuRegister()); | 3180 summary->set_in(0, Location::RequiresFpuRegister()); |
| 3181 summary->set_in(1, Location::RequiresFpuRegister()); | 3181 summary->set_in(1, Location::RequiresFpuRegister()); |
| 3182 summary->set_out(Location::RequiresFpuRegister()); | 3182 summary->set_out(Location::FpuRegisterLocation(Q6)); |
|
regis
2013/07/23 17:38:04
ditto
zra
2013/07/23 18:24:14
Done.
| |
| 3183 return summary; | 3183 return summary; |
| 3184 } | 3184 } |
| 3185 | 3185 |
| 3186 | 3186 |
| 3187 void Float32x4WithInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 3187 void Float32x4WithInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 3188 QRegister replacement = locs()->in(0).fpu_reg(); | 3188 QRegister replacement = locs()->in(0).fpu_reg(); |
| 3189 QRegister value = locs()->in(1).fpu_reg(); | 3189 QRegister value = locs()->in(1).fpu_reg(); |
| 3190 QRegister result = locs()->out().fpu_reg(); | 3190 QRegister result = locs()->out().fpu_reg(); |
| 3191 | 3191 |
| 3192 DRegister dresult0 = EvenDRegisterOf(result); | 3192 DRegister dresult0 = EvenDRegisterOf(result); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3239 void Uint32x4BoolConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 3239 void Uint32x4BoolConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 3240 UNIMPLEMENTED(); | 3240 UNIMPLEMENTED(); |
| 3241 } | 3241 } |
| 3242 | 3242 |
| 3243 | 3243 |
| 3244 LocationSummary* Uint32x4GetFlagInstr::MakeLocationSummary() const { | 3244 LocationSummary* Uint32x4GetFlagInstr::MakeLocationSummary() const { |
| 3245 const intptr_t kNumInputs = 1; | 3245 const intptr_t kNumInputs = 1; |
| 3246 const intptr_t kNumTemps = 0; | 3246 const intptr_t kNumTemps = 0; |
| 3247 LocationSummary* summary = | 3247 LocationSummary* summary = |
| 3248 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); | 3248 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
| 3249 summary->set_in(0, Location::RequiresFpuRegister()); | 3249 summary->set_in(0, Location::FpuRegisterLocation(Q6)); |
| 3250 summary->set_out(Location::RequiresRegister()); | 3250 summary->set_out(Location::RequiresRegister()); |
| 3251 return summary; | 3251 return summary; |
| 3252 } | 3252 } |
| 3253 | 3253 |
| 3254 | 3254 |
| 3255 void Uint32x4GetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 3255 void Uint32x4GetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 3256 QRegister value = locs()->in(0).fpu_reg(); | 3256 QRegister value = locs()->in(0).fpu_reg(); |
| 3257 Register result = locs()->out().reg(); | 3257 Register result = locs()->out().reg(); |
| 3258 | 3258 |
| 3259 DRegister dvalue0 = EvenDRegisterOf(value); | 3259 DRegister dvalue0 = EvenDRegisterOf(value); |
| (...skipping 848 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4108 compiler->GenerateCall(token_pos(), | 4108 compiler->GenerateCall(token_pos(), |
| 4109 &label, | 4109 &label, |
| 4110 PcDescriptors::kOther, | 4110 PcDescriptors::kOther, |
| 4111 locs()); | 4111 locs()); |
| 4112 __ Drop(2); // Discard type arguments and receiver. | 4112 __ Drop(2); // Discard type arguments and receiver. |
| 4113 } | 4113 } |
| 4114 | 4114 |
| 4115 } // namespace dart | 4115 } // namespace dart |
| 4116 | 4116 |
| 4117 #endif // defined TARGET_ARCH_ARM | 4117 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |