From 69a53ee8f01b64ab6f03b63cc1cd89735032f3d7 Mon Sep 17 00:00:00 2001 From: Kazuhiro Inaoka Date: Fri, 8 Oct 2004 08:21:38 +0000 Subject: m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers form all_used_regs. m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers form all_used_regs. Update call_really_used_regs. (CALL_REALLY_USED_REGISTERS): Define. m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs with call_really_used_regs. From-SVN: r88737 --- gcc/ChangeLog | 8 ++++++++ gcc/config/m32r/m32r.c | 4 ++-- gcc/config/m32r/m32r.h | 7 ++++++- 3 files changed, 16 insertions(+), 3 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4d4cfda..2906982 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2004-10-08 Kazuhiro Inaoka + + * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude + fixed registers form all_used_regs. Update call_really_used_regs. + (CALL_REALLY_USED_REGISTERS): Define. + * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs + with call_really_used_regs. + 2004-10-08 Alan Modra * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c index 9e3404a..b562156 100644 --- a/gcc/config/m32r/m32r.c +++ b/gcc/config/m32r/m32r.c @@ -1591,8 +1591,8 @@ static struct m32r_frame_info zero_frame_info; The return address and frame pointer are treated separately. Don't consider them here. */ #define MUST_SAVE_REGISTER(regno, interrupt_p) \ -((regno) != RETURN_ADDR_REGNUM && (regno) != FRAME_POINTER_REGNUM \ - && (regs_ever_live[regno] && (!call_used_regs[regno] || interrupt_p))) + ((regno) != RETURN_ADDR_REGNUM && (regno) != FRAME_POINTER_REGNUM \ + && (regs_ever_live[regno] && (!call_really_used_regs[regno] || interrupt_p))) #define MUST_SAVE_FRAME_POINTER (regs_ever_live[FRAME_POINTER_REGNUM]) #define MUST_SAVE_RETURN_ADDR (regs_ever_live[RETURN_ADDR_REGNUM] || current_function_profile) diff --git a/gcc/config/m32r/m32r.h b/gcc/config/m32r/m32r.h index 9befbee..d5aa56b 100644 --- a/gcc/config/m32r/m32r.h +++ b/gcc/config/m32r/m32r.h @@ -633,6 +633,8 @@ extern enum m32r_sdata m32r_sdata; SUBTARGET_CALL_USED_REGISTERS \ } +#define CALL_REALLY_USED_REGISTERS CALL_USED_REGISTERS + /* Zero or more C statements that may conditionally modify two variables `fixed_regs' and `call_used_regs' (both of type `char []') after they have been initialized from the two preceding macros. @@ -649,7 +651,10 @@ extern enum m32r_sdata m32r_sdata; do \ { \ if (flag_pic) \ - fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \ + { \ + fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \ + call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \ + } \ } \ while (0) #endif -- cgit v1.1