Markus Franke wrote:
---snip--- Processing file 20000120-2.c 20000120-2.c: In function 'foo': 20000120-2.c:13: error: unrecognizable insn: (call_insn 14 13 15 1 (parallel [ (set:SI (reg:SI 1 r1) (call (mem:QI (symbol_ref:SI ("odd") [flags 0x3] <function_decl 0x3ae24700 odd>) [0 S1 A8]) (const_int 8 [0x8]))) (clobber (reg:SI 31 r31)) ]) -1 (nil) (expr_list:REG_EH_REGION (const_int 0 [0x0]) (nil)) (nil))
As Ian already said, there must be someone who is issuing the SI-less call (btw. I would just leave the SI, and live with the warning. Almost all backends use a modeless call).
(define_insn "call_val_internal_return_r1"
With the name of this function, you probably have somewhere a define_expand for a call, and my guess would be that they issue the modeless call (do a s/(call /(call:SI /g).
Florian