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 <ni...@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"