mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 08:43:55 -06:00
target/arm: Enforce alignment for VLDn (all lanes)
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210419202257.161730-23-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
6cd623d166
commit
a8502b37f6
3 changed files with 44 additions and 9 deletions
|
@ -908,6 +908,21 @@ static inline void store_reg_from_load(DisasContext *s, int reg, TCGv_i32 var)
|
|||
#define IS_USER_ONLY 0
|
||||
#endif
|
||||
|
||||
MemOp pow2_align(unsigned i)
|
||||
{
|
||||
static const MemOp mop_align[] = {
|
||||
0, MO_ALIGN_2, MO_ALIGN_4, MO_ALIGN_8, MO_ALIGN_16,
|
||||
/*
|
||||
* FIXME: TARGET_PAGE_BITS_MIN affects TLB_FLAGS_MASK such
|
||||
* that 256-bit alignment (MO_ALIGN_32) cannot be supported:
|
||||
* see get_alignment_bits(). Enforce only 128-bit alignment for now.
|
||||
*/
|
||||
MO_ALIGN_16
|
||||
};
|
||||
g_assert(i < ARRAY_SIZE(mop_align));
|
||||
return mop_align[i];
|
||||
}
|
||||
|
||||
/*
|
||||
* Abstractions of "generate code to do a guest load/store for
|
||||
* AArch32", where a vaddr is always 32 bits (and is zero
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue