i386.c (constant_address_p): Use legitimate_constant_p.
* i386.c (constant_address_p): Use legitimate_constant_p. (legitimate_address_p): Do not use CONSTANT_ADDRESS_P. From-SVN: r65196
This commit is contained in:
parent
0de298af46
commit
a94f136b52
|
@ -1,3 +1,8 @@
|
|||
Thu Apr 3 09:53:40 CEST 2003 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* i386.c (constant_address_p): Use legitimate_constant_p.
|
||||
(legitimate_address_p): Do not use CONSTANT_ADDRESS_P.
|
||||
|
||||
2003-04-02 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* config/h8300/h8300-protos.h: Add a prototype for
|
||||
|
@ -26,7 +31,7 @@ Thu Apr 3 00:31:21 CEST 2003 Jan Hubicka <jh@suse.cz>
|
|||
|
||||
* doc/install.texi (Specific): Update pointers to apple.com.
|
||||
|
||||
Thu Apr 3 00:18:49 CEST 2003 Jan HUbicka <jh@suse.cz>
|
||||
Thu Apr 3 00:18:49 CEST 2003 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* i386.c (override_options): Disable red zone by default on i386.
|
||||
(compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory):
|
||||
|
|
|
@ -5710,26 +5710,7 @@ bool
|
|||
constant_address_p (x)
|
||||
rtx x;
|
||||
{
|
||||
switch (GET_CODE (x))
|
||||
{
|
||||
case LABEL_REF:
|
||||
case CONST_INT:
|
||||
return true;
|
||||
|
||||
case CONST_DOUBLE:
|
||||
return TARGET_64BIT;
|
||||
|
||||
case CONST:
|
||||
/* For Mach-O, really believe the CONST. */
|
||||
if (TARGET_MACHO)
|
||||
return true;
|
||||
/* Otherwise fall through. */
|
||||
case SYMBOL_REF:
|
||||
return !flag_pic && legitimate_constant_p (x);
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return CONSTANT_P (x) && legitimate_address_p (Pmode, x, 1);
|
||||
}
|
||||
|
||||
/* Nonzero if the constant value X is a legitimate general operand
|
||||
|
@ -6080,7 +6061,12 @@ legitimate_address_p (mode, addr, strict)
|
|||
that never results in lea, this seems to be easier and
|
||||
correct fix for crash to disable this test. */
|
||||
}
|
||||
else if (!CONSTANT_ADDRESS_P (disp))
|
||||
else if (GET_CODE (disp) != LABEL_REF
|
||||
&& GET_CODE (disp) != CONST_INT
|
||||
&& (GET_CODE (disp) != CONST
|
||||
|| !legitimate_constant_p (disp))
|
||||
&& (GET_CODE (disp) != SYMBOL_REF
|
||||
|| !legitimate_constant_p (disp)))
|
||||
{
|
||||
reason = "displacement is not constant";
|
||||
goto report_error;
|
||||
|
@ -6090,11 +6076,6 @@ legitimate_address_p (mode, addr, strict)
|
|||
reason = "displacement is out of range";
|
||||
goto report_error;
|
||||
}
|
||||
else if (!TARGET_64BIT && GET_CODE (disp) == CONST_DOUBLE)
|
||||
{
|
||||
reason = "displacement is a const_double";
|
||||
goto report_error;
|
||||
}
|
||||
}
|
||||
|
||||
/* Everything looks valid. */
|
||||
|
|
Loading…
Reference in New Issue