diff options
author | Vladimir Marko <vmarko@google.com> | 2017-09-21 22:50:39 +0100 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2017-09-25 15:45:01 +0100 |
commit | 0ebe0d83138bba1996e9c8007969b5381d972b32 (patch) | |
tree | a5ee66ebc5b587ade97e56ac8fc7d832fbbed4af /compiler/optimizing/code_generator_mips.h | |
parent | e1e347dace0ded83774999bb26c37527dcdb1d5a (diff) |
ART: Introduce compiler data type.
Replace most uses of the runtime's Primitive in compiler
with a new class DataType. This prepares for introducing
new types, such as Uint8, that the runtime does not need
to know about.
Test: m test-art-host-gtest
Test: testrunner.py --host
Bug: 23964345
Change-Id: Iec2ad82454eec678fffcd8279a9746b90feb9b0c
Diffstat (limited to 'compiler/optimizing/code_generator_mips.h')
-rw-r--r-- | compiler/optimizing/code_generator_mips.h | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/compiler/optimizing/code_generator_mips.h b/compiler/optimizing/code_generator_mips.h index 2b1075d12b..5f2f90004d 100644 --- a/compiler/optimizing/code_generator_mips.h +++ b/compiler/optimizing/code_generator_mips.h @@ -81,8 +81,8 @@ class InvokeDexCallingConventionVisitorMIPS : public InvokeDexCallingConventionV InvokeDexCallingConventionVisitorMIPS() {} virtual ~InvokeDexCallingConventionVisitorMIPS() {} - Location GetNextLocation(Primitive::Type type) OVERRIDE; - Location GetReturnLocation(Primitive::Type type) const OVERRIDE; + Location GetNextLocation(DataType::Type type) OVERRIDE; + Location GetReturnLocation(DataType::Type type) const OVERRIDE; Location GetMethodLocation() const OVERRIDE; private: @@ -100,7 +100,7 @@ class InvokeRuntimeCallingConvention : public CallingConvention<Register, FRegis kRuntimeParameterFpuRegistersLength, kMipsPointerSize) {} - Location GetReturnLocation(Primitive::Type return_type); + Location GetReturnLocation(DataType::Type return_type); private: DISALLOW_COPY_AND_ASSIGN(InvokeRuntimeCallingConvention); @@ -116,17 +116,17 @@ class FieldAccessCallingConventionMIPS : public FieldAccessCallingConvention { Location GetFieldIndexLocation() const OVERRIDE { return Location::RegisterLocation(A0); } - Location GetReturnLocation(Primitive::Type type) const OVERRIDE { - return Primitive::Is64BitType(type) + Location GetReturnLocation(DataType::Type type) const OVERRIDE { + return DataType::Is64BitType(type) ? Location::RegisterPairLocation(V0, V1) : Location::RegisterLocation(V0); } - Location GetSetValueLocation(Primitive::Type type, bool is_instance) const OVERRIDE { - return Primitive::Is64BitType(type) + Location GetSetValueLocation(DataType::Type type, bool is_instance) const OVERRIDE { + return DataType::Is64BitType(type) ? Location::RegisterPairLocation(A2, A3) : (is_instance ? Location::RegisterLocation(A2) : Location::RegisterLocation(A1)); } - Location GetFpuLocation(Primitive::Type type ATTRIBUTE_UNUSED) const OVERRIDE { + Location GetFpuLocation(DataType::Type type ATTRIBUTE_UNUSED) const OVERRIDE { return Location::FpuRegisterLocation(F0); } @@ -304,14 +304,14 @@ class InstructionCodeGeneratorMIPS : public InstructionCodeGenerator { MipsLabel* label); void GenerateFpCompare(IfCondition cond, bool gt_bias, - Primitive::Type type, + DataType::Type type, LocationSummary* locations); // When the function returns `false` it means that the condition holds if the condition // code flag `cc` is non-zero and doesn't hold if `cc` is zero. If it returns `true`, // the roles of zero and non-zero values of the `cc` flag are exchanged. bool MaterializeFpCompareR2(IfCondition cond, bool gt_bias, - Primitive::Type type, + DataType::Type type, LocationSummary* input_locations, int cc); // When the function returns `false` it means that the condition holds if `dst` is non-zero @@ -319,12 +319,12 @@ class InstructionCodeGeneratorMIPS : public InstructionCodeGenerator { // `dst` are exchanged. bool MaterializeFpCompareR6(IfCondition cond, bool gt_bias, - Primitive::Type type, + DataType::Type type, LocationSummary* input_locations, FRegister dst); void GenerateFpCompareAndBranch(IfCondition cond, bool gt_bias, - Primitive::Type type, + DataType::Type type, LocationSummary* locations, MipsLabel* label); void GenerateTestAndBranch(HInstruction* instruction, @@ -518,7 +518,7 @@ class CodeGeneratorMIPS : public CodeGenerator { // Code generation helpers. - void MoveLocation(Location dst, Location src, Primitive::Type dst_type) OVERRIDE; + void MoveLocation(Location dst, Location src, DataType::Type dst_type) OVERRIDE; void MoveConstant(Location destination, int32_t value) OVERRIDE; @@ -541,8 +541,8 @@ class CodeGeneratorMIPS : public CodeGenerator { ParallelMoveResolver* GetMoveResolver() OVERRIDE { return &move_resolver_; } - bool NeedsTwoRegisters(Primitive::Type type) const OVERRIDE { - return type == Primitive::kPrimLong; + bool NeedsTwoRegisters(DataType::Type type) const OVERRIDE { + return type == DataType::Type::kInt64; } // Check if the desired_string_load_kind is supported. If it is, return it, @@ -567,7 +567,7 @@ class CodeGeneratorMIPS : public CodeGenerator { HInvokeVirtual* invoke, Location temp, SlowPathCode* slow_path = nullptr) OVERRIDE; void MoveFromReturnRegister(Location trg ATTRIBUTE_UNUSED, - Primitive::Type type ATTRIBUTE_UNUSED) OVERRIDE { + DataType::Type type ATTRIBUTE_UNUSED) OVERRIDE { UNIMPLEMENTED(FATAL) << "Not implemented on MIPS"; } |