This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Commit: RX:


Hi Guys,

  I am checking in the patch below to fix a small DWARF generation
  problem with the RX backend.  The stack_push pattern contains two
  separate operations that act in parallel, but they were written as if
  they happened in sequence.  Which meant that the DWARF generated to
  show where a register was pushed onto the stack was off by 4 bytes.

Cheers
  Nick
  
gcc/ChangeLog
2014-07-24  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md (stack_push): Adjust RTL to account for the fact
	that operations are taking place in parallel.
	* config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.

Index: gcc/config/rx/rx.h
===================================================================
--- gcc/config/rx/rx.h	(revision 212971)
+++ gcc/config/rx/rx.h	(working copy)
@@ -645,7 +645,6 @@
 
 #define INCOMING_FRAME_SP_OFFSET		4
 #define ARG_POINTER_CFA_OFFSET(FNDECL)		4
-#define FRAME_POINTER_CFA_OFFSET(FNDECL)	4
 
 #define TARGET_USE_FPU		(! TARGET_NO_USE_FPU)
 
Index: gcc/config/rx/rx.md
===================================================================
--- gcc/config/rx/rx.md	(revision 212971)
+++ gcc/config/rx/rx.md	(working copy)
@@ -617,7 +617,7 @@
   [(set (reg:SI SP_REG)
 	(minus:SI (reg:SI SP_REG)
 		  (const_int 4)))
-   (set (mem:SI (reg:SI SP_REG))
+   (set (mem:SI (minus:SI (reg:SI SP_REG) (const_int 4)))
 	(match_operand:SI 0 "register_operand" "r"))]
   ""
   "push.l\t%0"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]