This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][ARM] Optimized 64-bit multiplication for THUMB-1


Hi Paul,

   Thank you very much for your review and comments.  I have fixed the
push/pop and use of 2-argument code in 32-bit code.  I am not quite
sure what the problem in the __thumb2__ test is.  I built arm-eabi-gcc
with arches armv4, armv5te, armv7-a and no-arch and all build was
successful.  I did change the test so that forcing ARM mode is only
done if:

-ARM mode has UMULL instruction
-we are compiling for THUMB-1
-interworking is enabled.

Attached is the updated patch.

-Doug


在 2010年10月23日上午2:20,Paul Brook <paul@codesourcery.com> 寫道:
>> +/* Force using ARM code if it is possible except for THUMB2 target. */
>> +#if defined(USE_FAST_MULDI3) && !defined(__thumb2__)
>> +     ARM_FUNC_START muldi3
>
> The !__thumb2__ test is wrong. I'm surprised this even compiles.
>
>>+      mul     xxh, yyl
>>...
>>+      add     xxh, yyh
>
> Please use the proper 3-argument form in 32-bit code.
>
>>+      push    {r4, r5, r6, r7}
>
> Older assemblers do not support push/pop in ARM mode.
> Use do_push/do_pop.
>
> Paul
>

Attachment: patch-mul-v2.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]