#ifndef V8_CCTEST_COMPILER_CODEGEN_TESTER_H_
#define V8_CCTEST_COMPILER_CODEGEN_TESTER_H_
#include "src/codegen/assembler.h"
#include "src/codegen/optimized-compilation-info.h"
#include "src/compiler/backend/instruction-selector.h"
#include "src/compiler/pipeline.h"
#include "src/compiler/raw-machine-assembler.h"
#include "src/objects/code-inl.h"
#include "test/cctest/cctest.h"
#include "test/common/call-tester.h"
namespace v8 {
namespace internal {
namespace compiler {
template <typename ReturnType>
class RawMachineAssemblerTester : public HandleAndZoneScope,
public CallHelper<ReturnType>,
public RawMachineAssembler { … };
template <typename ReturnType>
class BufferedRawMachineAssemblerTester
: public RawMachineAssemblerTester<int32_t> { … };
template <>
class BufferedRawMachineAssemblerTester<void>
: public RawMachineAssemblerTester<void> { … };
static const bool USE_RESULT_BUFFER = …;
static const bool USE_RETURN_REGISTER = …;
static const int32_t CHECK_VALUE = …;
template <typename CType, bool use_result_buffer>
class BinopTester { … };
class Int32BinopTester : public BinopTester<int32_t, USE_RETURN_REGISTER> { … };
class Int64BinopTester : public BinopTester<int64_t, USE_RETURN_REGISTER> { … };
class Uint32BinopTester : public BinopTester<uint32_t, USE_RETURN_REGISTER> { … };
class Float32BinopTester : public BinopTester<float, USE_RESULT_BUFFER> { … };
class Float64BinopTester : public BinopTester<double, USE_RESULT_BUFFER> { … };
template <typename Type>
class PointerBinopTester : public BinopTester<Type, USE_RETURN_REGISTER> { … };
template <typename Type>
class TaggedBinopTester : public BinopTester<Type, USE_RETURN_REGISTER> { … };
template <typename T>
class IntBinopWrapper { … };
class CompareWrapper { … };
template <typename T>
class BinopGen { … };
class Int32BinopInputShapeTester { … };
}
}
}
#endif