mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 07:04:33 +08:00
mips.h (enum reg_class): Add FRAME_REGS.
* config/mips/mips.h (enum reg_class): Add FRAME_REGS. (REG_CLASS_NAMES): Update. (REG_CLASS_CONTENTS): Update. * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead of ALL_REGS for regs 77 and 78. * function.c (instantiate_virtual_regs_in_insn): Assert that return value of simplify_gen_subreg is not NULL. testsuite: * gcc.c-torture/compile/20080903-1.c: New test. From-SVN: r140035
This commit is contained in:
parent
ebac6d9cb9
commit
7314c7dd62
@ -1,3 +1,13 @@
|
||||
2008-09-05 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* config/mips/mips.h (enum reg_class): Add FRAME_REGS.
|
||||
(REG_CLASS_NAMES): Update.
|
||||
(REG_CLASS_CONTENTS): Update.
|
||||
* config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
|
||||
of ALL_REGS for regs 77 and 78.
|
||||
* function.c (instantiate_virtual_regs_in_insn): Assert that
|
||||
return value of simplify_gen_subreg is not NULL.
|
||||
|
||||
2008-09-05 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
* emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
|
||||
|
@ -502,7 +502,7 @@ const enum reg_class mips_regno_to_class[FIRST_PSEUDO_REGISTER] = {
|
||||
MD0_REG, MD1_REG, NO_REGS, ST_REGS,
|
||||
ST_REGS, ST_REGS, ST_REGS, ST_REGS,
|
||||
ST_REGS, ST_REGS, ST_REGS, NO_REGS,
|
||||
NO_REGS, ALL_REGS, ALL_REGS, NO_REGS,
|
||||
NO_REGS, FRAME_REGS, FRAME_REGS, NO_REGS,
|
||||
COP0_REGS, COP0_REGS, COP0_REGS, COP0_REGS,
|
||||
COP0_REGS, COP0_REGS, COP0_REGS, COP0_REGS,
|
||||
COP0_REGS, COP0_REGS, COP0_REGS, COP0_REGS,
|
||||
|
@ -1791,6 +1791,7 @@ enum reg_class
|
||||
ST_REGS, /* status registers (fp status) */
|
||||
DSP_ACC_REGS, /* DSP accumulator registers */
|
||||
ACC_REGS, /* Hi/Lo and DSP accumulator registers */
|
||||
FRAME_REGS, /* $arg and $frame */
|
||||
ALL_REGS, /* all registers */
|
||||
LIM_REG_CLASSES /* max value + 1 */
|
||||
};
|
||||
@ -1832,6 +1833,7 @@ enum reg_class
|
||||
"ST_REGS", \
|
||||
"DSP_ACC_REGS", \
|
||||
"ACC_REGS", \
|
||||
"FRAME_REGS", \
|
||||
"ALL_REGS" \
|
||||
}
|
||||
|
||||
@ -1874,7 +1876,8 @@ enum reg_class
|
||||
{ 0x00000000, 0x00000000, 0x000007f8, 0x00000000, 0x00000000, 0x00000000 }, /* status registers */ \
|
||||
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003f0000 }, /* dsp accumulator registers */ \
|
||||
{ 0x00000000, 0x00000000, 0x00000003, 0x00000000, 0x00000000, 0x003f0000 }, /* hi/lo and dsp accumulator registers */ \
|
||||
{ 0xffffffff, 0xffffffff, 0xffff07ff, 0xffffffff, 0xffffffff, 0x0fffffff } /* all registers */ \
|
||||
{ 0x00000000, 0x00000000, 0x00006000, 0x00000000, 0x00000000, 0x00000000 }, /* frame registers */ \
|
||||
{ 0xffffffff, 0xffffffff, 0xffff67ff, 0xffffffff, 0xffffffff, 0x0fffffff } /* all registers */ \
|
||||
}
|
||||
|
||||
|
||||
|
@ -1515,6 +1515,7 @@ instantiate_virtual_regs_in_insn (rtx insn)
|
||||
}
|
||||
x = simplify_gen_subreg (recog_data.operand_mode[i], new_rtx,
|
||||
GET_MODE (new_rtx), SUBREG_BYTE (x));
|
||||
gcc_assert (x);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1,3 +1,7 @@
|
||||
2008-09-05 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* gcc.c-torture/compile/20080903-1.c: New test.
|
||||
|
||||
2008-09-05 Daniel Kraft <d@domob.eu>
|
||||
|
||||
PR fortran/36746
|
||||
|
12
gcc/testsuite/gcc.c-torture/compile/20080903-1.c
Normal file
12
gcc/testsuite/gcc.c-torture/compile/20080903-1.c
Normal file
@ -0,0 +1,12 @@
|
||||
struct bar { unsigned short length; };
|
||||
|
||||
int
|
||||
dummy(void)
|
||||
{
|
||||
char c[4096];
|
||||
struct bar *a;
|
||||
struct bar *b;
|
||||
|
||||
a->length = ((char *) b - c);
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user