This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: rtx structure


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 Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]