aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuan Nguyen <quannguyen@berkeley.edu>2014-04-29 00:42:06 -0700
committerQuan Nguyen <quannguyen@berkeley.edu>2014-04-29 00:42:06 -0700
commit43fa8d8870fdf480d507357fa3f82c11343ebc3b (patch)
treeb526b79494e5622fcc95e4d63b3a901e13721faf
parente23899eae22505d001f94e9e0d00f7abc3191475 (diff)
downloadspike-mvp.zip
spike-mvp.tar.gz
spike-mvp.tar.bz2
Add vf[ls](|seg)(|st)h and friendsmvp
-rw-r--r--hwacha/encodings_hwacha.h12
-rw-r--r--hwacha/insns/vflsegh.h1
-rw-r--r--hwacha/insns/vflsegsth.h1
-rw-r--r--hwacha/insns/vfssegh.h1
-rw-r--r--hwacha/insns/vfssegsth.h1
-rw-r--r--hwacha/opcodes_hwacha.h4
6 files changed, 18 insertions, 2 deletions
diff --git a/hwacha/encodings_hwacha.h b/hwacha/encodings_hwacha.h
index 11fa889..7caf6a1 100644
--- a/hwacha/encodings_hwacha.h
+++ b/hwacha/encodings_hwacha.h
@@ -70,14 +70,18 @@
#define MASK_VF 0x1f0707f
#define MASK_VFLSEGD 0x1ff0707f
+#define MASK_VFLSEGH 0x1ff0707f
#define MASK_VFLSEGSTD 0x1e00707f
+#define MASK_VFLSEGSTH 0x1e00707f
#define MASK_VFLSEGSTW 0x1e00707f
#define MASK_VFLSEGW 0x1ff0707f
#define MASK_VFMVV 0xfff0707f
#define MASK_VFMSV_S 0xfff0707f
#define MASK_VFMSV_D 0xfff0707f
#define MASK_VFSSEGD 0x1ff0707f
+#define MASK_VFSSEGH 0x1ff0707f
#define MASK_VFSSEGSTD 0x1e00707f
+#define MASK_VFSSEGSTH 0x1e00707f
#define MASK_VFSSEGSTW 0x1e00707f
#define MASK_VFSSEGW 0x1ff0707f
#define MASK_VGETCFG 0xfffff07f
@@ -118,14 +122,18 @@
#define MATCH_VF 0x10202b
#define MATCH_VFLSEGD 0x1600205b
+#define MATCH_VFLSEGH 0x1200205b
#define MATCH_VFLSEGSTD 0x1600305b
+#define MATCH_VFLSEGSTH 0x1200305b
#define MATCH_VFLSEGSTW 0x1400305b
#define MATCH_VFLSEGW 0x1400205b
-#define MATCH_VFMVV 0x1000002b
-#define MATCH_VFMSV_S 0x1000202b
#define MATCH_VFMSV_D 0x1200202b
+#define MATCH_VFMSV_S 0x1000202b
+#define MATCH_VFMVV 0x1000002b
#define MATCH_VFSSEGD 0x1600207b
+#define MATCH_VFSSEGH 0x1200207b
#define MATCH_VFSSEGSTD 0x1600307b
+#define MATCH_VFSSEGSTH 0x1200307b
#define MATCH_VFSSEGSTW 0x1400307b
#define MATCH_VFSSEGW 0x1400207b
#define MATCH_VGETCFG 0x400b
diff --git a/hwacha/insns/vflsegh.h b/hwacha/insns/vflsegh.h
new file mode 100644
index 0000000..383ae00
--- /dev/null
+++ b/hwacha/insns/vflsegh.h
@@ -0,0 +1 @@
+VEC_SEG_LOAD(FPR, load_int16, 2);
diff --git a/hwacha/insns/vflsegsth.h b/hwacha/insns/vflsegsth.h
new file mode 100644
index 0000000..9ffc959
--- /dev/null
+++ b/hwacha/insns/vflsegsth.h
@@ -0,0 +1 @@
+VEC_SEG_ST_LOAD(FPR, load_int16, XS2, 2);
diff --git a/hwacha/insns/vfssegh.h b/hwacha/insns/vfssegh.h
new file mode 100644
index 0000000..309b609
--- /dev/null
+++ b/hwacha/insns/vfssegh.h
@@ -0,0 +1 @@
+VEC_SEG_STORE(FPR, store_uint16, 2);
diff --git a/hwacha/insns/vfssegsth.h b/hwacha/insns/vfssegsth.h
new file mode 100644
index 0000000..b53ffaf
--- /dev/null
+++ b/hwacha/insns/vfssegsth.h
@@ -0,0 +1 @@
+VEC_SEG_ST_STORE(FPR, store_uint16, XS2, 2);
diff --git a/hwacha/opcodes_hwacha.h b/hwacha/opcodes_hwacha.h
index b6dbe8b..cb72652 100644
--- a/hwacha/opcodes_hwacha.h
+++ b/hwacha/opcodes_hwacha.h
@@ -5,6 +5,8 @@ DECLARE_INSN(vflsegd, MATCH_VFLSEGD, MASK_VFLSEGD)
DECLARE_INSN(vflsegstd, MATCH_VFLSEGSTD, MASK_VFLSEGSTD)
DECLARE_INSN(vflsegstw, MATCH_VFLSEGSTW, MASK_VFLSEGSTW)
DECLARE_INSN(vflsegw, MATCH_VFLSEGW, MASK_VFLSEGW)
+DECLARE_INSN(vflsegsth, MATCH_VFLSEGSTH, MASK_VFLSEGSTH)
+DECLARE_INSN(vflsegh, MATCH_VFLSEGH, MASK_VFLSEGH)
DECLARE_INSN(vfmsv_d, MATCH_VFMSV_D, MASK_VFMSV_D)
DECLARE_INSN(vfmsv_s, MATCH_VFMSV_S, MASK_VFMSV_S)
DECLARE_INSN(vfmvv, MATCH_VFMVV, MASK_VFMVV)
@@ -28,6 +30,8 @@ DECLARE_INSN(vlsegstw, MATCH_VLSEGSTW, MASK_VLSEGSTW)
DECLARE_INSN(vlsegstwu, MATCH_VLSEGSTWU, MASK_VLSEGSTWU)
DECLARE_INSN(vlsegw, MATCH_VLSEGW, MASK_VLSEGW)
DECLARE_INSN(vlsegwu, MATCH_VLSEGWU, MASK_VLSEGWU)
+DECLARE_INSN(vfssegh, MATCH_VFSSEGH, MASK_VFSSEGH)
+DECLARE_INSN(vfssegsth, MATCH_VFSSEGSTH, MASK_VFSSEGSTH)
DECLARE_INSN(vmsv, MATCH_VMSV, MASK_VMSV)
DECLARE_INSN(vmvv, MATCH_VMVV, MASK_VMVV)
DECLARE_INSN(vsetcfg, MATCH_VSETCFG, MASK_VSETCFG)