Mercurial > hg > truffle
diff src/cpu/x86/vm/x86_32.ad @ 6853:d804e148cff8
Merge
author | kvn |
---|---|
date | Fri, 12 Oct 2012 09:22:52 -0700 |
parents | d8ce2825b193 f6badecb7ea7 |
children | 00af3a3a8df4 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/x86_32.ad Tue Oct 09 10:09:34 2012 -0700 +++ b/src/cpu/x86/vm/x86_32.ad Fri Oct 12 09:22:52 2012 -0700 @@ -1424,6 +1424,11 @@ return true; } +bool Matcher::narrow_klass_use_complex_address() { + ShouldNotCallThis(); + return true; +} + // Is it better to copy float constants, or load them directly from memory? // Intel can load a float constant from a direct address, requiring no @@ -1553,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) { @@ -6147,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);