emit-rtl.c (gen_lowpart_common): Use word 0 if register mode is narrower than requested mode.
* emit-rtl.c (gen_lowpart_common): Use word 0 if register mode is narrower than requested mode. (gen_highpart): Abort if register mode is narrower than requested mode. From-SVN: r37696
This commit is contained in:
parent
d0c3e4f498
commit
69295d6d26
|
@ -1,3 +1,10 @@
|
|||
2000-11-23 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* emit-rtl.c (gen_lowpart_common): Use word 0 if register mode
|
||||
is narrower than requested mode.
|
||||
(gen_highpart): Abort if register mode is narrower than
|
||||
requested mode.
|
||||
|
||||
2000-11-23 Graham Stott <grahams@redhat.com>
|
||||
|
||||
* cse.c (cse_insn): Initialise all regcost variables.
|
||||
|
|
|
@ -709,7 +709,8 @@ gen_lowpart_common (mode, x)
|
|||
regs are sized by the underlying register size. Better would be
|
||||
to always interpret the subreg offset parameter as bytes or bits. */
|
||||
|
||||
if (WORDS_BIG_ENDIAN && REGNO (x) < FIRST_PSEUDO_REGISTER)
|
||||
if (WORDS_BIG_ENDIAN && REGNO (x) < FIRST_PSEUDO_REGISTER
|
||||
&& GET_MODE_SIZE (GET_MODE (x)) > GET_MODE_SIZE (mode))
|
||||
word = (HARD_REGNO_NREGS (REGNO (x), GET_MODE (x))
|
||||
- HARD_REGNO_NREGS (REGNO (x), mode));
|
||||
|
||||
|
@ -1141,7 +1142,9 @@ gen_highpart (mode, x)
|
|||
regs are sized by the underlying register size. Better would be
|
||||
to always interpret the subreg offset parameter as bytes or bits. */
|
||||
|
||||
if (WORDS_BIG_ENDIAN)
|
||||
if (GET_MODE_SIZE (GET_MODE (x)) < GET_MODE_SIZE (mode))
|
||||
abort ();
|
||||
else if (WORDS_BIG_ENDIAN)
|
||||
word = 0;
|
||||
else if (REGNO (x) < FIRST_PSEUDO_REGISTER)
|
||||
word = (HARD_REGNO_NREGS (REGNO (x), GET_MODE (x))
|
||||
|
|
Loading…
Reference in New Issue