I will try later to put this in a proper diff. but I'm pretty busy..

-- -- --

Just to better explain my reasoning here: in thumb the "ne" in ldmnefd
is going to be ignored, since Thumb arch ignores the conditional bits
of all instructions. The Thumb-style assembly for this is simply to
use the "ne" in an IT conditional, and apply that to all necessary
following instructions.

This way, BOTH the ARM and Thumb instruction sets will honor the "ne"
condition on ldmfd.

//Alex

On Wed, Nov 9, 2011 at 8:12 AM, Carmelo AMOROSO <[email protected]> wrote:
> On 09/11/2011 5.28, Alex Pilafian wrote:
>> Hi All,
>>
>> I was trying to cross-compile uClibc for my embedded ARM project
>> today, and I ran into an error here:
>>
>> libc/sysdeps/linux/arm/clone.S:115: Error: thumb conditional instruction
>> should be in IT block -- `ldmnefd sp!,{r4}'
>>
>> I was able to get around this by changing the file clone.S such that
>> the ldmnefd mnemonic is in the IT block (making it a THUMB-only
>> instruction, too).
>>
>> @So, just change this:
>>
>>         ldmnefd sp!, {r4}
>>         IT(t, ne)
>> #if defined(__USE_BX__)
>>         bxne    lr
>> #else
>>         movne   pc, lr
>> #endif
>>
>> @Into this:
>>
>>         IT(tt, ne)
>>         ldmnefd sp!, {r4}
>> #if defined(__USE_BX__)
>>         bxne    lr
>> #else
>>         movne   pc, lr
>> #endif
>>
>> ...and the rest of uClibc will compile normally. Hopefully this saves
>> someone some headache :)
>>
>> //Alex
>> ______
>
> Hi,
> could you please provide a patch, git formatted, please ?
>
> thanks,
> carmelo
>
> _________________________________________
>> uClibc mailing list
>> [email protected]
>> http://lists.busybox.net/mailman/listinfo/uclibc
>>
>
> _______________________________________________
> uClibc mailing list
> [email protected]
> http://lists.busybox.net/mailman/listinfo/uclibc
>
_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to