# HG changeset patch
# User simonis
# Date 1466155884 -7200
# Fri Jun 17 11:31:24 2016 +0200
# Node ID 74081c30fede694b547c8b3386b9887ff14e8775
# Parent 3fc29347b27fdd2075e6ec6d80bb26ab2bf667c1
8158260, PR2991, RH1341258: PPC64: unaligned Unsafe.getInt can lead to the generation of illegal instructions
Summary: Adjust instruction generation.
Reviewed-by: goetz
Contributed-by: gromero@linux.vnet.ibm.com, horii@jp.ibm.com
diff -r 3fc29347b27f -r 74081c30fede src/cpu/ppc/vm/ppc.ad
--- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad Fri May 20 19:42:15 2016 +0100
+++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad Fri Jun 17 11:31:24 2016 +0200
@@ -5461,7 +5461,7 @@
%}
// Match loading integer and casting it to long.
-instruct loadI2L(iRegLdst dst, memory mem) %{
+instruct loadI2L(iRegLdst dst, memoryAlg4 mem) %{
match(Set dst (ConvI2L (LoadI mem)));
predicate(_kids[0]->_leaf->as_Load()->is_unordered());
ins_cost(MEMORY_REF_COST);
@@ -5477,7 +5477,7 @@
%}
// Match loading integer and casting it to long - acquire.
-instruct loadI2L_ac(iRegLdst dst, memory mem) %{
+instruct loadI2L_ac(iRegLdst dst, memoryAlg4 mem) %{
match(Set dst (ConvI2L (LoadI mem)));
ins_cost(3*MEMORY_REF_COST);