From 43fa8d8870fdf480d507357fa3f82c11343ebc3b Mon Sep 17 00:00:00 2001 From: Quan Nguyen Date: Tue, 29 Apr 2014 00:42:06 -0700 Subject: Add vf[ls](|seg)(|st)h and friends --- hwacha/encodings_hwacha.h | 12 ++++++++++-- hwacha/insns/vflsegh.h | 1 + hwacha/insns/vflsegsth.h | 1 + hwacha/insns/vfssegh.h | 1 + hwacha/insns/vfssegsth.h | 1 + hwacha/opcodes_hwacha.h | 4 ++++ 6 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 hwacha/insns/vflsegh.h create mode 100644 hwacha/insns/vflsegsth.h create mode 100644 hwacha/insns/vfssegh.h create mode 100644 hwacha/insns/vfssegsth.h 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) -- cgit v1.1