diff src/share/vm/opto/mulnode.cpp @ 6849:f6badecb7ea7

7199654: Remove LoadUI2LNode Summary: Removed LoadUI2L node from Ideal nodes, use match rule in .ad files instead. Reviewed-by: kvn
author vlivanov
date Tue, 09 Oct 2012 12:40:05 -0700
parents e626685e9f6c
children d804e148cff8
line wrap: on
line diff
--- a/src/share/vm/opto/mulnode.cpp	Tue Oct 09 10:11:38 2012 +0200
+++ b/src/share/vm/opto/mulnode.cpp	Tue Oct 09 12:40:05 2012 -0700
@@ -599,20 +599,6 @@
   Node* in1 = in(1);
   uint op = in1->Opcode();
 
-  // Masking sign bits off of an integer?  Do an unsigned integer to
-  // long load.
-  // NOTE: This check must be *before* we try to convert the AndLNode
-  // to an AndINode and commute it with ConvI2LNode because
-  // 0xFFFFFFFFL masks the whole integer and we get a sign extension,
-  // which is wrong.
-  if (op == Op_ConvI2L && in1->in(1)->Opcode() == Op_LoadI && mask == CONST64(0x00000000FFFFFFFF)) {
-    Node* load = in1->in(1);
-    return new (phase->C) LoadUI2LNode(load->in(MemNode::Control),
-                                          load->in(MemNode::Memory),
-                                          load->in(MemNode::Address),
-                                          load->adr_type());
-  }
-
   // Are we masking a long that was converted from an int with a mask
   // that fits in 32-bits?  Commute them and use an AndINode.  Don't
   // convert masks which would cause a sign extension of the integer