diff options
| author | m.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-04-07 01:17:57 +0000 |
|---|---|---|
| committer | m.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-04-07 01:17:57 +0000 |
| commit | d91f8ddc5a6b6b8fcb7a95c035d2d61bfa82799b (patch) | |
| tree | da9e6273bcf9eca6864e66f4898aa1b084c605c6 | |
| parent | 0acad087c27bca064cf9435061c2a8812fb14478 (diff) | |
| download | ppe42-gcc-d91f8ddc5a6b6b8fcb7a95c035d2d61bfa82799b.tar.gz ppe42-gcc-d91f8ddc5a6b6b8fcb7a95c035d2d61bfa82799b.zip | |
2001-04-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
* c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41173 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/config/c4x/c4x.h | 12 |
2 files changed, 12 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 760778157fd..c987bbe04e4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2001-04-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4. + 2001-04-06 Neil Booth <neil@daikokuya.demon.co.uk> * cpplib.c (cpp_push_buffer): Give stdin buffers the name <stdin>. diff --git a/gcc/config/c4x/c4x.h b/gcc/config/c4x/c4x.h index 72155650c98..3f351e37174 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 |

