[U-Boot] [PATCH 1/2] armv8: apply -mgeneral-regs-only

Dr. Philipp Tomsich philipp.tomsich at theobroma-systems.com
Wed Jul 5 08:37:36 UTC 2017


> On 05 Jul 2017, at 03:23, Peng Fan <peng.fan at nxp.com> wrote:
> 
> 
> 
>> -----Original Message-----
>> From: Tom Rini [mailto:trini at konsulko.com]
>> Sent: Wednesday, July 05, 2017 3:38 AM
>> To: Dr. Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
>> Cc: Peng Fan <peng.fan at nxp.com>; u-boot at lists.denx.de
>> Subject: Re: [U-Boot] [PATCH 1/2] armv8: apply -mgeneral-regs-only
>> 
>> On Tue, Jul 04, 2017 at 06:38:10PM +0200, Dr. Philipp Tomsich wrote:
>>> Tom,
>>> 
>>> Please note that some GCC versions had a code-generation bug when
>>> -mgeneral-regs-only was used (we hit this for a customer in a vendor
>>> GCC we maintain):
>>> 	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64304
>>> 
>>> Until everyone upgrades to a recently recent GCC (or until UBoot
>>> enforces this next January), some people may hit hard-to-reproduce
>>> issues.
>>> 
>>> A better way to suppress SIMD generation would be to use:
>>> 	-march=armv8-a+nosimd
>> 
>> Ah, good to know.  Peng, please re-spin.
> 
> According to https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html,
> There is no +nosimd for armv8-a. I also tried +nosimd,

This is odd. When you look at
	gcc/config/aarch64/aarch64-option-extensions.def
the “simd” option was there since the beginning of time for AArch64 (e.g. on the
gcc_4.8-branch — see https://github.com/gcc-mirror/gcc/blob/gcc-4_8-branch/gcc/config/aarch64/aarch64-option-extensions.def)
and is still there today (see https://github.com/gcc-mirror/gcc/blob/master/gcc/config/aarch64/aarch64-option-extensions.def)

I just tested the “armv8-a+nosimd” specification on (configured as aarch64-*-linux-gnueabi)
4.9.1, 4.9.3, 5.4.0, 6.3.0 and (configured as aarch64-*-elf) 6.3.0 and 7.1.0…
…unfortunately this was all that I could find installed on our target systems.

> There is still "str     q0, [x29,#112] ".  If I use armv8-a+nofp, there is no
> such instructions. Then, do you agree using " armv8-a+nofp “?

I don’t mind if we go with +nofp, but I would like to understand how it comes
that your GCC differs from the FSF-released GCC source tree… this worries
me a bit, as users might encounter similar differences in the field.

> Thanks,
> Peng.
> 
>> 
>>> 
>>> Regards,
>>> Philipp.
>>> 
>>>> On 04 Jul 2017, at 15:32, Tom Rini <trini at konsulko.com> wrote:
>>>> 
>>>> On Mon, Jul 03, 2017 at 09:14:07PM +0800, Peng Fan wrote:
>>>> 
>>>>> Pass -mgeneral-regs-only to GCC, if not compiler may generate
>>>>> instructions that use SIMD registers.
>>>>> 
>>>>> Signed-off-by: Peng Fan <peng.fan at nxp.com>
>>>>> Cc: Albert Aribaud <albert.u.boot at aribaud.net>
>>>>> Cc: Tom Rini <trini at konsulko.com>
>>>> 
>>>> Reviewed-by: Tom Rini <trini at konsulko.com>
>>>> 
>>>> --
>>>> Tom
>>>> _______________________________________________
>>>> U-Boot mailing list
>>>> U-Boot at lists.denx.de
>>>> https://lists.denx.de/listinfo/u-boot
>>> 
>> 
>> --
>> Tom



More information about the U-Boot mailing list