diff options
author | vlivanov <none@none> | 2012-10-09 12:40:05 -0700 |
---|---|---|
committer | vlivanov <none@none> | 2012-10-09 12:40:05 -0700 |
commit | 01ec454928ac272b170dd6a1cf5811143bf972b2 (patch) | |
tree | 0998b0378b9e17d3d8819d510f0c69f621cf7bcd /src/cpu | |
parent | 423ea14f6cc00a9361047d24e99abd06b824c657 (diff) |
7199654: Remove LoadUI2LNode
Summary: Removed LoadUI2L node from Ideal nodes, use match rule in .ad files instead.
Reviewed-by: kvn
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/sparc/vm/sparc.ad | 4 | ||||
-rw-r--r-- | src/cpu/x86/vm/x86_32.ad | 7 | ||||
-rw-r--r-- | src/cpu/x86/vm/x86_64.ad | 4 |
3 files changed, 6 insertions, 9 deletions
diff --git a/src/cpu/sparc/vm/sparc.ad b/src/cpu/sparc/vm/sparc.ad index 43d4b7cd2..b7029faa6 100644 --- a/src/cpu/sparc/vm/sparc.ad +++ b/src/cpu/sparc/vm/sparc.ad @@ -5885,8 +5885,8 @@ instruct loadI2L_immI(iRegL dst, memory mem, immI mask, iRegL tmp) %{ %} // Load Unsigned Integer into a Long Register -instruct loadUI2L(iRegL dst, memory mem) %{ - match(Set dst (LoadUI2L mem)); +instruct loadUI2L(iRegL dst, memory mem, immL_32bits mask) %{ + match(Set dst (AndL (ConvI2L (LoadI mem)) mask)); ins_cost(MEMORY_REF_COST); size(4); diff --git a/src/cpu/x86/vm/x86_32.ad b/src/cpu/x86/vm/x86_32.ad index a84c5f8bb..0a9bfb7bc 100644 --- a/src/cpu/x86/vm/x86_32.ad +++ b/src/cpu/x86/vm/x86_32.ad @@ -1558,9 +1558,6 @@ const RegMask Matcher::method_handle_invoke_SP_save_mask() { // 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 @@ instruct loadI2L_immI(eRegL dst, memory mem, immI mask, eFlagsReg cr) %{ %} // 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); diff --git a/src/cpu/x86/vm/x86_64.ad b/src/cpu/x86/vm/x86_64.ad index 13d30ae79..5b05ec222 100644 --- a/src/cpu/x86/vm/x86_64.ad +++ b/src/cpu/x86/vm/x86_64.ad @@ -5200,9 +5200,9 @@ instruct loadI2L_immI(rRegL dst, memory mem, immI mask, rFlagsReg cr) %{ %} // Load Unsigned Integer into Long Register -instruct loadUI2L(rRegL dst, memory mem) +instruct loadUI2L(rRegL dst, memory mem, immL_32bits mask) %{ - match(Set dst (LoadUI2L mem)); + match(Set dst (AndL (ConvI2L (LoadI mem)) mask)); ins_cost(125); format %{ "movl $dst, $mem\t# uint -> long" %} |