| Index: src/compiler/register-allocator-verifier.h
|
| diff --git a/src/compiler/register-allocator-verifier.h b/src/compiler/register-allocator-verifier.h
|
| index 10592e10f451fd40c1d70e868aa9c66272bcf45b..04e47cb6a6c27ebfb94ba3c549edac5acbfa2ea9 100644
|
| --- a/src/compiler/register-allocator-verifier.h
|
| +++ b/src/compiler/register-allocator-verifier.h
|
| @@ -17,9 +17,11 @@ class InstructionSequence;
|
|
|
| class RegisterAllocatorVerifier FINAL : public ZoneObject {
|
| public:
|
| - RegisterAllocatorVerifier(Zone* zone, const InstructionSequence* sequence);
|
| + RegisterAllocatorVerifier(Zone* zone, const RegisterConfiguration* config,
|
| + const InstructionSequence* sequence);
|
|
|
| void VerifyAssignment();
|
| + void VerifyGapMoves();
|
|
|
| private:
|
| enum ConstraintType {
|
| @@ -38,6 +40,7 @@ class RegisterAllocatorVerifier FINAL : public ZoneObject {
|
| struct OperandConstraint {
|
| ConstraintType type_;
|
| int value_; // subkind index when relevant
|
| + int virtual_register_;
|
| };
|
|
|
| struct InstructionConstraint {
|
| @@ -48,13 +51,22 @@ class RegisterAllocatorVerifier FINAL : public ZoneObject {
|
|
|
| typedef ZoneVector<InstructionConstraint> Constraints;
|
|
|
| + Zone* zone() const { return zone_; }
|
| + const RegisterConfiguration* config() { return config_; }
|
| const InstructionSequence* sequence() const { return sequence_; }
|
| Constraints* constraints() { return &constraints_; }
|
| +
|
| + static void VerifyInput(const OperandConstraint& constraint);
|
| + static void VerifyTemp(const OperandConstraint& constraint);
|
| + static void VerifyOutput(const OperandConstraint& constraint);
|
| +
|
| void BuildConstraint(const InstructionOperand* op,
|
| OperandConstraint* constraint);
|
| void CheckConstraint(const InstructionOperand* op,
|
| const OperandConstraint* constraint);
|
|
|
| + Zone* const zone_;
|
| + const RegisterConfiguration* config_;
|
| const InstructionSequence* const sequence_;
|
| Constraints constraints_;
|
|
|
|
|