| Index: src/compiler/machine-type.h
|
| diff --git a/src/compiler/machine-type.h b/src/compiler/machine-type.h
|
| index 4c51a9ffe5ebd45a89fa3a24723307f6690f13f2..0b56b7ab47da18b3d6edfbc051476cfac4883bc1 100644
|
| --- a/src/compiler/machine-type.h
|
| +++ b/src/compiler/machine-type.h
|
| @@ -9,6 +9,7 @@
|
|
|
| #include "src/base/bits.h"
|
| #include "src/globals.h"
|
| +#include "src/signature.h"
|
| #include "src/zone.h"
|
|
|
| namespace v8 {
|
| @@ -111,70 +112,6 @@ inline int ElementSizeOf(MachineType machine_type) {
|
| return 1 << shift;
|
| }
|
|
|
| -// Describes the inputs and outputs of a function or call.
|
| -template <typename T>
|
| -class Signature : public ZoneObject {
|
| - public:
|
| - Signature(size_t return_count, size_t parameter_count, T* reps)
|
| - : return_count_(return_count),
|
| - parameter_count_(parameter_count),
|
| - reps_(reps) {}
|
| -
|
| - size_t return_count() const { return return_count_; }
|
| - size_t parameter_count() const { return parameter_count_; }
|
| -
|
| - T GetParam(size_t index) const {
|
| - DCHECK(index < parameter_count_);
|
| - return reps_[return_count_ + index];
|
| - }
|
| -
|
| - T GetReturn(size_t index = 0) const {
|
| - DCHECK(index < return_count_);
|
| - return reps_[index];
|
| - }
|
| -
|
| - // For incrementally building signatures.
|
| - class Builder {
|
| - public:
|
| - Builder(Zone* zone, size_t return_count, size_t parameter_count)
|
| - : return_count_(return_count),
|
| - parameter_count_(parameter_count),
|
| - zone_(zone),
|
| - rcursor_(0),
|
| - pcursor_(0),
|
| - buffer_(zone->NewArray<T>(
|
| - static_cast<int>(return_count + parameter_count))) {}
|
| -
|
| - const size_t return_count_;
|
| - const size_t parameter_count_;
|
| -
|
| - void AddReturn(T val) {
|
| - DCHECK(rcursor_ < return_count_);
|
| - buffer_[rcursor_++] = val;
|
| - }
|
| - void AddParam(T val) {
|
| - DCHECK(pcursor_ < parameter_count_);
|
| - buffer_[return_count_ + pcursor_++] = val;
|
| - }
|
| - Signature<T>* Build() {
|
| - DCHECK(rcursor_ == return_count_);
|
| - DCHECK(pcursor_ == parameter_count_);
|
| - return new (zone_) Signature<T>(return_count_, parameter_count_, buffer_);
|
| - }
|
| -
|
| - private:
|
| - Zone* zone_;
|
| - size_t rcursor_;
|
| - size_t pcursor_;
|
| - T* buffer_;
|
| - };
|
| -
|
| - protected:
|
| - size_t return_count_;
|
| - size_t parameter_count_;
|
| - T* reps_;
|
| -};
|
| -
|
| typedef Signature<MachineType> MachineSignature;
|
| } // namespace compiler
|
| } // namespace internal
|
|
|