Fix for DF split
From-SVN: r49011
This commit is contained in:
parent
89769d19cc
commit
5b0293155d
@ -1,3 +1,7 @@
|
||||
2002-01-19 Tom Rix <trix@redhat.com>
|
||||
|
||||
* config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
|
||||
|
||||
2002-01-18 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* doc/tm.texi (STARTING_FRAME_PHASE): Document.
|
||||
|
@ -7927,13 +7927,21 @@
|
||||
int endian = (WORDS_BIG_ENDIAN == 0);
|
||||
long l[2];
|
||||
REAL_VALUE_TYPE rv;
|
||||
HOST_WIDE_INT val;
|
||||
|
||||
REAL_VALUE_FROM_CONST_DOUBLE (rv, operands[1]);
|
||||
REAL_VALUE_TO_TARGET_DOUBLE (rv, l);
|
||||
|
||||
operands[2] = gen_lowpart (DImode, operands[0]);
|
||||
/* HIGHPART is lower memory address when WORDS_BIG_ENDIAN. */
|
||||
#if HOST_BITS_PER_WIDE_INT >= 64
|
||||
val = ((HOST_WIDE_INT)(unsigned long)l[endian] << 32 |
|
||||
((HOST_WIDE_INT)(unsigned long)l[1 - endian]));
|
||||
|
||||
operands[3] = immed_double_const (val, -(val < 0), DImode);
|
||||
#else
|
||||
operands[3] = immed_double_const (l[1 - endian], l[endian], DImode);
|
||||
#endif
|
||||
}")
|
||||
|
||||
;; Don't have reload use general registers to load a constant. First,
|
||||
|
Loading…
Reference in New Issue
Block a user