1 /*
2 * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
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
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
197 const Type* bottom_type() const { return TypeInt::BOOL; }
198 virtual uint ideal_reg() const { return Op_RegI; }
199 };
200
201 //------------------------------UpperCaseNode------------------------------------
202 class UpperCaseNode : public Node {
203 public:
204 UpperCaseNode(Node* control, Node *in1) : Node(control, in1) {}
205 virtual int Opcode() const;
206 const Type* bottom_type() const { return TypeInt::BOOL; }
207 virtual uint ideal_reg() const { return Op_RegI; }
208 };
209
210 //------------------------------WhitespaceCode-----------------------------------
211 class WhitespaceNode : public Node {
212 public:
213 WhitespaceNode(Node* control, Node *in1) : Node(control, in1) {}
214 virtual int Opcode() const;
215 const Type* bottom_type() const { return TypeInt::BOOL; }
216 virtual uint ideal_reg() const { return Op_RegI; }
217 };
218
219 #endif // SHARE_OPTO_INTRINSICNODE_HPP
|
1 /*
2 * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
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
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
197 const Type* bottom_type() const { return TypeInt::BOOL; }
198 virtual uint ideal_reg() const { return Op_RegI; }
199 };
200
201 //------------------------------UpperCaseNode------------------------------------
202 class UpperCaseNode : public Node {
203 public:
204 UpperCaseNode(Node* control, Node *in1) : Node(control, in1) {}
205 virtual int Opcode() const;
206 const Type* bottom_type() const { return TypeInt::BOOL; }
207 virtual uint ideal_reg() const { return Op_RegI; }
208 };
209
210 //------------------------------WhitespaceCode-----------------------------------
211 class WhitespaceNode : public Node {
212 public:
213 WhitespaceNode(Node* control, Node *in1) : Node(control, in1) {}
214 virtual int Opcode() const;
215 const Type* bottom_type() const { return TypeInt::BOOL; }
216 virtual uint ideal_reg() const { return Op_RegI; }
217 };
218
219 //------------------------------Signum-------------------------------------------
220 class SignumDNode : public Node {
221 public:
222 SignumDNode(Node* in) : Node(0, in) {}
223 virtual int Opcode() const;
224 virtual const Type *bottom_type() const { return Type::DOUBLE; }
225 virtual uint ideal_reg() const { return Op_RegD; }
226 };
227
228 class SignumFNode : public Node {
229 public:
230 SignumFNode(Node* in) : Node(0, in) {}
231 virtual int Opcode() const;
232 virtual const Type *bottom_type() const { return Type::FLOAT; }
233 virtual uint ideal_reg() const { return Op_RegF; }
234 };
235
236 #endif // SHARE_OPTO_INTRINSICNODE_HPP
|