diff mbox

[ARM] PR target/68617 Fix armv6 unaligned_access with attribute thumb

Message ID 565D8B2C.2050501@arm.com
State New
Headers show

Commit Message

Kyrylo Tkachov Dec. 1, 2015, 11:57 a.m. UTC
Hi Christian,

On 01/12/15 09:18, Christian Bruel wrote:
> Hi,
>
> This patches fixes the PR my making the unaligned_access flag sensitive to the attribute target, since some armv6 might use unaligned loads depending on the TARGET_32BIT flag.
>
> OK for stage3 ?
>

Comments

Christian Bruel Dec. 1, 2015, 12:28 p.m. UTC | #1
On 12/01/2015 12:57 PM, Kyrill Tkachov wrote:
> Hi Christian,
>
> On 01/12/15 09:18, Christian Bruel wrote:
>> Hi,
>>
>> This patches fixes the PR my making the unaligned_access flag sensitive to the attribute target, since some armv6 might use unaligned loads depending on the TARGET_32BIT flag.
>>
>> OK for stage3 ?
>>
>
> Index: gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c
> ===================================================================
> --- gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c	(revision 0)
> +++ gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c	(working copy)
> @@ -0,0 +1,19 @@
> +/* PR target/68617
> +   Verify that unaligned_access is correctly with attribute target.  */
> +/* { dg-do compile } */
> +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" } { "-march=armv6" } } */
> +/* { dg-options "-Os -mfloat-abi=softfp -mtp=soft" } */
> +/* { dg-add-options arm_arch_v6 } */
>
>
> Do you need the -mtp=soft ?

I think so. When auto, the TP mode is "TP_SOFT" for arm and "TP_CP15" 
for thumb, which cannot be thumb1. To avoid this kind of discrepancy I 
prefer to force it.

this is guarded by the lines @arm.c:2759:

   if (TARGET_HARD_TP && TARGET_THUMB1_P (flags))
     error ("can not use -mtp=cp15 with 16-bit Thumb");
>
> This is ok for trunk.
> Thanks for picking this up.
>
> Kyrill
>
Kyrylo Tkachov Dec. 1, 2015, 12:29 p.m. UTC | #2
On 01/12/15 12:28, Christian Bruel wrote:
>
>
> On 12/01/2015 12:57 PM, Kyrill Tkachov wrote:
>> Hi Christian,
>>
>> On 01/12/15 09:18, Christian Bruel wrote:
>>> Hi,
>>>
>>> This patches fixes the PR my making the unaligned_access flag sensitive to the attribute target, since some armv6 might use unaligned loads depending on the TARGET_32BIT flag.
>>>
>>> OK for stage3 ?
>>>
>>
>> Index: gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c
>> ===================================================================
>> --- gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c (revision 0)
>> +++ gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c (working copy)
>> @@ -0,0 +1,19 @@
>> +/* PR target/68617
>> +   Verify that unaligned_access is correctly with attribute target.  */
>> +/* { dg-do compile } */
>> +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" } { "-march=armv6" } } */
>> +/* { dg-options "-Os -mfloat-abi=softfp -mtp=soft" } */
>> +/* { dg-add-options arm_arch_v6 } */
>>
>>
>> Do you need the -mtp=soft ?
>
> I think so. When auto, the TP mode is "TP_SOFT" for arm and "TP_CP15" for thumb, which cannot be thumb1. To avoid this kind of discrepancy I prefer to force it.
>
> this is guarded by the lines @arm.c:2759:
>
>   if (TARGET_HARD_TP && TARGET_THUMB1_P (flags))
>     error ("can not use -mtp=cp15 with 16-bit Thumb");


Ok, thanks, I was just curious.
Kyrill


>>
>> This is ok for trunk.
>> Thanks for picking this up.
>>
>> Kyrill
>>
>
diff mbox

Patch

Index: gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c
===================================================================
--- gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c	(revision 0)
+++ gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c	(working copy)
@@ -0,0 +1,19 @@ 
+/* PR target/68617
+   Verify that unaligned_access is correctly with attribute target.  */
+/* { dg-do compile } */
+/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" } { "-march=armv6" } } */
+/* { dg-options "-Os -mfloat-abi=softfp -mtp=soft" } */
+/* { dg-add-options arm_arch_v6 } */


Do you need the -mtp=soft ?

This is ok for trunk.
Thanks for picking this up.

Kyrill