chromium/v8/src/codegen/signature.h

// Copyright 2015 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef V8_CODEGEN_SIGNATURE_H_
#define V8_CODEGEN_SIGNATURE_H_

#include "src/base/functional.h"
#include "src/base/vector.h"
#include "src/codegen/machine-type.h"
#include "src/sandbox/check.h"
#include "src/zone/zone.h"

namespace v8 {
namespace internal {

// Describes the inputs and outputs of a function or call.
template <typename T>
class Signature : public ZoneObject {};

MachineSignature;

template <typename T>
size_t hash_value(const Signature<T>& sig) {}

template <typename T, size_t kNumReturns = 0, size_t kNumParams = 0>
class FixedSizeSignature : public Signature<T> {};

// Specialization for zero-sized signatures.
FixedSizeSignature<T, 0, 0>;

}  // namespace internal
}  // namespace v8

#endif  // V8_CODEGEN_SIGNATURE_H_