Patchwork [PING] Fix for PR 61561

login
register
mail settings
Submitter Marat Zakirov
Date July 17, 2014, 11:22 a.m.
Message ID <53C7B202.3070401@samsung.com>
Download mbox | patch
Permalink /patch/371071/
State New
Headers show

Comments

Marat Zakirov - July 17, 2014, 11:22 a.m.
On 07/16/2014 01:32 PM, Kyrill Tkachov wrote:
>
> On 16/07/14 10:22, Marat Zakirov wrote:
>> Christophe,
>>
>> Please look at a new patch.  Draft tests are OK.
>> I'll ask your commit approval when full regression (ARM/thumb1/thumb2)
>> tests are done.
> Hi Marat,
>
> I was about to propose the thumb2.md hunk myself, but I'll defer to 
> the arm maintainers to comment on the other parts.
>
> Also, in the ChangeLog it is helpful to specify which patterns are 
> being affected, so in your case it would be something like:
>
>     * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
>     (*thumb1_movqi_insn): Likewise.
>     * config/arm/thumb2.md (*thumb2_movhi_insn): Ditto.
>
>
> Kyrill
>
>
Christophe, Kirill,

finally I've finished regression testing.
Please check if my patch is OK for trunk.

The following configures were used:

configure --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu 
--target=arm-linux-gnueabi  --with-interwork --enable-long-long 
--enable-languages=c,c++,fortran --enable-shared --with-gnu-as 
--with-gnu-ld --with-arch=$ARCH --with-mode=$MODE

Thumb-1

$ARCH=armv4t
$MODE=thumb

Thumb-2

$ARCH=armv7
$MODE=thumb

ARM

$ARCH=armv7-a
$MODE=arm

No regressions detected, test pr61561.c passed in all cases.

Thank you all.
--Marat

Patch

gcc/ChangeLog:

2014-07-16  Marat Zakirov  <m.zakirov@samsung.com>

	* config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
	(*thumb1_movqi_insn): Likewise.
	* config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.

diff --git a/gcc/config/arm/thumb1.md b/gcc/config/arm/thumb1.md
index c044fd5..47b5cbd 100644
--- a/gcc/config/arm/thumb1.md
+++ b/gcc/config/arm/thumb1.md
@@ -708,7 +708,7 @@ 
 
 (define_insn "*thumb1_movhi_insn"
   [(set (match_operand:HI 0 "nonimmediate_operand" "=l,l,m,*r,*h,l")
-	(match_operand:HI 1 "general_operand"       "l,m,l,*h,*r,I"))]
+	(match_operand:HI 1 "general_operand"       "lk,m,l,*h,*r,I"))]
   "TARGET_THUMB1
    && (   register_operand (operands[0], HImode)
        || register_operand (operands[1], HImode))"
@@ -762,7 +762,7 @@ 
 
 (define_insn "*thumb1_movqi_insn"
   [(set (match_operand:QI 0 "nonimmediate_operand" "=l,l,m,*r,*h,l")
-	(match_operand:QI 1 "general_operand"      "l, m,l,*h,*r,I"))]
+	(match_operand:QI 1 "general_operand"      "lk, m,l,*h,*r,I"))]
   "TARGET_THUMB1
    && (   register_operand (operands[0], QImode)
        || register_operand (operands[1], QImode))"
diff --git a/gcc/config/arm/thumb2.md b/gcc/config/arm/thumb2.md
index 6ea0810..7228069 100644
--- a/gcc/config/arm/thumb2.md
+++ b/gcc/config/arm/thumb2.md
@@ -318,7 +318,7 @@ 
 ;; of the messiness associated with the ARM patterns.
 (define_insn "*thumb2_movhi_insn"
   [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,l,r,m,r")
-	(match_operand:HI 1 "general_operand"      "r,I,Py,n,r,m"))]
+	(match_operand:HI 1 "general_operand"      "rk,I,Py,n,r,m"))]
   "TARGET_THUMB2
   && (register_operand (operands[0], HImode)
      || register_operand (operands[1], HImode))"