diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2012-03-06 19:22:10 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2012-03-06 19:22:10 +0000 |
commit | ca4adc913ddcaca116b48569ec97c7c7841f2a35 (patch) | |
tree | 06d59a5aff1f23174b6809d59da5b41885c1f9dd /gcc/rtl.h | |
parent | 22a89c862f73f2d36543d0fb156863c8b96af04b (diff) | |
download | gcc-ca4adc913ddcaca116b48569ec97c7c7841f2a35.zip gcc-ca4adc913ddcaca116b48569ec97c7c7841f2a35.tar.gz gcc-ca4adc913ddcaca116b48569ec97c7c7841f2a35.tar.bz2 |
re PR middle-end/52372 (gcc.target/mips/mips16-attributes{,-4}.c SEGV in dwf_regno)
gcc/
PR middle-end/52372
* rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
variables.
(GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
* emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
variables.
(init_emit_regs): Move associated initialization to...
(init_emit_once): ...here.
From-SVN: r185013
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r-- | gcc/rtl.h | 15 |
1 files changed, 5 insertions, 10 deletions
@@ -2089,6 +2089,11 @@ extern GTY(()) rtx const_tiny_rtx[4][(int) MAX_MACHINE_MODE]; #define CONST2_RTX(MODE) (const_tiny_rtx[2][(int) (MODE)]) #define CONSTM1_RTX(MODE) (const_tiny_rtx[3][(int) (MODE)]) +extern rtx pc_rtx; +extern rtx cc0_rtx; +extern rtx ret_rtx; +extern rtx simple_return_rtx; + /* If HARD_FRAME_POINTER_REGNUM is defined, then a special dummy reg is used to represent the frame pointer. This is because the hard frame pointer and the automatic variables are separated by an amount @@ -2112,10 +2117,6 @@ extern GTY(()) rtx const_tiny_rtx[4][(int) MAX_MACHINE_MODE]; /* Index labels for global_rtl. */ enum global_rtl_index { - GR_PC, - GR_CC0, - GR_RETURN, - GR_SIMPLE_RETURN, GR_STACK_POINTER, GR_FRAME_POINTER, /* For register elimination to work properly these hard_frame_pointer_rtx, @@ -2208,12 +2209,6 @@ extern struct target_rtl *this_target_rtl; #define mode_mem_attrs \ (this_target_rtl->x_mode_mem_attrs) -/* Standard pieces of rtx, to be substituted directly into things. */ -#define pc_rtx (global_rtl[GR_PC]) -#define ret_rtx (global_rtl[GR_RETURN]) -#define simple_return_rtx (global_rtl[GR_SIMPLE_RETURN]) -#define cc0_rtx (global_rtl[GR_CC0]) - /* All references to certain hard regs, except those created by allocating pseudo regs into them (when that's possible), go through these unique rtx objects. */ |