On Tue, Mar 13, 2012 at 11:42 AM, Uros Bizjak <ubiz...@gmail.com> wrote: > Hello! > > 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]$ -- H.J.