8074349: AARCH64: C2 generates poor code for some byte and character stores
authoraph
Tue, 03 Mar 2015 17:56:33 +0000
changeset 29214 cb399be02b39
parent 29213 340e3e8b810b
child 29215 2bf25ac4195f
8074349: AARCH64: C2 generates poor code for some byte and character stores Summary: Use iRegIorL2I as src input for char and byte stores. Reviewed-by: kvn
hotspot/src/cpu/aarch64/vm/aarch64.ad
--- a/hotspot/src/cpu/aarch64/vm/aarch64.ad	Tue Mar 03 06:23:49 2015 -0800
+++ b/hotspot/src/cpu/aarch64/vm/aarch64.ad	Tue Mar 03 17:56:33 2015 +0000
@@ -5630,7 +5630,7 @@
 %}
 
 // Store Byte
-instruct storeB(iRegI src, memory mem)
+instruct storeB(iRegIorL2I src, memory mem)
 %{
   match(Set mem (StoreB mem src));
   predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
@@ -5658,7 +5658,7 @@
 %}
 
 // Store Char/Short
-instruct storeC(iRegI src, memory mem)
+instruct storeC(iRegIorL2I src, memory mem)
 %{
   match(Set mem (StoreC mem src));
   predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());