On Wed, Mar 14, 2012 at 12:13 AM, H.J. Lu <hjl.to...@gmail.com> wrote:
>> Similar to tls_symbolic_operand and tls_modbase_operand, we are not >> interested in the mode of the operand in the predicate. >> >> 2012-03-13 Uros Bizjak <ubiz...@gmail.com> >> >> * config/i386/predicates.md (constant_call_address_operand): Declare >> as special predicate. Update all uses. >> * config/i386/i386.md: Remove mode from constant_call_address_operand >> predicates. >> * config/i386/i386.c (ix86_output_call_insn): Call >> constant_call_address_operand with VOIDmode. >> >> Tested on x86_64-pc-linux-gnu {,-m32}, committed to mainline SVN. >> > > gcc.c-torture/compile/20020129-1.c fails to compile with -mx32 -O: > > [hjl@gnu-6 gcc]$ ./xgcc -B./ -mx32 > /export/gnu/import/git/gcc/gcc/testsuite/gcc.c-torture/compile/20020129-1.c > -S -O > /export/gnu/import/git/gcc/gcc/testsuite/gcc.c-torture/compile/20020129-1.c: > In function \u2018foo\u2019: > /export/gnu/import/git/gcc/gcc/testsuite/gcc.c-torture/compile/20020129-1.c:17:1: > error: unrecognizable insn: > (call_insn 10 9 11 3 (set (reg:SI 0 ax) > (call (mem:QI (symbol_ref:SI ("a.1707") [flags 0x2] <var_decl > 0x7ffff15a01e0 a>) [0 *a.0_1 S1 A8]) > (const_int 0 [0]))) > /export/gnu/import/git/gcc/gcc/testsuite/gcc.c-torture/compile/20020129-1.c:16 > -1 > (nil) > (expr_list:REG_BR_PRED (use (reg:SI 5 di)) > (nil))) > /export/gnu/import/git/gcc/gcc/testsuite/gcc.c-torture/compile/20020129-1.c:17:1: > internal compiler error: in extract_insn, at recog.c:2123 > Please submit a full bug report, > with preprocessed source if appropriate. > See <http://gcc.gnu.org/bugs.html> for instructions. > [hjl@gnu-6 gcc]$ I have reverted part of the patch. 2012-03-14 Uros Bizjak <ubiz...@gmail.com> Revert: 2012-03-14 Uros Bizjak <ubiz...@gmail.com> * config/i386/predicates.md (constant_call_address_operand): Declare as special predicate. Update all uses. Uros.