i386.md (unspec): New define_c_enum.
authorUros Bizjak <ubizjak@gmail.com>
Fri, 11 Jun 2010 19:01:47 +0000 (21:01 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 11 Jun 2010 19:01:47 +0000 (21:01 +0200)
* config/i386/i386.md (unspec): New define_c_enum.
(unspecv): Ditto.

From-SVN: r160627

gcc/ChangeLog
gcc/config/i386/i386.md

index c52a81b..9cd65f7 100644 (file)
@@ -1,3 +1,8 @@
+2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (unspec): New define_c_enum.
+       (unspecv): Ditto.
+
 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
 
        * c-family/c-cppbuiltin.c: Include cpp-id-data.h.
@@ -33,7 +38,7 @@
        clean_predicate_lists.
 
 2010-10-11  Paul Brook  <paul@codesourcery.com>
+
        * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
        * config/arm/arm.c (all_architectures): Change v7e-m default to
        cortexm4.
index 37f3f99..c1613e6 100644 (file)
 
 ;; UNSPEC usage:
 
-(define_constants
-  [; Relocation specifiers
-   (UNSPEC_GOT                 0)
-   (UNSPEC_GOTOFF              1)
-   (UNSPEC_GOTPCREL            2)
-   (UNSPEC_GOTTPOFF            3)
-   (UNSPEC_TPOFF               4)
-   (UNSPEC_NTPOFF              5)
-   (UNSPEC_DTPOFF              6)
-   (UNSPEC_GOTNTPOFF           7)
-   (UNSPEC_INDNTPOFF           8)
-   (UNSPEC_PLTOFF              9)
-   (UNSPEC_MACHOPIC_OFFSET     10)
-
-   ; Prologue support
-   (UNSPEC_STACK_ALLOC         11)
-   (UNSPEC_SET_GOT             12)
-   (UNSPEC_SSE_PROLOGUE_SAVE   13)
-   (UNSPEC_REG_SAVE            14)
-   (UNSPEC_DEF_CFA             15)
-   (UNSPEC_SET_RIP             16)
-   (UNSPEC_SET_GOT_OFFSET      17)
-   (UNSPEC_MEMORY_BLOCKAGE     18)
-   (UNSPEC_SSE_PROLOGUE_SAVE_LOW 19)
-
-   ; TLS support
-   (UNSPEC_TP                  20)
-   (UNSPEC_TLS_GD              21)
-   (UNSPEC_TLS_LD_BASE         22)
-   (UNSPEC_TLSDESC             23)
-
-   ; Other random patterns
-   (UNSPEC_SCAS                        30)
-   (UNSPEC_FNSTSW              31)
-   (UNSPEC_SAHF                        32)
-   (UNSPEC_FSTCW               33)
-   (UNSPEC_ADD_CARRY           34)
-   (UNSPEC_FLDCW               35)
-   (UNSPEC_REP                 36)
-   (UNSPEC_LD_MPIC             38)     ; load_macho_picbase
-   (UNSPEC_TRUNC_NOOP          39)
-
-   ; For SSE/MMX support:
-   (UNSPEC_FIX_NOTRUNC         40)
-   (UNSPEC_MASKMOV             41)
-   (UNSPEC_MOVMSK              42)
-   (UNSPEC_MOVNT               43)
-   (UNSPEC_MOVU                        44)
-   (UNSPEC_RCP                 45)
-   (UNSPEC_RSQRT               46)
-   (UNSPEC_SFENCE              47)
-   (UNSPEC_PFRCP               49)
-   (UNSPEC_PFRCPIT1            40)
-   (UNSPEC_PFRCPIT2            41)
-   (UNSPEC_PFRSQRT             42)
-   (UNSPEC_PFRSQIT1            43)
-   (UNSPEC_MFENCE              44)
-   (UNSPEC_LFENCE              45)
-   (UNSPEC_PSADBW              46)
-   (UNSPEC_LDDQU               47)
-   (UNSPEC_MS_TO_SYSV_CALL     48)
-
-   ; Generic math support
-   (UNSPEC_COPYSIGN            50)
-   (UNSPEC_IEEE_MIN            51)     ; not commutative
-   (UNSPEC_IEEE_MAX            52)     ; not commutative
-
-   ; x87 Floating point
-   (UNSPEC_SIN                 60)
-   (UNSPEC_COS                 61)
-   (UNSPEC_FPATAN              62)
-   (UNSPEC_FYL2X               63)
-   (UNSPEC_FYL2XP1             64)
-   (UNSPEC_FRNDINT             65)
-   (UNSPEC_FIST                        66)
-   (UNSPEC_F2XM1               67)
-   (UNSPEC_TAN                 68)
-   (UNSPEC_FXAM                        69)
-
-   ; x87 Rounding
-   (UNSPEC_FRNDINT_FLOOR       70)
-   (UNSPEC_FRNDINT_CEIL        71)
-   (UNSPEC_FRNDINT_TRUNC       72)
-   (UNSPEC_FRNDINT_MASK_PM     73)
-   (UNSPEC_FIST_FLOOR          74)
-   (UNSPEC_FIST_CEIL           75)
-
-   ; x87 Double output FP
-   (UNSPEC_SINCOS_COS          80)
-   (UNSPEC_SINCOS_SIN          81)
-   (UNSPEC_XTRACT_FRACT                84)
-   (UNSPEC_XTRACT_EXP          85)
-   (UNSPEC_FSCALE_FRACT                86)
-   (UNSPEC_FSCALE_EXP          87)
-   (UNSPEC_FPREM_F             88)
-   (UNSPEC_FPREM_U             89)
-   (UNSPEC_FPREM1_F            90)
-   (UNSPEC_FPREM1_U            91)
-
-   (UNSPEC_C2_FLAG             95)
-   (UNSPEC_FXAM_MEM            96)
-
-   ; SSP patterns
-   (UNSPEC_SP_SET              100)
-   (UNSPEC_SP_TEST             101)
-   (UNSPEC_SP_TLS_SET          102)
-   (UNSPEC_SP_TLS_TEST         103)
-
-   ; SSSE3
-   (UNSPEC_PSHUFB              120)
-   (UNSPEC_PSIGN               121)
-   (UNSPEC_PALIGNR             122)
-
-   ; For SSE4A support
-   (UNSPEC_EXTRQI               130)
-   (UNSPEC_EXTRQ                131)
-   (UNSPEC_INSERTQI             132)
-   (UNSPEC_INSERTQ              133)
-
-   ; For SSE4.1 support
-   (UNSPEC_BLENDV              134)
-   (UNSPEC_INSERTPS            135)
-   (UNSPEC_DP                  136)
-   (UNSPEC_MOVNTDQA            137)
-   (UNSPEC_MPSADBW             138)
-   (UNSPEC_PHMINPOSUW          139)
-   (UNSPEC_PTEST               140)
-   (UNSPEC_ROUND               141)
-
-   ; For SSE4.2 support
-   (UNSPEC_CRC32               143)
-   (UNSPEC_PCMPESTR            144)
-   (UNSPEC_PCMPISTR            145)
-
-   ; For FMA4 support
-   (UNSPEC_FMA4_INTRINSIC      150)
-   (UNSPEC_FMA4_FMADDSUB       151)
-   (UNSPEC_FMA4_FMSUBADD       152)
-   (UNSPEC_XOP_UNSIGNED_CMP    151)
-   (UNSPEC_XOP_TRUEFALSE       152)
-   (UNSPEC_XOP_PERMUTE         153)
-   (UNSPEC_FRCZ                        154)
-
-   ; For AES support
-   (UNSPEC_AESENC              159)
-   (UNSPEC_AESENCLAST          160)
-   (UNSPEC_AESDEC              161)
-   (UNSPEC_AESDECLAST          162)
-   (UNSPEC_AESIMC              163)
-   (UNSPEC_AESKEYGENASSIST     164)
-
-   ; For PCLMUL support
-   (UNSPEC_PCLMUL              165)
-
-   ; For AVX support
-   (UNSPEC_PCMP                        166)
-   (UNSPEC_VPERMIL             167)
-   (UNSPEC_VPERMIL2            168)
-   (UNSPEC_VPERMIL2F128                169)
-   (UNSPEC_MASKLOAD            170)
-   (UNSPEC_MASKSTORE           171)
-   (UNSPEC_CAST                        172)
-   (UNSPEC_VTESTP              173)
-  ])
-
-(define_constants
-  [(UNSPECV_BLOCKAGE           0)
-   (UNSPECV_STACK_PROBE                1)
-   (UNSPECV_EMMS               2)
-   (UNSPECV_LDMXCSR            3)
-   (UNSPECV_STMXCSR            4)
-   (UNSPECV_FEMMS              5)
-   (UNSPECV_CLFLUSH            6)
-   (UNSPECV_ALIGN              7)
-   (UNSPECV_MONITOR            8)
-   (UNSPECV_MWAIT              9)
-   (UNSPECV_CMPXCHG            10)
-   (UNSPECV_XCHG               12)
-   (UNSPECV_LOCK               13)
-   (UNSPECV_PROLOGUE_USE       14)
-   (UNSPECV_CLD                        15)
-   (UNSPECV_VZEROALL           16)
-   (UNSPECV_VZEROUPPER         17)
-   (UNSPECV_RDTSC              18)
-   (UNSPECV_RDTSCP             19)
-   (UNSPECV_RDPMC              20)
-   (UNSPECV_VSWAPMOV           21)
-   (UNSPECV_LLWP_INTRINSIC     22)
-   (UNSPECV_SLWP_INTRINSIC     23)
-   (UNSPECV_LWPVAL_INTRINSIC   24)
-   (UNSPECV_LWPINS_INTRINSIC   25)
-  ])
+(define_c_enum "unspec" [
+  ;; Relocation specifiers
+  UNSPEC_GOT
+  UNSPEC_GOTOFF
+  UNSPEC_GOTPCREL
+  UNSPEC_GOTTPOFF
+  UNSPEC_TPOFF
+  UNSPEC_NTPOFF
+  UNSPEC_DTPOFF
+  UNSPEC_GOTNTPOFF
+  UNSPEC_INDNTPOFF
+  UNSPEC_PLTOFF
+  UNSPEC_MACHOPIC_OFFSET
+
+  ;; Prologue support
+  UNSPEC_STACK_ALLOC
+  UNSPEC_SET_GOT
+  UNSPEC_SSE_PROLOGUE_SAVE
+  UNSPEC_REG_SAVE
+  UNSPEC_DEF_CFA
+  UNSPEC_SET_RIP
+  UNSPEC_SET_GOT_OFFSET
+  UNSPEC_MEMORY_BLOCKAGE
+  UNSPEC_SSE_PROLOGUE_SAVE_LOW
+
+  ;; TLS support
+  UNSPEC_TP
+  UNSPEC_TLS_GD
+  UNSPEC_TLS_LD_BASE
+  UNSPEC_TLSDESC
+
+  ;; Other random patterns
+  UNSPEC_SCAS
+  UNSPEC_FNSTSW
+  UNSPEC_SAHF
+  UNSPEC_FSTCW
+  UNSPEC_ADD_CARRY
+  UNSPEC_FLDCW
+  UNSPEC_REP
+  UNSPEC_LD_MPIC       ; load_macho_picbase
+  UNSPEC_TRUNC_NOOP
+
+  ;; For SSE/MMX support:
+  UNSPEC_FIX_NOTRUNC
+  UNSPEC_MASKMOV
+  UNSPEC_MOVMSK
+  UNSPEC_MOVNT
+  UNSPEC_MOVU
+  UNSPEC_RCP
+  UNSPEC_RSQRT
+  UNSPEC_SFENCE
+  UNSPEC_PFRCP
+  UNSPEC_PFRCPIT1
+  UNSPEC_PFRCPIT2
+  UNSPEC_PFRSQRT
+  UNSPEC_PFRSQIT1
+  UNSPEC_MFENCE
+  UNSPEC_LFENCE
+  UNSPEC_PSADBW
+  UNSPEC_LDDQU
+  UNSPEC_MS_TO_SYSV_CALL
+
+  ;; Generic math support
+  UNSPEC_COPYSIGN
+  UNSPEC_IEEE_MIN      ; not commutative
+  UNSPEC_IEEE_MAX      ; not commutative
+
+  ;; x87 Floating point
+  UNSPEC_SIN
+  UNSPEC_COS
+  UNSPEC_FPATAN
+  UNSPEC_FYL2X
+  UNSPEC_FYL2XP1
+  UNSPEC_FRNDINT
+  UNSPEC_FIST
+  UNSPEC_F2XM1
+  UNSPEC_TAN
+  UNSPEC_FXAM
+
+  ;; x87 Rounding
+  UNSPEC_FRNDINT_FLOOR
+  UNSPEC_FRNDINT_CEIL
+  UNSPEC_FRNDINT_TRUNC
+  UNSPEC_FRNDINT_MASK_PM
+  UNSPEC_FIST_FLOOR
+  UNSPEC_FIST_CEIL
+
+  ;; x87 Double output FP
+  UNSPEC_SINCOS_COS
+  UNSPEC_SINCOS_SIN
+  UNSPEC_XTRACT_FRACT
+  UNSPEC_XTRACT_EXP
+  UNSPEC_FSCALE_FRACT
+  UNSPEC_FSCALE_EXP
+  UNSPEC_FPREM_F
+  UNSPEC_FPREM_U
+  UNSPEC_FPREM1_F
+  UNSPEC_FPREM1_U
+
+  UNSPEC_C2_FLAG
+  UNSPEC_FXAM_MEM
+
+  ;; SSP patterns
+  UNSPEC_SP_SET
+  UNSPEC_SP_TEST
+  UNSPEC_SP_TLS_SET
+  UNSPEC_SP_TLS_TEST
+
+  ;; SSSE3
+  UNSPEC_PSHUFB
+  UNSPEC_PSIGN
+  UNSPEC_PALIGNR
+
+  ;; For SSE4A support
+  UNSPEC_EXTRQI
+  UNSPEC_EXTRQ
+  UNSPEC_INSERTQI
+  UNSPEC_INSERTQ
+
+  ;; For SSE4.1 support
+  UNSPEC_BLENDV
+  UNSPEC_INSERTPS
+  UNSPEC_DP
+  UNSPEC_MOVNTDQA
+  UNSPEC_MPSADBW
+  UNSPEC_PHMINPOSUW
+  UNSPEC_PTEST
+  UNSPEC_ROUND
+
+  ;; For SSE4.2 support
+  UNSPEC_CRC32
+  UNSPEC_PCMPESTR
+  UNSPEC_PCMPISTR
+
+  ;; For FMA4 support
+  UNSPEC_FMA4_INTRINSIC
+  UNSPEC_FMA4_FMADDSUB
+  UNSPEC_FMA4_FMSUBADD
+  UNSPEC_XOP_UNSIGNED_CMP
+  UNSPEC_XOP_TRUEFALSE
+  UNSPEC_XOP_PERMUTE
+  UNSPEC_FRCZ
+
+  ;; For AES support
+  UNSPEC_AESENC
+  UNSPEC_AESENCLAST
+  UNSPEC_AESDEC
+  UNSPEC_AESDECLAST
+  UNSPEC_AESIMC
+  UNSPEC_AESKEYGENASSIST
+
+  ;; For PCLMUL support
+  UNSPEC_PCLMUL
+
+  ;; For AVX support
+  UNSPEC_PCMP
+  UNSPEC_VPERMIL
+  UNSPEC_VPERMIL2
+  UNSPEC_VPERMIL2F128
+  UNSPEC_MASKLOAD
+  UNSPEC_MASKSTORE
+  UNSPEC_CAST
+  UNSPEC_VTESTP
+])
+
+(define_c_enum "unspecv" [
+  UNSPECV_BLOCKAGE
+  UNSPECV_STACK_PROBE
+  UNSPECV_EMMS
+  UNSPECV_LDMXCSR
+  UNSPECV_STMXCSR
+  UNSPECV_FEMMS
+  UNSPECV_CLFLUSH
+  UNSPECV_ALIGN
+  UNSPECV_MONITOR
+  UNSPECV_MWAIT
+  UNSPECV_CMPXCHG
+  UNSPECV_XCHG
+  UNSPECV_LOCK
+  UNSPECV_PROLOGUE_USE
+  UNSPECV_CLD
+  UNSPECV_VZEROALL
+  UNSPECV_VZEROUPPER
+  UNSPECV_RDTSC
+  UNSPECV_RDTSCP
+  UNSPECV_RDPMC
+  UNSPECV_VSWAPMOV
+  UNSPECV_LLWP_INTRINSIC
+  UNSPECV_SLWP_INTRINSIC
+  UNSPECV_LWPVAL_INTRINSIC
+  UNSPECV_LWPINS_INTRINSIC
+])
 
 ;; Constants to represent pcomtrue/pcomfalse variants
 (define_constants