[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] target/arm: crash on conditional instr in it
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH v2] target/arm: crash on conditional instr in it block |
Date: |
Thu, 16 Aug 2018 08:26:22 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 08/16/2018 05:05 AM, Roman Kapl wrote:
> If an instruction is conditional (like CBZ) and it is executed conditionally
> (using the ITx instruction), a jump to undefined label is generated.
> CBZ in IT block is an unpredictable behavior, and honouring the condition code
> is allowed by the spec in this case (constrained unpredictable, ARMv8, section
> K1.1.7).
>
> Fix the 'skip on condtion' code to create a new label only if it does not
> already exist. Previously multiple labels were created, but only the last one
> of
> them was set.
>
> Signed-off-by: Roman Kapl <address@hidden>
> ---
> v1 -> v2
> Split arm_conditional_skip into arm_gen_condlabel and arm_skip_unless to
> a) cover all usages
> b) do not force callers to ^1 the condition
>
> Add note about CBZ in IT block to the commit message.
>
> target/arm/translate.c | 35 +++++++++++++++++++++--------------
> 1 file changed, 21 insertions(+), 14 deletions(-)
Reviewed-by: Richard Henderson <address@hidden>
r~