On Mon, Oct 16, 2006 at 05:20:44AM -0700, Mohamed Shafi wrote: > hello all, > > Sorry i am asking this kind of question.This might be weird to most of you > but i am new to GCC. > Can somebody tell me how to analyze the below instruction pattern > > (insn 8 6 9 1 (parallel [ > (set (reg/f:SI 32) > (symbol_ref:SI ("t") <var_decl 0x402270b0 t>)) > (clobber (reg:CC 21 cc)) > ]) -1 (nil) > (nil)) > > Will i be able to find this pattern in .md files?
Probably. Look for at pattern with "movsi" in the name. > what does insn 8 6 9 1 mean? 8 is the number of the insn, 6 is the number of the previous insn, 9 is the number of the next insn and 1 is the number of the basic block to which the insn belongs. > reg/f ? This is actually documented (look for REG_POINTER): <URL:http://gcc.gnu.org/onlinedocs/gccint/Flags.html#Flags>. > for varible declaration why is it needed to clobber CC? It depends on the target. Some targets modify the condition codes when copying a value into a register while other targets don't. A third possibility is that of the m68k, where storing a value in a data register sets the condition codes while storing a value in an address register leaves the condition codes unmodified. A fourth possibility is that of the PowerPC, where this is optional on a per insn basis, but then you wouldn't normally include the (clobber (reg:CC 21 cc)) version in the machine description. -- Rask Ingemann Lambertsen.