[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 09/23] tests/tcg/xtensa: conditionalize cache option
From: |
Max Filippov |
Subject: |
[Qemu-devel] [PATCH 09/23] tests/tcg/xtensa: conditionalize cache option tests |
Date: |
Mon, 18 Feb 2019 22:10:57 -0800 |
Make data/instruction tests conditional on the presence of
data/instruction cache, whether they're lockable and whether data cache
is writeback.
Signed-off-by: Max Filippov <address@hidden>
---
tests/tcg/xtensa/test_cache.S | 62 ++++++++++++++++++++++++++++++++++---------
1 file changed, 50 insertions(+), 12 deletions(-)
diff --git a/tests/tcg/xtensa/test_cache.S b/tests/tcg/xtensa/test_cache.S
index 6b2df9734b2e..7e6ba4c18a2b 100644
--- a/tests/tcg/xtensa/test_cache.S
+++ b/tests/tcg/xtensa/test_cache.S
@@ -7,6 +7,8 @@
test_suite cache
+#if XCHAL_HAVE_PTP_MMU
+
.macro pf_op op
\op a2, 0
\op a3, 0
@@ -18,14 +20,23 @@ test prefetch
movi a3, 0xd8000000 /* non-cacheable */
movi a4, 0x00001235 /* unmapped */
+#if XCHAL_DCACHE_SIZE
pf_op dpfr
pf_op dpfro
pf_op dpfw
pf_op dpfwo
+#endif
+#ifdef XCHAL_ICACHE_SIZE
pf_op ipf
-
+#endif
+#if XCHAL_HAVE_PTP_MMU && !XCHAL_HAVE_SPANNING_WAY
+#if XCHAL_DCACHE_LINE_LOCKABLE
dpfl a2, 0
+#endif
+#if XCHAL_ICACHE_LINE_LOCKABLE
ipfl a2, 0
+#endif
+#endif
test_end
.macro cache_fault op, addr, exc_code
@@ -46,10 +57,16 @@ test_end
assert eq, a2, a3
.endm
+#if XCHAL_HAVE_PTP_MMU && !XCHAL_HAVE_SPANNING_WAY
+
+#if XCHAL_DCACHE_LINE_LOCKABLE
test dpfl_tlb_miss
cache_fault dpfl, 0x00002345, 24
test_end
+#endif
+#if XCHAL_DCACHE_SIZE
+#if XCHAL_DCACHE_IS_WRITEBACK
test dhwb_tlb_miss
cache_fault dhwb, 0x00002345, 24
test_end
@@ -57,16 +74,21 @@ test_end
test dhwbi_tlb_miss
cache_fault dhwbi, 0x00002345, 24
test_end
+#endif
test dhi_tlb_miss
cache_fault dhi, 0x00002345, 24
test_end
+#if XCHAL_DCACHE_LINE_LOCKABLE
test dhu_tlb_miss
cache_fault dhu, 0x00002345, 24
test_end
+#endif
+#endif
-
+#if XCHAL_ICACHE_SIZE
+#if XCHAL_ICACHE_LINE_LOCKABLE
test ipfl_tlb_miss
cache_fault ipfl, 0x00002345, 16
test_end
@@ -74,24 +96,40 @@ test_end
test ihu_tlb_miss
cache_fault ihu, 0x00002345, 16
test_end
+#endif
test ihi_tlb_miss
cache_fault ihi, 0x00002345, 16
test_end
+#endif
+
+#endif
+
+#endif
test_suite_end
-.macro cache_all op1, op2, size, linesize
+cache_unlock_invalidate:
+#if XCHAL_DCACHE_SIZE
movi a2, 0
- movi a3, \size
+ movi a3, XCHAL_DCACHE_SIZE
1:
- \op1 a2, 0
- \op2 a2, 0
- addi a2, a2, \linesize
+#if XCHAL_DCACHE_LINE_LOCKABLE
+ diu a2, 0
+#endif
+ dii a2, 0
+ addi a2, a2, XCHAL_DCACHE_LINESIZE
bltu a2, a3, 1b
-.endm
-
-cache_unlock_invalidate:
- cache_all diu, dii, XCHAL_DCACHE_SIZE, XCHAL_DCACHE_LINESIZE
- cache_all iiu, iii, XCHAL_ICACHE_SIZE, XCHAL_ICACHE_LINESIZE
+#endif
+#if XCHAL_ICACHE_SIZE
+ movi a2, 0
+ movi a3, XCHAL_ICACHE_SIZE
+1:
+#if XCHAL_ICACHE_LINE_LOCKABLE
+ iiu a2, 0
+#endif
+ iii a2, 0
+ addi a2, a2, XCHAL_ICACHE_LINESIZE
+ bltu a2, a3, 1b
+#endif
ret
--
2.11.0
- [Qemu-devel] [PATCH 00/23] tests/tcg/xtensa: conditionalize xtensa tests, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 01/23] target/xtensa: implement PREFCTL SR, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 04/23] tests/tcg/xtensa: support configs with LITBASE, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 02/23] tests/tcg/xtensa: indicate failed tests, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 03/23] tests/tcg/xtensa: support configurations w/o vecbase, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 06/23] tests/tcg/xtensa: fix endianness issues in test_b, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 05/23] tests/tcg/xtensa: don't use optional opcodes in generic code, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 07/23] tests/tcg/xtensa: enable boolean tests, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 08/23] tests/tcg/xtensa: conditionalize debug option tests, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 09/23] tests/tcg/xtensa: conditionalize cache option tests,
Max Filippov <=
- [Qemu-devel] [PATCH 10/23] tests/tcg/xtensa: add straightforward conditionals, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 16/23] tests/tcg/xtensa: conditionalize windowed register tests, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 13/23] tests/tcg/xtensa: conditionalize and expand SR tests, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 18/23] tests/tcg/xtensa: add test for FLIX, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 11/23] tests/tcg/xtensa: conditionalize interrupt tests, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 12/23] tests/tcg/xtensa: conditionalize timer/CCOUNT tests, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 21/23] tests/tcg/xtensa: add FP0 group conversion tests, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 14/23] tests/tcg/xtensa: fix SR tests for big endian configs, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 15/23] tests/tcg/xtensa: conditionalize and fix s32c1i tests, Max Filippov, 2019/02/19
- [Qemu-devel] [PATCH 19/23] tests/tcg/xtensa: add LSCI/LSCX group tests, Max Filippov, 2019/02/19