X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fmachmode.def;h=fe4b96eca209dc68a3b9eb478126cd2a2f5cbccc;hb=68121397dfcf2c390c53a49a7cad768c097d1ada;hp=16abebb8f3189b99c59eaa47e3db10fa0c72bcaf;hpb=886cfd4f4efd502352e15f0fbd345f47ab7d9196;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/machmode.def b/gcc/machmode.def index 16abebb8f31..fe4b96eca20 100644 --- a/gcc/machmode.def +++ b/gcc/machmode.def @@ -65,8 +65,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA The ordering is by increasing byte size, with QI coming before HI, HI before SI, etc. - Eigth arg is the mode of the internal elements in a vector. - VOIDmode if not a vector. + Eigth arg is the mode of the internal elements in a vector or + complex, and VOIDmode if not applicable. */ /* VOIDmode is used when no mode needs to be specified, @@ -98,19 +98,19 @@ DEF_MACHMODE (XFmode, "XF", MODE_FLOAT, BITS_PER_UNIT*12, 12, 12, TFmode, VOIDmo DEF_MACHMODE (TFmode, "TF", MODE_FLOAT, BITS_PER_UNIT*16, 16, 16, VOIDmode, VOIDmode) /* Complex modes. */ -DEF_MACHMODE (QCmode, "QC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*2, 2, 1, HCmode, VOIDmode) -DEF_MACHMODE (HCmode, "HC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*4, 4, 2, SCmode, VOIDmode) -DEF_MACHMODE (SCmode, "SC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*8, 8, 4, DCmode, VOIDmode) -DEF_MACHMODE (DCmode, "DC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*16, 16, 8, XCmode, VOIDmode) -DEF_MACHMODE (XCmode, "XC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*24, 24, 12, TCmode, VOIDmode) -DEF_MACHMODE (TCmode, "TC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*32, 32, 16, VOIDmode, VOIDmode) - -DEF_MACHMODE (CQImode, "CQI", MODE_COMPLEX_INT, BITS_PER_UNIT*2, 2, 1, CHImode, VOIDmode) -DEF_MACHMODE (CHImode, "CHI", MODE_COMPLEX_INT, BITS_PER_UNIT*4, 4, 2, CSImode, VOIDmode) -DEF_MACHMODE (CSImode, "CSI", MODE_COMPLEX_INT, BITS_PER_UNIT*8, 8, 4, CDImode, VOIDmode) -DEF_MACHMODE (CDImode, "CDI", MODE_COMPLEX_INT, BITS_PER_UNIT*16, 16, 8, CTImode, VOIDmode) -DEF_MACHMODE (CTImode, "CTI", MODE_COMPLEX_INT, BITS_PER_UNIT*32, 32, 16, COImode, VOIDmode) -DEF_MACHMODE (COImode, "COI", MODE_COMPLEX_INT, BITS_PER_UNIT*64, 64, 32, VOIDmode, VOIDmode) +DEF_MACHMODE (QCmode, "QC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*2, 2, 1, HCmode, QFmode) +DEF_MACHMODE (HCmode, "HC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*4, 4, 2, SCmode, HFmode) +DEF_MACHMODE (SCmode, "SC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*8, 8, 4, DCmode, SFmode) +DEF_MACHMODE (DCmode, "DC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*16, 16, 8, XCmode, DFmode) +DEF_MACHMODE (XCmode, "XC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*24, 24, 12, TCmode, XFmode) +DEF_MACHMODE (TCmode, "TC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*32, 32, 16, VOIDmode, TFmode) + +DEF_MACHMODE (CQImode, "CQI", MODE_COMPLEX_INT, BITS_PER_UNIT*2, 2, 1, CHImode, QImode) +DEF_MACHMODE (CHImode, "CHI", MODE_COMPLEX_INT, BITS_PER_UNIT*4, 4, 2, CSImode, HImode) +DEF_MACHMODE (CSImode, "CSI", MODE_COMPLEX_INT, BITS_PER_UNIT*8, 8, 4, CDImode, SImode) +DEF_MACHMODE (CDImode, "CDI", MODE_COMPLEX_INT, BITS_PER_UNIT*16, 16, 8, CTImode, DImode) +DEF_MACHMODE (CTImode, "CTI", MODE_COMPLEX_INT, BITS_PER_UNIT*32, 32, 16, COImode, TImode) +DEF_MACHMODE (COImode, "COI", MODE_COMPLEX_INT, BITS_PER_UNIT*64, 64, 32, VOIDmode, OImode) /* Vector modes. */ /* There are no V1xx vector modes. These are equivalent to normal @@ -151,28 +151,23 @@ DEF_MACHMODE (BLKmode, "BLK", MODE_RANDOM, 0, 0, 0, VOIDmode, VOIDmode) /* The modes for representing the condition codes come last. CCmode is always defined. Additional modes for the condition code can be - specified in the EXTRA_CC_MODES macro. All MODE_CC modes are the + specified in the EXTRA_CC_MODES header. All MODE_CC modes are the same width as SImode and have VOIDmode as their next wider mode. */ -#define CC(E, M) DEF_MACHMODE (E, M, MODE_CC, BITS_PER_UNIT*4, 4, 4, VOIDmode, VOIDmode) - -CC (CCmode, "CC") - -#ifdef EXTRA_CC_MODES -EXTRA_CC_MODES -#endif +/* We do not use CC() for CCmode to avoid a warning about use of + function-like macros with no arguments. */ +DEF_MACHMODE (CCmode, "CC", MODE_CC, BITS_PER_UNIT*4, 4, 4, VOIDmode, VOIDmode) +#ifdef EXTRA_MODES_FILE +#define CC(N) \ + DEF_MACHMODE (CONCAT2 (N,mode), STRINGX (N), \ + MODE_CC, BITS_PER_UNIT*4, 4, 4, VOIDmode, VOIDmode) +#include EXTRA_MODES_FILE #undef CC +#endif /* The symbol Pmode stands for one of the above machine modes (usually SImode). - The tm file specifies which one. It is not a distinct mode. Nevertheless, - while processing the md file, we wish to treat as a distinct mode so that - it is preserved intact through to the insn-foo.c files. This eliminates a - lot of redundancy in ports that support both 32-bit and 64-bit targets. */ -#ifdef GENERATOR_FILE -#undef Pmode -DEF_MACHMODE (Pmode, "P", MODE_RANDOM, 0, 0, 0, VOIDmode, VOIDmode) -#endif + The tm file specifies which one. It is not a distinct mode. */ /* Local variables: