[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 12/15] tests/tcg: target/mips: Add wrappers for MSA i
From: |
Aleksandar Markovic |
Subject: |
[Qemu-devel] [PULL 12/15] tests/tcg: target/mips: Add wrappers for MSA interleave instructions |
Date: |
Thu, 14 Feb 2019 18:47:21 +0100 |
From: Aleksandar Markovic <address@hidden>
Add wrappers for MSA interleave instructions.
Reviewed-by: Aleksandar Rikalo <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
---
tests/tcg/mips/include/wrappers_msa.h | 39 +++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/tests/tcg/mips/include/wrappers_msa.h
b/tests/tcg/mips/include/wrappers_msa.h
index 8f8d00b..3017ed5 100644
--- a/tests/tcg/mips/include/wrappers_msa.h
+++ b/tests/tcg/mips/include/wrappers_msa.h
@@ -54,4 +54,43 @@ DO_MSA__WD__WS(PCNT_W, pcnt.w)
DO_MSA__WD__WS(PCNT_D, pcnt.d)
+#define DO_MSA__WD__WS_WT(suffix, mnemonic) \
+static inline void do_msa_##suffix(void *input1, void *input2, \
+ void *output) \
+{ \
+ __asm__ volatile ( \
+ "move $t0, %0\n\t" \
+ "ld.d $w11, 0($t0)\n\t" \
+ "move $t0, %1\n\t" \
+ "ld.d $w12, 0($t0)\n\t" \
+ #mnemonic " $w10, $w11, $w12\n\t" \
+ "move $t0, %2\n\t" \
+ "st.d $w10, 0($t0)\n\t" \
+ : \
+ : "r" (input1), "r" (input2), "r" (output) \
+ : "t0", "memory" \
+ ); \
+}
+
+DO_MSA__WD__WS_WT(ILVEV_B, ilvev.b)
+DO_MSA__WD__WS_WT(ILVEV_H, ilvev.h)
+DO_MSA__WD__WS_WT(ILVEV_W, ilvev.w)
+DO_MSA__WD__WS_WT(ILVEV_D, ilvev.d)
+
+DO_MSA__WD__WS_WT(ILVOD_B, ilvod.b)
+DO_MSA__WD__WS_WT(ILVOD_H, ilvod.h)
+DO_MSA__WD__WS_WT(ILVOD_W, ilvod.w)
+DO_MSA__WD__WS_WT(ILVOD_D, ilvod.d)
+
+DO_MSA__WD__WS_WT(ILVL_B, ilvl.b)
+DO_MSA__WD__WS_WT(ILVL_H, ilvl.h)
+DO_MSA__WD__WS_WT(ILVL_W, ilvl.w)
+DO_MSA__WD__WS_WT(ILVL_D, ilvl.d)
+
+DO_MSA__WD__WS_WT(ILVR_B, ilvr.b)
+DO_MSA__WD__WS_WT(ILVR_H, ilvr.h)
+DO_MSA__WD__WS_WT(ILVR_W, ilvr.w)
+DO_MSA__WD__WS_WT(ILVR_D, ilvr.d)
+
+
#endif
--
2.7.4
- [Qemu-devel] [PULL 02/15] target/mips: reimplement SC instruction emulation and use cmpxchg, (continued)
- [Qemu-devel] [PULL 02/15] target/mips: reimplement SC instruction emulation and use cmpxchg, Aleksandar Markovic, 2019/02/14
- [Qemu-devel] [PULL 04/15] target/mips: hold BQL in mips_vpe_wake(), Aleksandar Markovic, 2019/02/14
- [Qemu-devel] [PULL 06/15] target/mips: introduce MTTCG-enabled builds, Aleksandar Markovic, 2019/02/14
- [Qemu-devel] [PULL 07/15] tests/tcg: target/mips: Remove an unnecessary file, Aleksandar Markovic, 2019/02/14
- [Qemu-devel] [PULL 09/15] tests/tcg: target/mips: Add a header with test utilities, Aleksandar Markovic, 2019/02/14
- [Qemu-devel] [PULL 08/15] tests/tcg: target/mips: Add a header with test inputs, Aleksandar Markovic, 2019/02/14
- [Qemu-devel] [PULL 14/15] tests/tcg: target/mips: Add wrappers for MSA logic instructions, Aleksandar Markovic, 2019/02/14
- [Qemu-devel] [PULL 11/15] tests/tcg: target/mips: Add tests for MSA bit counting instructions, Aleksandar Markovic, 2019/02/14
- [Qemu-devel] [PULL 10/15] tests/tcg: target/mips: Add wrappers for MSA bit counting instructions, Aleksandar Markovic, 2019/02/14
- [Qemu-devel] [PULL 05/15] hw/mips_cpc: kick a VP when putting it into Run statewq, Aleksandar Markovic, 2019/02/14
- [Qemu-devel] [PULL 12/15] tests/tcg: target/mips: Add wrappers for MSA interleave instructions,
Aleksandar Markovic <=
- [Qemu-devel] [PULL 15/15] tests/tcg: target/mips: Add tests for MSA logic instructions, Aleksandar Markovic, 2019/02/14
- [Qemu-devel] [PULL 13/15] tests/tcg: target/mips: Add tests for MSA interleave instructions, Aleksandar Markovic, 2019/02/14
- Re: [Qemu-devel] [PULL 00/15] MIPS queue for February 14th, 2019, Peter Maydell, 2019/02/14