Hexagon (target/hexagon) move store size tracking to translation
authorTaylor Simpson <tsimpson@quicinc.com>
Tue, 20 Sep 2022 08:07:45 +0000 (01:07 -0700)
committerTaylor Simpson <tsimpson@quicinc.com>
Fri, 30 Sep 2022 18:25:37 +0000 (11:25 -0700)
commit661ad999c554d1cc99ff96b3baf3ff4acbe2ecee
tree7710891c913505882d724bef841786bcc7068b49
parente2be9a5c5f65a2cbde4915e29a112439177656d7
Hexagon (target/hexagon) move store size tracking to translation

The store width is needed for packet commit, so it is stored in
ctx->store_width.  Currently, it is set when a store has a TCG
override instead of a QEMU helper.  In the QEMU helper case, the
ctx->store_width is not set, we invoke a helper during packet commit
that uses the runtime store width.

This patch ensures ctx->store_width is set for all store instructions,
so performance is improved because packet commit can generate the proper
TCG store rather than the generic helper.

We do this by
- Use the attributes from the instructions during translation to
  set ctx->store_width
- Remove setting of ctx->store_width from genptr.c

Signed-off-by: Taylor Simpson <tsimpson@quicinc.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220920080746.26791-3-tsimpson@quicinc.com>
target/hexagon/genptr.c
target/hexagon/macros.h
target/hexagon/translate.c