Re: rtx structure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bharati Bhole writes:
 > >
 > > p debug_rtx(desc)
 > >
 > >
 > (gdb) p debug_rtx(desc)
 > (define_expand ("fix_truncdfdi2")
 >      [
 >         (parallel [
 >                 (set (match_operand:DI 0 ("nonimmediate_operand") (""))
 >                     (fix:DI (match_operand:DF 1 ("register_operand") (""))))
 >                 (clobber (reg:CC 17 [0]))
 >             ])
 >     ] ("TARGET_80387 || (TARGET_64BIT && TARGET_SSE2)") ("{
 >   if (TARGET_64BIT && TARGET_SSE2)
 >    {
 >      rtx out = REG_P (operands[0]) ? operands[0] : gen_reg_rtx (DImode);
 >      emit_insn (gen_fix_truncdfdi_sse (out, operands[1]));
 >      if (out != operands[0])
 >         emit_move_insn (operands[0], out);
 >      DONE;
 >    }
 > }"))
 > $17 = void

OK, so define_expand: see 13.15 Defining RTL Sequences for Code Generation.

parallel: see 11.15 Side Effect Expressions

match_operand:: see 13.4 RTL Template

TARGET_xx are macros in the target.h header files.

gen_blah generates another insn.

emit_move_insn() is obvious.

... etc.

So, this seems to be documented.  I can't see anything here that is
obscure or undocumented.

Andrew.

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux