Re: [PATCH PR59593] [arm] Backport r217772 r217826 to 4.8 4.9

2014-12-02 Thread Ramana Radhakrishnan



On 29/11/14 06:50, Chen Shanyao wrote:

I've backported this fix to 4.8  4.9 branch.
These patches have been tested for armeb-none-eabi-gcc/g++ with qemu,
and both the test results were ok.



The Changelog should mention all authors of the original patches i.e. 
include my name.


Otherwise this is OK unless an RM objects in the next 24 hours.



regards
Ramana


[PATCH PR59593] [arm] Backport r217772 r217826 to 4.8 4.9

2014-11-28 Thread Chen Shanyao

I've backported this fix to 4.8  4.9 branch.
These patches have been tested for armeb-none-eabi-gcc/g++ with qemu, 
and both the test results were ok.
--- gcc/ChangeLog.ori   2014-11-28 17:30:43.0 +0800
+++ gcc/ChangeLog   2014-11-28 17:30:55.0 +0800
@@ -1,3 +1,15 @@
+2014-11-28  Felix Yang  felix.y...@huawei.com
+   Shanyao Chen  chenshan...@huawei.com
+
+Backport from mainline
+2014-11-19  Felix Yang  felix.y...@huawei.com
+Shanyao Chen  chenshan...@huawei.com
+
+PR target/59593
+* config/arm/arm.md (define_attr arch): Add v6t2.
+(define_attr arch_enabled): Add test for the above.
+(*movhi_insn_arch4): Add new alternative.
+
 2014-11-19  Uros Bizjak  ubiz...@gmail.com
 
PR target/63947
--- gcc/config/arm/arm.md.ori   2014-11-28 17:33:12.0 +0800
+++ gcc/config/arm/arm.md   2014-11-29 10:34:28.0 +0800
@@ -92,9 +92,11 @@
 ; This can be a for ARM, t for either of the Thumbs, 32 for
 ; TARGET_32BIT, t1 or t2 to specify a specific Thumb mode.  v6
 ; for ARM or Thumb-2 with arm_arch6, and nov6 for ARM without
-; arm_arch6.  This attribute is used to compute attribute enabled,
-; use type any to enable an alternative in all cases.
-(define_attr arch 
any,a,t,32,t1,t2,v6,nov6,onlya8,neon_onlya8,nota8,neon_nota8,iwmmxt,iwmmxt2
+; arm_arch6.  v6t2 for Thumb-2 with arm_arch6.  This attribute is
+; used to compute attribute enabled, use type any to enable an
+; alternative in all cases.
+
+(define_attr arch 
any,a,t,32,t1,t2,v6,nov6,v6t2,onlya8,neon_onlya8,nota8,neon_nota8,iwmmxt,iwmmxt2
   (const_string any))
 
 (define_attr arch_enabled no,yes
@@ -129,6 +131,10 @@
  (match_test TARGET_32BIT  !arm_arch6))
 (const_string yes)
 
+(and (eq_attr arch v6t2)
+ (match_test TARGET_32BIT  arm_arch6  arm_arch_thumb2))
+(const_string yes)
+
 (and (eq_attr arch onlya8)
  (eq_attr tune cortexa8))
 (const_string yes)
@@ -6282,8 +6288,8 @@
 
 ;; Pattern to recognize insn generated default case above
 (define_insn *movhi_insn_arch4
-  [(set (match_operand:HI 0 nonimmediate_operand =r,r,m,r)
-   (match_operand:HI 1 general_operand  rI,K,r,mi))]
+  [(set (match_operand:HI 0 nonimmediate_operand =r,r,r,m,r)
+   (match_operand:HI 1 general_operand  rI,K,n,r,mi))]
   TARGET_ARM
 arm_arch4
 (register_operand (operands[0], HImode)
@@ -6291,17 +6297,20 @@
   @
mov%?\\t%0, %1\\t%@ movhi
mvn%?\\t%0, #%B1\\t%@ movhi
+   movw%?\\t%0, %L1\\t%@ movhi
str%(h%)\\t%1, %0\\t%@ movhi
ldr%(h%)\\t%0, %1\\t%@ movhi
   [(set_attr predicable yes)
-   (set_attr insn mov,mvn,*,*)
-   (set_attr pool_range *,*,*,256)
-   (set_attr neg_pool_range *,*,*,244)
+   (set_attr insn mov,mvn,mov,*,*)
+   (set_attr pool_range *,*,*,*,256)
+   (set_attr neg_pool_range *,*,*,*,244)
+   (set_attr arch *,*,v6t2,*,*)
(set_attr_alternative type
  [(if_then_else (match_operand 1 const_int_operand 
)
 (const_string simple_alu_imm )
 (const_string *))
   (const_string simple_alu_imm)
+  (const_string simple_alu_imm)
   (const_string store1)
   (const_string load1)])]
 )
--- gcc/ChangeLog.ori   2014-11-28 17:20:38.0 +0800
+++ gcc/ChangeLog   2014-11-28 17:21:14.0 +0800
@@ -1,3 +1,15 @@
+2014-11-28  Felix Yang  felix.y...@huawei.com
+   Shanyao Chen  chenshan...@huawei.com
+
+Backport from mainline
+2014-11-19  Felix Yang  felix.y...@huawei.com
+Shanyao Chen  chenshan...@huawei.com
+
+PR target/59593
+* config/arm/arm.md (define_attr arch): Add v6t2.
+(define_attr arch_enabled): Add test for the above.
+(*movhi_insn_arch4): Add new alternative.
+
 2014-11-26  Richard Biener  rguent...@suse.de
 
PR middle-end/63738
--- gcc/config/arm/arm.md.ori   2014-11-28 09:34:21.0 +0800
+++ gcc/config/arm/arm.md   2014-11-29 10:28:13.0 +0800
@@ -125,9 +125,10 @@
 ; This can be a for ARM, t for either of the Thumbs, 32 for
 ; TARGET_32BIT, t1 or t2 to specify a specific Thumb mode.  v6
 ; for ARM or Thumb-2 with arm_arch6, and nov6 for ARM without
-; arm_arch6.  This attribute is used to compute attribute enabled,
-; use type any to enable an alternative in all cases.
-(define_attr arch 
any,a,t,32,t1,t2,v6,nov6,neon_for_64bits,avoid_neon_for_64bits,iwmmxt,iwmmxt2
+; arm_arch6.  v6t2 for Thumb-2 with arm_arch6.  This attribute is
+; used to compute attribute enabled, use type any to enable an
+; alternative in all cases.
+(define_attr arch 
any,a,t,32,t1,t2,v6,nov6,v6t2,neon_for_64bits,avoid_neon_for_64bits,iwmmxt,iwmmxt2
   (const_string any))
 
 (define_attr arch_enabled no,yes
@@ -162,6 +163,10 @@
  (match_test 

Re: [PATCH PR59593] [arm] Backport r217772 r217826 to 4.8 4.9

2014-11-28 Thread Yangfei (Felix)
 I've backported this fix to 4.8  4.9 branch.
 These patches have been tested for armeb-none-eabi-gcc/g++ with qemu, and
 both the test results were ok.

Looks OK with me.  Ramana, is this OK for the 4.8  4.9 branches?  Thanks.