1.1 --- a/src/cpu/x86/vm/x86_32.ad Tue Oct 09 10:11:38 2012 +0200 1.2 +++ b/src/cpu/x86/vm/x86_32.ad Tue Oct 09 12:40:05 2012 -0700 1.3 @@ -1558,9 +1558,6 @@ 1.4 // Returns true if the high 32 bits of the value is known to be zero. 1.5 bool is_operand_hi32_zero(Node* n) { 1.6 int opc = n->Opcode(); 1.7 - if (opc == Op_LoadUI2L) { 1.8 - return true; 1.9 - } 1.10 if (opc == Op_AndL) { 1.11 Node* o2 = n->in(2); 1.12 if (o2->is_Con() && (o2->get_long() & 0xFFFFFFFF00000000LL) == 0LL) { 1.13 @@ -6152,8 +6149,8 @@ 1.14 %} 1.15 1.16 // Load Unsigned Integer into Long Register 1.17 -instruct loadUI2L(eRegL dst, memory mem, eFlagsReg cr) %{ 1.18 - match(Set dst (LoadUI2L mem)); 1.19 +instruct loadUI2L(eRegL dst, memory mem, immL_32bits mask, eFlagsReg cr) %{ 1.20 + match(Set dst (AndL (ConvI2L (LoadI mem)) mask)); 1.21 effect(KILL cr); 1.22 1.23 ins_cost(250);