equal
deleted
inserted
replaced
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 |