arm: Fix v8 neon latency issue for loads/stores
authorMitch Hayenga <mitch.hayenga@arm.com>
Wed, 3 Sep 2014 11:42:44 +0000 (07:42 -0400)
committerMitch Hayenga <mitch.hayenga@arm.com>
Wed, 3 Sep 2014 11:42:44 +0000 (07:42 -0400)
commitbb1e6cf7c4d64a56b80d3d69ba25e8ff7d455bbd
tree95f328eb1a3c25bb8e67136e5b1ad1173a136143
parent4a3f11149d791284a012af71067f6b2199aa165c
arm: Fix v8 neon latency issue for loads/stores

Neon memory ops that operate on multiple registers currently have very poor
performance because of interleave/deinterleave micro-ops.

This patch marks the deinterleave/interleave micro-ops as "No_OpClass" such
that they take minumum cycles to execute and are never resource constrained.

Additionaly the micro-ops over-read registers.  Although one form may need
to read up to 20 sources, not all do.  This adds in new forms so false
dependencies are not modeled.  Instructions read their minimum number of
sources.
src/arch/arm/insts/macromem.cc
src/arch/arm/isa/insts/neon64_mem.isa