321 Node* OrI(Node* l, Node* r) { return _gvn.transform(new (C) OrINode(l, r)); }
322 Node* XorI(Node* l, Node* r) { return _gvn.transform(new (C) XorINode(l, r)); }
323
324 Node* MaxI(Node* l, Node* r) { return _gvn.transform(new (C) MaxINode(l, r)); }
325 Node* MinI(Node* l, Node* r) { return _gvn.transform(new (C) MinINode(l, r)); }
326
327 Node* LShiftI(Node* l, Node* r) { return _gvn.transform(new (C) LShiftINode(l, r)); }
328 Node* RShiftI(Node* l, Node* r) { return _gvn.transform(new (C) RShiftINode(l, r)); }
329 Node* URShiftI(Node* l, Node* r) { return _gvn.transform(new (C) URShiftINode(l, r)); }
330
331 Node* CmpI(Node* l, Node* r) { return _gvn.transform(new (C) CmpINode(l, r)); }
332 Node* CmpL(Node* l, Node* r) { return _gvn.transform(new (C) CmpLNode(l, r)); }
333 Node* CmpP(Node* l, Node* r) { return _gvn.transform(new (C) CmpPNode(l, r)); }
334 Node* Bool(Node* cmp, BoolTest::mask relop) { return _gvn.transform(new (C) BoolNode(cmp, relop)); }
335
336 Node* AddP(Node* b, Node* a, Node* o) { return _gvn.transform(new (C) AddPNode(b, a, o)); }
337
338 // Convert between int and long, and size_t.
339 // (See macros ConvI2X, etc., in type.hpp for ConvI2X, etc.)
340 Node* ConvI2L(Node* offset);
341 Node* ConvL2I(Node* offset);
342 // Find out the klass of an object.
343 Node* load_object_klass(Node* object);
344 // Find out the length of an array.
345 Node* load_array_length(Node* array);
346
347
348 // Helper function to do a NULL pointer check or ZERO check based on type.
349 // Throw an exception if a given value is null.
350 // Return the value cast to not-null.
351 // Be clever about equivalent dominating null checks.
352 Node* null_check_common(Node* value, BasicType type,
353 bool assert_null = false, Node* *null_control = NULL);
354 Node* null_check(Node* value, BasicType type = T_OBJECT) {
355 return null_check_common(value, type);
356 }
357 Node* null_check_receiver() {
358 assert(argument(0)->bottom_type()->isa_ptr(), "must be");
359 return null_check(argument(0));
360 }
|
321 Node* OrI(Node* l, Node* r) { return _gvn.transform(new (C) OrINode(l, r)); }
322 Node* XorI(Node* l, Node* r) { return _gvn.transform(new (C) XorINode(l, r)); }
323
324 Node* MaxI(Node* l, Node* r) { return _gvn.transform(new (C) MaxINode(l, r)); }
325 Node* MinI(Node* l, Node* r) { return _gvn.transform(new (C) MinINode(l, r)); }
326
327 Node* LShiftI(Node* l, Node* r) { return _gvn.transform(new (C) LShiftINode(l, r)); }
328 Node* RShiftI(Node* l, Node* r) { return _gvn.transform(new (C) RShiftINode(l, r)); }
329 Node* URShiftI(Node* l, Node* r) { return _gvn.transform(new (C) URShiftINode(l, r)); }
330
331 Node* CmpI(Node* l, Node* r) { return _gvn.transform(new (C) CmpINode(l, r)); }
332 Node* CmpL(Node* l, Node* r) { return _gvn.transform(new (C) CmpLNode(l, r)); }
333 Node* CmpP(Node* l, Node* r) { return _gvn.transform(new (C) CmpPNode(l, r)); }
334 Node* Bool(Node* cmp, BoolTest::mask relop) { return _gvn.transform(new (C) BoolNode(cmp, relop)); }
335
336 Node* AddP(Node* b, Node* a, Node* o) { return _gvn.transform(new (C) AddPNode(b, a, o)); }
337
338 // Convert between int and long, and size_t.
339 // (See macros ConvI2X, etc., in type.hpp for ConvI2X, etc.)
340 Node* ConvI2L(Node* offset);
341 Node* ConvI2UL(Node* offset);
342 Node* ConvL2I(Node* offset);
343 // Find out the klass of an object.
344 Node* load_object_klass(Node* object);
345 // Find out the length of an array.
346 Node* load_array_length(Node* array);
347
348
349 // Helper function to do a NULL pointer check or ZERO check based on type.
350 // Throw an exception if a given value is null.
351 // Return the value cast to not-null.
352 // Be clever about equivalent dominating null checks.
353 Node* null_check_common(Node* value, BasicType type,
354 bool assert_null = false, Node* *null_control = NULL);
355 Node* null_check(Node* value, BasicType type = T_OBJECT) {
356 return null_check_common(value, type);
357 }
358 Node* null_check_receiver() {
359 assert(argument(0)->bottom_type()->isa_ptr(), "must be");
360 return null_check(argument(0));
361 }
|