Index: test/cctest/compiler/codegen-tester.h |
diff --git a/test/cctest/compiler/codegen-tester.h b/test/cctest/compiler/codegen-tester.h |
index 1319f9421c2946109049b94d4cac109f8b265732..5572f8536b03decc1bd9e2f5735ec583222749ab 100644 |
--- a/test/cctest/compiler/codegen-tester.h |
+++ b/test/cctest/compiler/codegen-tester.h |
@@ -20,11 +20,11 @@ class RawMachineAssemblerTester : public HandleAndZoneScope, |
public CallHelper<ReturnType>, |
public RawMachineAssembler { |
public: |
- RawMachineAssemblerTester(MachineType p0 = kMachNone, |
- MachineType p1 = kMachNone, |
- MachineType p2 = kMachNone, |
- MachineType p3 = kMachNone, |
- MachineType p4 = kMachNone) |
+ RawMachineAssemblerTester(MachineType p0 = MachineType::None(), |
+ MachineType p1 = MachineType::None(), |
+ MachineType p2 = MachineType::None(), |
+ MachineType p3 = MachineType::None(), |
+ MachineType p4 = MachineType::None()) |
: HandleAndZoneScope(), |
CallHelper<ReturnType>( |
main_isolate(), |
@@ -36,7 +36,8 @@ class RawMachineAssemblerTester : public HandleAndZoneScope, |
main_zone(), |
CSignature::New(main_zone(), MachineTypeForC<ReturnType>(), p0, |
p1, p2, p3, p4)), |
- kMachPtr, InstructionSelector::SupportedMachineOperatorFlags()) {} |
+ MachineType::PointerRepresentation(), |
+ InstructionSelector::SupportedMachineOperatorFlags()) {} |
void CheckNumber(double expected, Object* number) { |
CHECK(this->isolate()->factory()->NewNumber(expected)->SameValue(number)); |
@@ -77,10 +78,10 @@ template <typename ReturnType> |
class BufferedRawMachineAssemblerTester |
: public RawMachineAssemblerTester<int32_t> { |
public: |
- BufferedRawMachineAssemblerTester(MachineType p0 = kMachNone, |
- MachineType p1 = kMachNone, |
- MachineType p2 = kMachNone, |
- MachineType p3 = kMachNone) |
+ BufferedRawMachineAssemblerTester(MachineType p0 = MachineType::None(), |
+ MachineType p1 = MachineType::None(), |
+ MachineType p2 = MachineType::None(), |
+ MachineType p3 = MachineType::None()) |
: BufferedRawMachineAssemblerTester(ComputeParameterCount(p0, p1, p2, p3), |
p0, p1, p2, p3) {} |
@@ -159,36 +160,45 @@ class BufferedRawMachineAssemblerTester |
MachineType p0, MachineType p1, |
MachineType p2, MachineType p3) |
: RawMachineAssemblerTester<int32_t>( |
- kMachPtr, p0 == kMachNone ? kMachNone : kMachPtr, |
- p1 == kMachNone ? kMachNone : kMachPtr, |
- p2 == kMachNone ? kMachNone : kMachPtr, |
- p3 == kMachNone ? kMachNone : kMachPtr), |
+ MachineType::Pointer(), |
+ p0 == MachineType::None() ? MachineType::None() |
+ : MachineType::Pointer(), |
+ p1 == MachineType::None() ? MachineType::None() |
+ : MachineType::Pointer(), |
+ p2 == MachineType::None() ? MachineType::None() |
+ : MachineType::Pointer(), |
+ p3 == MachineType::None() ? MachineType::None() |
+ : MachineType::Pointer()), |
test_graph_signature_( |
- CSignature::New(main_zone(), kMachInt32, p0, p1, p2, p3)), |
+ CSignature::New(main_zone(), MachineType::Int32(), p0, p1, p2, p3)), |
return_parameter_index_(return_parameter_index) { |
- parameter_nodes_[0] = |
- p0 == kMachNone ? nullptr : Load(p0, RawMachineAssembler::Parameter(0)); |
- parameter_nodes_[1] = |
- p1 == kMachNone ? nullptr : Load(p1, RawMachineAssembler::Parameter(1)); |
- parameter_nodes_[2] = |
- p2 == kMachNone ? nullptr : Load(p2, RawMachineAssembler::Parameter(2)); |
- parameter_nodes_[3] = |
- p3 == kMachNone ? nullptr : Load(p3, RawMachineAssembler::Parameter(3)); |
+ parameter_nodes_[0] = p0 == MachineType::None() |
+ ? nullptr |
+ : Load(p0, RawMachineAssembler::Parameter(0)); |
+ parameter_nodes_[1] = p1 == MachineType::None() |
+ ? nullptr |
+ : Load(p1, RawMachineAssembler::Parameter(1)); |
+ parameter_nodes_[2] = p2 == MachineType::None() |
+ ? nullptr |
+ : Load(p2, RawMachineAssembler::Parameter(2)); |
+ parameter_nodes_[3] = p3 == MachineType::None() |
+ ? nullptr |
+ : Load(p3, RawMachineAssembler::Parameter(3)); |
} |
static uint32_t ComputeParameterCount(MachineType p0, MachineType p1, |
MachineType p2, MachineType p3) { |
- if (p0 == kMachNone) { |
+ if (p0 == MachineType::None()) { |
return 0; |
} |
- if (p1 == kMachNone) { |
+ if (p1 == MachineType::None()) { |
return 1; |
} |
- if (p2 == kMachNone) { |
+ if (p2 == MachineType::None()) { |
return 2; |
} |
- if (p3 == kMachNone) { |
+ if (p3 == MachineType::None()) { |
return 3; |
} |
return 4; |
@@ -205,25 +215,34 @@ template <> |
class BufferedRawMachineAssemblerTester<void> |
: public RawMachineAssemblerTester<void> { |
public: |
- BufferedRawMachineAssemblerTester(MachineType p0 = kMachNone, |
- MachineType p1 = kMachNone, |
- MachineType p2 = kMachNone, |
- MachineType p3 = kMachNone) |
- : RawMachineAssemblerTester<void>(p0 == kMachNone ? kMachNone : kMachPtr, |
- p1 == kMachNone ? kMachNone : kMachPtr, |
- p2 == kMachNone ? kMachNone : kMachPtr, |
- p3 == kMachNone ? kMachNone : kMachPtr), |
+ BufferedRawMachineAssemblerTester(MachineType p0 = MachineType::None(), |
+ MachineType p1 = MachineType::None(), |
+ MachineType p2 = MachineType::None(), |
+ MachineType p3 = MachineType::None()) |
+ : RawMachineAssemblerTester<void>( |
+ p0 == MachineType::None() ? MachineType::None() |
+ : MachineType::Pointer(), |
+ p1 == MachineType::None() ? MachineType::None() |
+ : MachineType::Pointer(), |
+ p2 == MachineType::None() ? MachineType::None() |
+ : MachineType::Pointer(), |
+ p3 == MachineType::None() ? MachineType::None() |
+ : MachineType::Pointer()), |
test_graph_signature_( |
CSignature::New(RawMachineAssemblerTester<void>::main_zone(), |
- kMachNone, p0, p1, p2, p3)) { |
- parameter_nodes_[0] = |
- p0 == kMachNone ? nullptr : Load(p0, RawMachineAssembler::Parameter(0)); |
- parameter_nodes_[1] = |
- p1 == kMachNone ? nullptr : Load(p1, RawMachineAssembler::Parameter(1)); |
- parameter_nodes_[2] = |
- p2 == kMachNone ? nullptr : Load(p2, RawMachineAssembler::Parameter(2)); |
- parameter_nodes_[3] = |
- p3 == kMachNone ? nullptr : Load(p3, RawMachineAssembler::Parameter(3)); |
+ MachineType::None(), p0, p1, p2, p3)) { |
+ parameter_nodes_[0] = p0 == MachineType::None() |
+ ? nullptr |
+ : Load(p0, RawMachineAssembler::Parameter(0)); |
+ parameter_nodes_[1] = p1 == MachineType::None() |
+ ? nullptr |
+ : Load(p1, RawMachineAssembler::Parameter(1)); |
+ parameter_nodes_[2] = p2 == MachineType::None() |
+ ? nullptr |
+ : Load(p2, RawMachineAssembler::Parameter(2)); |
+ parameter_nodes_[3] = p3 == MachineType::None() |
+ ? nullptr |
+ : Load(p3, RawMachineAssembler::Parameter(3)); |
} |
@@ -283,13 +302,15 @@ static const int32_t CHECK_VALUE = 0x99BEEDCE; |
// TODO(titzer): use the C-style calling convention, or any register-based |
// calling convention for binop tests. |
-template <typename CType, MachineType rep, bool use_result_buffer> |
+template <typename CType, bool use_result_buffer> |
class BinopTester { |
public: |
- explicit BinopTester(RawMachineAssemblerTester<int32_t>* tester) |
+ explicit BinopTester(RawMachineAssemblerTester<int32_t>* tester, |
+ MachineType rep) |
: T(tester), |
param0(T->LoadFromPointer(&p0, rep)), |
param1(T->LoadFromPointer(&p1, rep)), |
+ rep(rep), |
p0(static_cast<CType>(0)), |
p1(static_cast<CType>(0)), |
result(static_cast<CType>(0)) {} |
@@ -331,6 +352,7 @@ class BinopTester { |
} |
protected: |
+ MachineType rep; |
CType p0; |
CType p1; |
CType result; |
@@ -339,21 +361,21 @@ class BinopTester { |
// A helper class for testing code sequences that take two int parameters and |
// return an int value. |
-class Int32BinopTester |
- : public BinopTester<int32_t, kMachInt32, USE_RETURN_REGISTER> { |
+class Int32BinopTester : public BinopTester<int32_t, USE_RETURN_REGISTER> { |
public: |
explicit Int32BinopTester(RawMachineAssemblerTester<int32_t>* tester) |
- : BinopTester<int32_t, kMachInt32, USE_RETURN_REGISTER>(tester) {} |
+ : BinopTester<int32_t, USE_RETURN_REGISTER>(tester, |
+ MachineType::Int32()) {} |
}; |
// A helper class for testing code sequences that take two uint parameters and |
// return an uint value. |
-class Uint32BinopTester |
- : public BinopTester<uint32_t, kMachUint32, USE_RETURN_REGISTER> { |
+class Uint32BinopTester : public BinopTester<uint32_t, USE_RETURN_REGISTER> { |
public: |
explicit Uint32BinopTester(RawMachineAssemblerTester<int32_t>* tester) |
- : BinopTester<uint32_t, kMachUint32, USE_RETURN_REGISTER>(tester) {} |
+ : BinopTester<uint32_t, USE_RETURN_REGISTER>(tester, |
+ MachineType::Uint32()) {} |
uint32_t call(uint32_t a0, uint32_t a1) { |
p0 = a0; |
@@ -366,22 +388,21 @@ class Uint32BinopTester |
// A helper class for testing code sequences that take two float parameters and |
// return a float value. |
// TODO(titzer): figure out how to return floats correctly on ia32. |
-class Float32BinopTester |
- : public BinopTester<float, kMachFloat32, USE_RESULT_BUFFER> { |
+class Float32BinopTester : public BinopTester<float, USE_RESULT_BUFFER> { |
public: |
explicit Float32BinopTester(RawMachineAssemblerTester<int32_t>* tester) |
- : BinopTester<float, kMachFloat32, USE_RESULT_BUFFER>(tester) {} |
+ : BinopTester<float, USE_RESULT_BUFFER>(tester, MachineType::Float32()) {} |
}; |
// A helper class for testing code sequences that take two double parameters and |
// return a double value. |
// TODO(titzer): figure out how to return doubles correctly on ia32. |
-class Float64BinopTester |
- : public BinopTester<double, kMachFloat64, USE_RESULT_BUFFER> { |
+class Float64BinopTester : public BinopTester<double, USE_RESULT_BUFFER> { |
public: |
explicit Float64BinopTester(RawMachineAssemblerTester<int32_t>* tester) |
- : BinopTester<double, kMachFloat64, USE_RESULT_BUFFER>(tester) {} |
+ : BinopTester<double, USE_RESULT_BUFFER>(tester, MachineType::Float64()) { |
+ } |
}; |
@@ -389,22 +410,22 @@ class Float64BinopTester |
// and return a pointer value. |
// TODO(titzer): pick word size of pointers based on V8_TARGET. |
template <typename Type> |
-class PointerBinopTester |
- : public BinopTester<Type*, kMachPtr, USE_RETURN_REGISTER> { |
+class PointerBinopTester : public BinopTester<Type*, USE_RETURN_REGISTER> { |
public: |
explicit PointerBinopTester(RawMachineAssemblerTester<int32_t>* tester) |
- : BinopTester<Type*, kMachPtr, USE_RETURN_REGISTER>(tester) {} |
+ : BinopTester<Type*, USE_RETURN_REGISTER>(tester, |
+ MachineType::Pointer()) {} |
}; |
// A helper class for testing code sequences that take two tagged parameters and |
// return a tagged value. |
template <typename Type> |
-class TaggedBinopTester |
- : public BinopTester<Type*, kMachAnyTagged, USE_RETURN_REGISTER> { |
+class TaggedBinopTester : public BinopTester<Type*, USE_RETURN_REGISTER> { |
public: |
explicit TaggedBinopTester(RawMachineAssemblerTester<int32_t>* tester) |
- : BinopTester<Type*, kMachAnyTagged, USE_RETURN_REGISTER>(tester) {} |
+ : BinopTester<Type*, USE_RETURN_REGISTER>(tester, |
+ MachineType::AnyTagged()) {} |
}; |
// A helper class for testing compares. Wraps a machine opcode and provides |