Commit f2082f90 by DJ Delorie Committed by DJ Delorie

mep.c (mep_handle_option): Leave IVC2 control registers as fixed.

* config/mep/mep.c (mep_handle_option): Leave IVC2 control
registers as fixed.
(mep_interrupt_saved_reg): Save appropriate IVC2 control
registers.
* config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
unspecified accesses to control registers.
* config/mep/intrinsics.md: Regenerate.
* config/mep/intrinsics.h: Regenerate.
* config/mep/mep-intrin.h: Regenerate.

From-SVN: r149164
parent 9df748c0
2009-07-01 DJ Delorie <dj@redhat.com>
* config/mep/mep.c (mep_handle_option): Leave IVC2 control
registers as fixed.
(mep_interrupt_saved_reg): Save appropriate IVC2 control
registers.
* config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
unspecified accesses to control registers.
* config/mep/intrinsics.md: Regenerate.
* config/mep/intrinsics.h: Regenerate.
* config/mep/mep-intrin.h: Regenerate.
2009-07-01 Anthony Green <green@moxielogic.com>
* config/moxie/moxie.c (moxie_expand_prologue): Use dec
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -5,14 +5,14 @@
#ifdef WANT_GCC_DECLARATIONS
#define FIRST_SHADOW_REGISTER 113
#define LAST_SHADOW_REGISTER 140
#define LAST_SHADOW_REGISTER 122
#define FIXED_SHADOW_REGISTERS \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
1, 1, 1, 1, 1, 1, 1, 1, 1, 1
#define CALL_USED_SHADOW_REGISTERS FIXED_SHADOW_REGISTERS
#define SHADOW_REG_ALLOC_ORDER \
113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140
113, 114, 115, 116, 117, 118, 119, 120, 121, 122
#define SHADOW_REGISTER_NAMES \
"$shadow87", "$shadow107", "$shadow106", "$shadow105", "$shadow104", "$shadow111", "$shadow110", "$shadow109", "$shadow108", "$shadow84", "$shadow81", "$shadow86", "$shadow99", "$shadow98", "$shadow97", "$shadow96", "$shadow103", "$shadow102", "$shadow101", "$shadow100", "$shadow17", "$shadow40", "$shadow24", "$shadow23", "$shadow22", "$shadow21", "$shadow20", "$shadow18"
"$shadow84", "$shadow81", "$shadow17", "$shadow40", "$shadow24", "$shadow23", "$shadow22", "$shadow21", "$shadow20", "$shadow18"
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -2525,6 +2525,13 @@ mep_interrupt_saved_reg (int r)
/* Functions we call might clobber these. */
if (call_used_regs[r] && !fixed_regs[r])
return true;
/* Additional registers that need to be saved for IVC2. */
if (TARGET_IVC2
&& (r == FIRST_CCR_REGNO + 1
|| (r >= FIRST_CCR_REGNO + 8 && r <= FIRST_CCR_REGNO + 11)
|| (r >= FIRST_CCR_REGNO + 16 && r <= FIRST_CCR_REGNO + 31)))
return true;
return false;
}
......@@ -7228,19 +7235,6 @@ mep_handle_option (size_t code,
for (i=6; i<8; i++)
call_used_regs[i+48] = 0;
call_used_regs[FIRST_CCR_REGNO + 1] = 0;
fixed_regs[FIRST_CCR_REGNO + 1] = 0;
for (i=8; i<=11; i++)
{
call_used_regs[FIRST_CCR_REGNO + i] = 0;
fixed_regs[FIRST_CCR_REGNO + i] = 0;
}
for (i=16; i<=31; i++)
{
call_used_regs[FIRST_CCR_REGNO + i] = 0;
fixed_regs[FIRST_CCR_REGNO + i] = 0;
}
#define RN(n,s) reg_names[FIRST_CCR_REGNO + n] = s
RN (0, "$csar0");
RN (1, "$cc");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment