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 |