mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-24 13:04:33 +08:00
emit-rtl.c (gen_realpart): Issue an error for cases GCC can not handle at this time instead of silently...
* emit-rtl.c (gen_realpart): Issue an error for cases GCC can not handle at this time instead of silently generating incorrect code. (gen_imagpart): Likewise. From-SVN: r28105
This commit is contained in:
parent
87afbee625
commit
40c0c3cf73
@ -1,5 +1,9 @@
|
||||
Wed Jul 14 23:28:06 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
|
||||
handle at this time instead of silently generating incorrect code.
|
||||
(gen_imagpart): Likewise.
|
||||
|
||||
* reload.c (find_reloads): Emit a USE for a pseudo register without
|
||||
a hard register if we could not create an optional reload for the
|
||||
pseudo.
|
||||
|
@ -966,6 +966,11 @@ gen_realpart (mode, x)
|
||||
{
|
||||
if (GET_CODE (x) == CONCAT && GET_MODE (XEXP (x, 0)) == mode)
|
||||
return XEXP (x, 0);
|
||||
else if (WORDS_BIG_ENDIAN
|
||||
&& GET_MODE_BITSIZE (mode) < BITS_PER_WORD
|
||||
&& REG_P (x)
|
||||
&& REGNO (x) < FIRST_PSEUDO_REGISTER)
|
||||
fatal ("Unable to access real part of complex value in a hard register on this target");
|
||||
else if (WORDS_BIG_ENDIAN)
|
||||
return gen_highpart (mode, x);
|
||||
else
|
||||
@ -984,6 +989,11 @@ gen_imagpart (mode, x)
|
||||
return XEXP (x, 1);
|
||||
else if (WORDS_BIG_ENDIAN)
|
||||
return gen_lowpart (mode, x);
|
||||
else if (!WORDS_BIG_ENDIAN
|
||||
&& GET_MODE_BITSIZE (mode) < BITS_PER_WORD
|
||||
&& REG_P (x)
|
||||
&& REGNO (x) < FIRST_PSEUDO_REGISTER)
|
||||
fatal ("Unable to access imaginary part of complex value in a hard register on this target");
|
||||
else
|
||||
return gen_highpart (mode, x);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user