8074349: AARCH64: C2 generates poor code for some byte and character stores

Use iRegIorL2I as src input for char and byte stores.

Reviewed-by: kvn
This commit is contained in:
Andrew Haley 2015-03-03 17:56:33 +00:00
parent 94ddb7fc72
commit 45d5073b91

@ -5630,7 +5630,7 @@ instruct storeimmCM0(immI0 zero, memory mem)
%}
// 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 @@ instruct storeimmB0(immI0 zero, memory mem)
%}
// 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());