[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 07/11] tcg: Restrict check_size_impl to multiples of
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PULL 07/11] tcg: Restrict check_size_impl to multiples of the line size |
Date: |
Mon, 9 Jul 2018 14:54:31 +0100 |
From: Richard Henderson <address@hidden>
Normally this is automatic in the size restrictions that are placed
on vector sizes coming from the implementation. However, for the
legitimate size tuple [oprsz=8, maxsz=32], we need to clear the final
24 bytes of the vector register. Without this check, do_dup selects
TCG_TYPE_V128 and clears only 16 bytes.
Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Tested-by: Alex Bennée <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
---
tcg/tcg-op-gvec.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/tcg/tcg-op-gvec.c b/tcg/tcg-op-gvec.c
index 22db1590d5d..61c25f57841 100644
--- a/tcg/tcg-op-gvec.c
+++ b/tcg/tcg-op-gvec.c
@@ -287,8 +287,11 @@ void tcg_gen_gvec_4_ptr(uint32_t dofs, uint32_t aofs,
uint32_t bofs,
in units of LNSZ. This limits the expansion of inline code. */
static inline bool check_size_impl(uint32_t oprsz, uint32_t lnsz)
{
- uint32_t lnct = oprsz / lnsz;
- return lnct >= 1 && lnct <= MAX_UNROLL;
+ if (oprsz % lnsz == 0) {
+ uint32_t lnct = oprsz / lnsz;
+ return lnct >= 1 && lnct <= MAX_UNROLL;
+ }
+ return false;
}
static void expand_clr(uint32_t dofs, uint32_t maxsz);
--
2.17.1
- [Qemu-devel] [PULL 00/11] target-arm queue, Peter Maydell, 2018/07/09
- [Qemu-devel] [PULL 03/11] hw/timer/cmsdk-apb-timer: Correct ptimer policy settings, Peter Maydell, 2018/07/09
- [Qemu-devel] [PULL 02/11] ptimer: Add TRIGGER_ONLY_ON_DECREMENT policy option, Peter Maydell, 2018/07/09
- [Qemu-devel] [PULL 01/11] hw/arm/smmu-common: Fix devfn computation in smmu_iommu_mr, Peter Maydell, 2018/07/09
- [Qemu-devel] [PULL 04/11] hw/timer/cmsdk-apb-timer: Correctly identify and set one-shot mode, Peter Maydell, 2018/07/09
- [Qemu-devel] [PULL 05/11] hw/timer/cmsdk-apb-timer: run or stop timer on writes to RELOAD and VALUE, Peter Maydell, 2018/07/09
- [Qemu-devel] [PULL 06/11] target/arm: Suppress Coverity warning for PRF, Peter Maydell, 2018/07/09
- [Qemu-devel] [PULL 07/11] tcg: Restrict check_size_impl to multiples of the line size,
Peter Maydell <=
- [Qemu-devel] [PULL 10/11] boards.h: Remove doc comment reference to nonexistent function, Peter Maydell, 2018/07/09
- [Qemu-devel] [PULL 08/11] target/arm: Fix do_predset for large VL, Peter Maydell, 2018/07/09
- [Qemu-devel] [PULL 11/11] hw/net/dp8393x: don't make prom region 'nomigrate', Peter Maydell, 2018/07/09
- [Qemu-devel] [PULL 09/11] hw/sd/omap_mmc: Split 'pseudo-reset' from 'power-on-reset', Peter Maydell, 2018/07/09
- Re: [Qemu-devel] [PULL 00/11] target-arm queue, Peter Maydell, 2018/07/09