aboutsummaryrefslogtreecommitdiff
path: root/target/hexagon/hex_common.py
diff options
context:
space:
mode:
authorTaylor Simpson <tsimpson@quicinc.com>2021-05-18 16:45:18 -0500
committerTaylor Simpson <tsimpson@quicinc.com>2021-11-03 16:01:29 -0500
commit144da35776e33a25c7783b6b04ed77e375b1c87c (patch)
tree7b28ccf529aee8e2ad560c545024f9a971c719ed /target/hexagon/hex_common.py
parente3d143e98e53a7bc8d76d340a5c471567c342a3f (diff)
downloadqemu-144da35776e33a25c7783b6b04ed77e375b1c87c.zip
qemu-144da35776e33a25c7783b6b04ed77e375b1c87c.tar.gz
qemu-144da35776e33a25c7783b6b04ed77e375b1c87c.tar.bz2
Hexagon HVX (target/hexagon) semantics generator
Add HVX support to the semantics generator Acked-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Taylor Simpson <tsimpson@quicinc.com>
Diffstat (limited to 'target/hexagon/hex_common.py')
-rwxr-xr-xtarget/hexagon/hex_common.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py
index a84b003..c81aca8 100755
--- a/target/hexagon/hex_common.py
+++ b/target/hexagon/hex_common.py
@@ -145,6 +145,9 @@ def compute_tag_immediates(tag):
## P predicate register
## R GPR register
## M modifier register
+## Q HVX predicate vector
+## V HVX vector register
+## O HVX new vector register
## regid can be one of the following
## d, e destination register
## dd destination register pair
@@ -180,6 +183,9 @@ def is_readwrite(regid):
def is_scalar_reg(regtype):
return regtype in "RPC"
+def is_hvx_reg(regtype):
+ return regtype in "VQ"
+
def is_old_val(regtype, regid, tag):
return regtype+regid+'V' in semdict[tag]
@@ -203,6 +209,13 @@ def need_ea(tag):
def skip_qemu_helper(tag):
return tag in overrides.keys()
+def is_tmp_result(tag):
+ return ('A_CVI_TMP' in attribdict[tag] or
+ 'A_CVI_TMP_DST' in attribdict[tag])
+
+def is_new_result(tag):
+ return ('A_CVI_NEW' in attribdict[tag])
+
def imm_name(immlett):
return "%siV" % immlett