hotspot/src/share/vm/opto/divnode.hpp
changeset 25930 eae8b7490d2c
parent 7397 5b173b4ca846
child 35551 36ef3841fb34
equal deleted inserted replaced
25929:4fd732076fe1 25930:eae8b7490d2c
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   166   virtual int Opcode() const;
   166   virtual int Opcode() const;
   167   virtual const Type *bottom_type() const { return TypeTuple::INT_PAIR; }
   167   virtual const Type *bottom_type() const { return TypeTuple::INT_PAIR; }
   168   virtual Node *match( const ProjNode *proj, const Matcher *m );
   168   virtual Node *match( const ProjNode *proj, const Matcher *m );
   169 
   169 
   170   // Make a divmod and associated projections from a div or mod.
   170   // Make a divmod and associated projections from a div or mod.
   171   static DivModINode* make(Compile* C, Node* div_or_mod);
   171   static DivModINode* make(Node* div_or_mod);
   172 };
   172 };
   173 
   173 
   174 //------------------------------DivModLNode---------------------------------------
   174 //------------------------------DivModLNode---------------------------------------
   175 // Long division with remainder result.
   175 // Long division with remainder result.
   176 class DivModLNode : public DivModNode {
   176 class DivModLNode : public DivModNode {
   179   virtual int Opcode() const;
   179   virtual int Opcode() const;
   180   virtual const Type *bottom_type() const { return TypeTuple::LONG_PAIR; }
   180   virtual const Type *bottom_type() const { return TypeTuple::LONG_PAIR; }
   181   virtual Node *match( const ProjNode *proj, const Matcher *m );
   181   virtual Node *match( const ProjNode *proj, const Matcher *m );
   182 
   182 
   183   // Make a divmod and associated projections from a div or mod.
   183   // Make a divmod and associated projections from a div or mod.
   184   static DivModLNode* make(Compile* C, Node* div_or_mod);
   184   static DivModLNode* make(Node* div_or_mod);
   185 };
   185 };
   186 
   186 
   187 #endif // SHARE_VM_OPTO_DIVNODE_HPP
   187 #endif // SHARE_VM_OPTO_DIVNODE_HPP