[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] arm/translate.c: Fix adc_CC/sbc_CC implementati
From: |
Laurent Desnogues |
Subject: |
Re: [Qemu-devel] [PATCH] arm/translate.c: Fix adc_CC/sbc_CC implementation |
Date: |
Mon, 25 Feb 2013 18:15:30 +0100 |
On Mon, Feb 25, 2013 at 3:43 PM, Richard Henderson <address@hidden> wrote:
> On 2013-02-25 00:04, Peter Crosthwaite wrote:
>>
>> commits 49b4c31efcce45ab714f286f14fa5d5173f9069d and
>> 2de68a4900ef6eb67380b0c128abfe1976bc66e8 reworked the implementation of
>> adc_CC
>> and sub_CC. The new implementations (on the TCG_TARGET_HAS_add2_i32 code
>> path)
>> are incorrect. The new logic is:
>>
>> CF:NF = 0:A +/- 0:CF
>> CF:NF = CF:A +/- 0:B
>>
>> The lower 32 bits of the intermediate result stored in NF needs to be
>> passes
>> into the second addition in place of A (s/CF:A/CF:NF):
>>
>> CF:NF = 0:A +/- 0:CF
>> CF:NF = CF:NF +/- 0:B
>>
>> This patch fixes the issue.
>>
>> Signed-off-by: Peter Crosthwaite<address@hidden>
>> ---
>> target-arm/translate.c | 4 ++--
>> 1 files changed, 2 insertions(+), 2 deletions(-)
>
>
> Reviewed-by: Richard Henderson <address@hidden>
>
> Sorry for the breakage. Blue, please apply asap.
I'm afraid this fix is not enough as I still can't get my Linux image
to boot after applying it.
Running this, my image boots:
git checkout 49b4c31efcce45ab714f286f14fa5d5173f9069d target-arm
Looking at the new sbc_cc, it seems that if t0=t1 and CF=1,
then CF will be cleared while the old code in the helper did
set it.
Laurent
PS: My image is the vexpress found here:
http://releases.linaro.org/images/linaro-n/alip/11.08