From d0550d07e2537457f326eba11422c5d9df740637 Mon Sep 17 00:00:00 2001 From: "Herman A.J. ten Brugge" Date: Sat, 7 Apr 2001 03:17:57 +0200 Subject: c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4. 2001-04-07 Herman A.J. ten Brugge * c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4. From-SVN: r41173 --- gcc/config/c4x/c4x.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'gcc/config') diff --git a/gcc/config/c4x/c4x.h b/gcc/config/c4x/c4x.h index 7215565..3f351e3 100644 --- a/gcc/config/c4x/c4x.h +++ b/gcc/config/c4x/c4x.h @@ -630,12 +630,16 @@ extern const char *c4x_rpts_cycles_string, *c4x_cpu_version_string; #define CLASS_LIKELY_SPILLED_P(CLASS) ((CLASS) == INDEX_REGS) -/* CCmode is wrongly defined in machmode.def It should have a size - of UNITS_PER_WORD. */ +/* CCmode is wrongly defined in machmode.def. It should have a size + of UNITS_PER_WORD. HFmode is 40-bits and thus fits within a single + extended precision register. Similarly, HCmode fits within two + extended precision registers. */ #define HARD_REGNO_NREGS(REGNO, MODE) \ -(((MODE) == CCmode || (MODE) == CC_NOOVmode) ? 1 : ((MODE) == HFmode) ? 1 : \ -((GET_MODE_SIZE(MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)) +(((MODE) == CCmode || (MODE) == CC_NOOVmode) ? 1 : \ + ((MODE) == HFmode) ? 1 : \ + ((MODE) == HCmode) ? 2 : \ + ((GET_MODE_SIZE(MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)) /* A C expression that is nonzero if the hard register REGNO is preserved -- cgit v1.1