Commit eaf19aba by Jakub Jelinek Committed by Jakub Jelinek

i386.c (constant_call_address_operand): Accept (const (plus (symbol_ref) (const_int))).

	* config/i386/i386.c (constant_call_address_operand): Accept
	(const (plus (symbol_ref) (const_int))).
	* config/i386/i386.h (PREDICATE_CODES): Add CONST for
	constant_call_address_operand.

	* gcc.c-torture/compile/20010107-1.c: New test.

From-SVN: r38783
parent a8b462be
2001-01-07 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386.c (constant_call_address_operand): Accept
(const (plus (symbol_ref) (const_int))).
* config/i386/i386.h (PREDICATE_CODES): Add CONST for
constant_call_address_operand.
2001-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* libgcc2.h (W_TYPE_SIZE): Fix case where MIN_UNITS_PER_WORD == 1
......
......@@ -1109,6 +1109,10 @@ constant_call_address_operand (op, mode)
rtx op;
enum machine_mode mode ATTRIBUTE_UNUSED;
{
if (GET_CODE (op) == CONST
&& GET_CODE (XEXP (op, 0)) == PLUS
&& GET_CODE (XEXP (XEXP (op, 0), 1)) == CONST_INT)
op = XEXP (XEXP (op, 0), 0);
return GET_CODE (op) == SYMBOL_REF;
}
......
......@@ -2830,7 +2830,7 @@ do { long l; \
LABEL_REF, SUBREG, REG, MEM}}, \
{"pic_symbolic_operand", {CONST}}, \
{"call_insn_operand", {REG, SUBREG, MEM, SYMBOL_REF}}, \
{"constant_call_address_operand", {SYMBOL_REF}}, \
{"constant_call_address_operand", {SYMBOL_REF, CONST}}, \
{"const0_operand", {CONST_INT, CONST_DOUBLE}}, \
{"const1_operand", {CONST_INT}}, \
{"const248_operand", {CONST_INT}}, \
......
2001-01-07 Jakub Jelinek <jakub@redhat.com>
* gcc.c-torture/compile/20010107-1.c: New test.
2001-01-07 Joseph S. Myers <jsm28@cam.ac.uk>
* gcc.c-torture/execute/builtin-noret-1.c: New test.
......
unsigned long x[4];
void foo(void)
{
((void (*)())(x+2))();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment