Doubt about insn-codes and 'gencodes' program

Ian Lance Taylor iant@google.com
Fri Feb 9 17:40:00 GMT 2007


"Bhaskar  Reddy" <bhaskar@cse.iitb.ac.in> writes:

> After building gcc, in build/gcc, we can find insn-codes.h which contains,
> enumeration 'insn_code' numbering of define_insn pattern by their name.
> 
> for some patterns, it contains value 'CODE_FOR_nothing' and for some
> patterns it assigns an integer value.
> 
> For example:
> 
> #define CODE_FOR_extendhidi2 CODE_FOR_nothing
> #define CODE_FOR_extendqidi2 CODE_FOR_nothing
> CODE_FOR_extendhisi2 = 81,
> CODE_FOR_extendqihi2 = 82,
> CODE_FOR_extendqisi2 = 83,
> CODE_FOR_truncxfsf2_i387_noop = 96,
> CODE_FOR_truncxfdf2_i387_noop = 100,
> 
> i686-linux-gnu is the target machine, for which my compiler was build.
> 
> From the enum like above , How can i figure out which are the instructions
> corresponding to 'i386' only.? [ as i386.md file was used for many other
> cpu-types also, like pentium, k6 etc., am i getting this confusion! ]

>From the list above, you can't.

The only way to figure out which processors an insn pattern applies to
is to look at the insn predicates.  I think it would be simplest to
look at the .md file.  But, if you want, you can look at the macros in
the generated file insn-flags.h.

Ian



More information about the Gcc-help mailing list