Hi Timothy, Unfortunately the Nios II port of GCC is not (yet) in the gcc tree so most people don't have access to it.
The reason it is parallel is that if define_insn contains more than one element, that defines a parallel. Have a look at: http://gcc.gnu.org/onlinedocs/gccint/Patterns.html Jonah ================================= [EMAIL PROTECTED] Altera European Technology Centre www.altera.com/nios2 -------- Original Message -------- Subject: on nios2 difine_insn indirect_call Date: Mon, 18 Jul 2005 14:47:59 +0800 From: Liu Haibin <[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]> Reply-To: Liu Haibin <[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]> To: gcc@gcc.gnu.org Hi, The nios2.md has a define_insn "indirect_call" (define_insn "indirect_call" [(call (mem:QI (match_operand:SI 0 "register_operand" "r")) (match_operand 1 "" "")) (clobber (reg:SI RA_REGNO))] "" "callr\\t%0" [(set_attr "type" "control")]) But I find that in test.c.26.flow2, there is such a code. (call_insn 41 37 42 1 0x101e17b0 (parallel [ (call (mem:QI (reg/f:SI 3 r3 [58]) [0 S1 A8]) (const_int 0 [0x0])) (clobber (reg:SI 31 ra)) ]) 41 {indirect_call} (insn_list 40 (insn_list 39 (nil))) (expr_list:REG_DEAD (reg:SI 4 r4) (expr_list:REG_DEAD (reg/f:SI 3 r3 [58]) (expr_list:REG_UNUSED (reg:SI 31 ra) (nil)))) (expr_list (use (reg:SI 4 r4)) (nil))) Why is there a "parallel" for indirect_call in .26.flow2 but no "parallel" in define_insn indirect_call? Does it mean that the "define_insn indirect_call" in md file impilcitly has "parallel" surrounding it? Regards, Timothy