aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatheus Tavares Bernardino <quic_mathbern@quicinc.com>2022-09-30 17:08:23 -0300
committerTaylor Simpson <tsimpson@quicinc.com>2022-10-03 11:07:44 -0700
commit772b3eb4b4fe15f0595bd95923778a5a0f3558cc (patch)
treeb5534efaf1261c45217d36f7ff3c0559dc7f0759
parent661ad999c554d1cc99ff96b3baf3ff4acbe2ecee (diff)
downloadqemu-772b3eb4b4fe15f0595bd95923778a5a0f3558cc.zip
qemu-772b3eb4b4fe15f0595bd95923778a5a0f3558cc.tar.gz
qemu-772b3eb4b4fe15f0595bd95923778a5a0f3558cc.tar.bz2
Hexagon (gen_tcg_funcs.py): avoid duplicated tcg code on A_CVI_NEW
Hexagon instructions with the A_CVI_NEW attribute produce a vector value that can be used in the same packet. The python function responsible for generating code for such instructions has a typo ("if" instead of "elif"), which makes genptr_dst_write_ext() be executed twice, thus also generating the same tcg code twice. Fortunately, this doesn't cause any problems for correctness, but it is less efficient than it could be. Fix it by using an "elif" and avoiding the unnecessary extra code gen. Signed-off-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com> Signed-off-by: Taylor Simpson <tsimpson@quicinc.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Taylor Simpson <tsimpson@quicinc.com> Message-Id: <fa706b192b2a3a0ffbd399fa8dbf0d5b2c5b82d9.1664568492.git.quic_mathbern@quicinc.com>
-rwxr-xr-xtarget/hexagon/gen_tcg_funcs.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/hexagon/gen_tcg_funcs.py b/target/hexagon/gen_tcg_funcs.py
index d72c689..6dea02b 100755
--- a/target/hexagon/gen_tcg_funcs.py
+++ b/target/hexagon/gen_tcg_funcs.py
@@ -548,7 +548,7 @@ def genptr_dst_write_opn(f,regtype, regid, tag):
if (hex_common.is_hvx_reg(regtype)):
if (hex_common.is_new_result(tag)):
genptr_dst_write_ext(f, tag, regtype, regid, "EXT_NEW")
- if (hex_common.is_tmp_result(tag)):
+ elif (hex_common.is_tmp_result(tag)):
genptr_dst_write_ext(f, tag, regtype, regid, "EXT_TMP")
else:
genptr_dst_write_ext(f, tag, regtype, regid, "EXT_DFL")