Fix ICE when both micromips and nomicromips attributes are used.
gcc/ChangeLog: 2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com> * config/mips/mips.c (micromips_globals): New variable. (mips_set_compression_mode): Save and reinitialize target-dependent state for microMIPS. gcc/testsuite/ChangeLog: 2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com> * gcc.target/mips/umips-attr.c: New test. From-SVN: r223294
This commit is contained in:
parent
7aeb92b472
commit
fb05f2e4dd
@ -1,3 +1,9 @@
|
||||
2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com>
|
||||
|
||||
* config/mips/mips.c (micromips_globals): New variable.
|
||||
(mips_set_compression_mode): Save and reinitialize target-dependent
|
||||
state for microMIPS.
|
||||
|
||||
2015-05-18 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* dbgcnt.def: Add new counter.
|
||||
|
@ -676,6 +676,9 @@ const char *mips_hi_relocs[NUM_SYMBOL_TYPES];
|
||||
/* Target state for MIPS16. */
|
||||
struct target_globals *mips16_globals;
|
||||
|
||||
/* Target state for MICROMIPS. */
|
||||
struct target_globals *micromips_globals;
|
||||
|
||||
/* Cached value of can_issue_more. This is cached in mips_variable_issue hook
|
||||
and returned from mips_sched_reorder2. */
|
||||
static int cached_can_issue_more;
|
||||
@ -17162,6 +17165,13 @@ mips_set_compression_mode (unsigned int compression_mode)
|
||||
else
|
||||
restore_target_globals (mips16_globals);
|
||||
}
|
||||
else if (compression_mode & MASK_MICROMIPS)
|
||||
{
|
||||
if (!micromips_globals)
|
||||
micromips_globals = save_target_globals_default_opts ();
|
||||
else
|
||||
restore_target_globals (micromips_globals);
|
||||
}
|
||||
else
|
||||
restore_target_globals (&default_target_globals);
|
||||
|
||||
|
@ -1,3 +1,7 @@
|
||||
2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com>
|
||||
|
||||
* gcc.target/mips/umips-attr.c: New test.
|
||||
|
||||
2015-05-17 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* gcc.dg/20150120-1.c (dg-final): Cleanup original tree dump.
|
||||
|
13
gcc/testsuite/gcc.target/mips/umips-attr.c
Normal file
13
gcc/testsuite/gcc.target/mips/umips-attr.c
Normal file
@ -0,0 +1,13 @@
|
||||
/* { dg-options "(-mmicromips)" } */
|
||||
|
||||
int MICROMIPS
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
int NOMICROMIPS
|
||||
foo2 (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
Loading…
Reference in New Issue
Block a user