mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 23:27:41 +08:00
i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating the frame pointer and compiling PIC code and reload...
* i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating the frame pointer and compiling PIC code and reload has not completed. From-SVN: r21392
This commit is contained in:
parent
3abe23a0eb
commit
61dd26e6ba
@ -1,5 +1,8 @@
|
||||
Sun Jul 26 01:11:12 1998 H.J. Lu (hjl@gnu.org)
|
||||
|
||||
* i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
|
||||
the frame pointer and compiling PIC code and reload has not completed.
|
||||
|
||||
* i386.c (output_to_reg): Add code to emulate non-popping DImode
|
||||
case.
|
||||
|
||||
|
@ -896,10 +896,19 @@ enum reg_class
|
||||
/* Similar, but for floating constants, and defining letters G and H.
|
||||
Here VALUE is the CONST_DOUBLE rtx itself. We allow constants even if
|
||||
TARGET_387 isn't set, because the stack register converter may need to
|
||||
load 0.0 into the function value register. */
|
||||
load 0.0 into the function value register.
|
||||
|
||||
We disallow these constants when -fomit-frame-pointer and compiling
|
||||
PIC code since reload might need to force the constant to memory.
|
||||
Forcing the constant to memory changes the elimination offsets after
|
||||
the point where they must stay constant.
|
||||
|
||||
However, we must allow them after reload as completed as reg-stack.c
|
||||
will create insns which use these constants. */
|
||||
|
||||
#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) \
|
||||
((C) == 'G' ? standard_80387_constant_p (VALUE) : 0)
|
||||
(((reload_completed || !flag_pic || !flag_omit_frame_pointer) && (C) == 'G') \
|
||||
? standard_80387_constant_p (VALUE) : 0)
|
||||
|
||||
/* Place additional restrictions on the register class to use when it
|
||||
is necessary to be able to hold a value of mode MODE in a reload
|
||||
|
Loading…
Reference in New Issue
Block a user