hotspot/src/cpu/x86/vm/x86_32.ad
changeset 13970 11a9630698a6
parent 13969 d2a189b83b87
child 13974 791cba24758f
--- a/hotspot/src/cpu/x86/vm/x86_32.ad	Tue Oct 09 10:11:38 2012 +0200
+++ b/hotspot/src/cpu/x86/vm/x86_32.ad	Tue Oct 09 12:40:05 2012 -0700
@@ -1558,9 +1558,6 @@
 // Returns true if the high 32 bits of the value is known to be zero.
 bool is_operand_hi32_zero(Node* n) {
   int opc = n->Opcode();
-  if (opc == Op_LoadUI2L) {
-    return true;
-  }
   if (opc == Op_AndL) {
     Node* o2 = n->in(2);
     if (o2->is_Con() && (o2->get_long() & 0xFFFFFFFF00000000LL) == 0LL) {
@@ -6152,8 +6149,8 @@
 %}
 
 // Load Unsigned Integer into Long Register
-instruct loadUI2L(eRegL dst, memory mem, eFlagsReg cr) %{
-  match(Set dst (LoadUI2L mem));
+instruct loadUI2L(eRegL dst, memory mem, immL_32bits mask, eFlagsReg cr) %{
+  match(Set dst (AndL (ConvI2L (LoadI mem)) mask));
   effect(KILL cr);
 
   ins_cost(250);