From b0ea54f3f995754881e0ea6651133aa7b58eeaa2 Mon Sep 17 00:00:00 2001
From: cltang <cltang@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 22 Sep 2015 12:23:20 +0000
Subject: [PATCH] nios2_legitimize_address 2015-09-22  Chung-Lin Tang 
 <cltang@codesourcery.com>

	Backport from mainline
	2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/nios2.c (nios2_legitimize_address): When handling
	'reg + reloc' cases, allow first operand to be non-REG, and use
	force_reg() to enforce address pattern.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@228013 138bc75d-0d04-0410-961f-82ee72b054a4

Fixes:
http://autobuild.buildroot.net/results/901/90186d1fe134b804c0101554296b1235dc0ccbb0

[backported to 4.9.3]
Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
 gcc/config/nios2/nios2.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/config/nios2/nios2.c b/gcc/config/nios2/nios2.c
index 047b615..41dd6f9 100644
--- a/gcc/config/nios2/nios2.c
+++ b/gcc/config/nios2/nios2.c
@@ -1786,15 +1786,15 @@ nios2_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED,
 
      Which will be output as '%tls_le(var+48)(r23)' in assembly.  */
   if (GET_CODE (x) == PLUS
-      && GET_CODE (XEXP (x, 0)) == REG
       && GET_CODE (XEXP (x, 1)) == CONST)
     {
-      rtx unspec, offset, reg = XEXP (x, 0);
+      rtx unspec, offset;
       split_const (XEXP (x, 1), &unspec, &offset);
       if (GET_CODE (unspec) == UNSPEC
 	  && !nios2_large_offset_p (XINT (unspec, 1))
 	  && offset != const0_rtx)
 	{
+	  rtx reg = force_reg (Pmode, XEXP (x, 0));
 	  unspec = copy_rtx (unspec);
 	  XVECEXP (unspec, 0, 0)
 	    = plus_constant (Pmode, XVECEXP (unspec, 0, 0), INTVAL (offset));
-- 
2.5.0

