# HG changeset patch # User aph # Date 1425405393 0 # Node ID cb399be02b3932c594fcb72f4653acb38e4d7b8f # Parent 340e3e8b810bb7f0b9cb79346e0097720fdbaf2a 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 diff -r 340e3e8b810b -r cb399be02b39 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());