summaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386.opt
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-30 11:24:32 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-30 11:24:32 +0000
commite44348b5a67cb32a21fd5dd2250eee8ed4f997c5 (patch)
tree0651ed4c91eedf4b29b65f6c31412dd3dbac8aa0 /gcc/config/i386/i386.opt
parent1dadff6d5118456314a639c648a89beb43733f39 (diff)
downloadgcc-e44348b5a67cb32a21fd5dd2250eee8ed4f997c5.tar.gz
* config/i386/i386.h (TARGET_ABM): New define.
(TARGET_POPCNT): Ditto. (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*): New temporary defines to redefine from OPTION_ISA_* defines. (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*): New temporary defines to redefine from OPTION_MASK_ISA_* defines. (ix86_isa_flags): New extern int declaration. (TARGET_SUBTARGET_DEFAULT): New define. (TARGET_SUBTARGET_ISA_DEFAULT): Ditto. (TARGET_SUBTARGET32_DEFAULT): Ditto. (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto. (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto. * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define. * config/i386/darwin.h: Change TARGET_64BIT define to OPTION_ISA_64BIT. * config/i386/i386.opt (m3dnowa): Define as undocumented option using existing "ix86_isa_flags" varible. (m32, m64): Use existing "ix86_isa_flags" variable. (mmmx, m3dnow): Ditto. (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto. (mabm): Define as non-negative option using "x86_abm" variable. (mpopcnt): Define as non-negative option using "x86_popcnt" variable. * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]: Rewrite feature test bitmap. (ix86_isa_flags): New initialized global int varible. (ix86_isa_flags_explicit): New static int variable. (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow, msse, msse2, msse3, msse4.1 and msse4a option is processed. Change i86_isa_flags and ix86_isa_flags_explicit, not target_flags and target_flags_explicit. (override_options): Remove "target_enable" and "target_disable" fields from "struct ptt". Update processor_target_table accordingly. Remove PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of "target_flags" and "ix86_isa_flags_explicit" instead of "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt" to true when either of PTA_POPCNT or PTA_ABM is set in processor_alias_table flags entry. Set "x86_prefetch_sse" to true when either of PTA_PREFETCH_SSE or PTA_SSE is set in processor_alias_table flags entry. Remove handling of "target_enable" and "target_disable" fields of processor_target_table. Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets. Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets. (def_builtin): Mask "mask" variable with "ix86_isa_flags", not "target_flags". (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125180 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/i386.opt')
-rw-r--r--gcc/config/i386/i386.opt125
1 files changed, 63 insertions, 62 deletions
diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
index ac60526bbf6..9257ae1ca4d 100644
--- a/gcc/config/i386/i386.opt
+++ b/gcc/config/i386/i386.opt
@@ -23,18 +23,6 @@ m128bit-long-double
Target RejectNegative Report Mask(128BIT_LONG_DOUBLE)
sizeof(long double) is 16
-m32
-Target RejectNegative Negative(m64) Report InverseMask(64BIT)
-Generate 32bit i386 code
-
-m3dnow
-Target Report Mask(3DNOW)
-Support 3DNow! built-in functions
-
-m64
-Target RejectNegative Negative(m32) Report Mask(64BIT)
-Generate 64bit x86-64 code
-
m80387
Target Report Mask(80387)
Use hardware fp
@@ -119,10 +107,6 @@ mintel-syntax
Target Undocumented
;; Deprecated
-mmmx
-Target Report Mask(MMX)
-Support MMX built-in functions
-
mms-bitfields
Target Report Mask(MS_BITFIELD_LAYOUT)
Use native (MS) bitfield layout
@@ -171,50 +155,6 @@ msoft-float
Target InverseMask(80387)
Do not use hardware fp
-msse
-Target Report Mask(SSE)
-Support MMX and SSE built-in functions and code generation
-
-msse2
-Target Report Mask(SSE2)
-Support MMX, SSE and SSE2 built-in functions and code generation
-
-msse3
-Target Report Mask(SSE3)
-Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation
-
-mssse3
-Target Report Mask(SSSE3)
-Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation
-
-msse4.1
-Target Report Mask(SSE4_1)
-Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation
-
-msse4a
-Target Report Mask(SSE4A)
-Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation
-
-mpopcnt
-Target Report Mask(POPCNT)
-Support code generation of popcnt instruction for popcount built-ins
-namely __builtin_popcount, __builtin_popcountl and __builtin_popcountll
-
-mabm
-Target Report Mask(ABM)
-Support code generation of Advanced Bit Manipulation (ABM) instructions,
-which include popcnt and lzcnt instructions, for popcount and clz built-ins
-namely __builtin_popcount, __builtin_popcountl, __builtin_popcountll and
-__builtin_clz, __builtin_clzl, __builtin_clzll
-
-mcx16
-Target Report RejectNegative Var(x86_cmpxchg16b)
-Support code generation of cmpxchg16b instruction.
-
-msahf
-Target Report RejectNegative Var(x86_sahf)
-Support code generation of sahf instruction in 64bit x86-64 code
-
msseregparm
Target RejectNegative Mask(SSEREGPARM)
Use SSE register passing conventions for SF and DF mode
@@ -243,5 +183,66 @@ mtune=
Target RejectNegative Joined Var(ix86_tune_string)
Schedule code for given CPU
-;; Support Athlon 3Dnow builtins
-Mask(3DNOW_A)
+;; ISA support
+
+m32
+Target RejectNegative Negative(m64) Report InverseMask(ISA_64BIT) Var(ix86_isa_flags) VarExists
+Generate 32bit i386 code
+
+m64
+Target RejectNegative Negative(m32) Report Mask(ISA_64BIT) Var(ix86_isa_flags) VarExists
+Generate 64bit x86-64 code
+
+mmmx
+Target Report Mask(ISA_MMX) Var(ix86_isa_flags) VarExists
+Support MMX built-in functions
+
+m3dnow
+Target Report Mask(ISA_3DNOW) Var(ix86_isa_flags) VarExists
+Support 3DNow! built-in functions
+
+m3dnowa
+Target Undocumented Mask(ISA_3DNOW_A) Var(ix86_isa_flags) VarExists
+Support Athlon 3Dnow! built-in functions
+
+msse
+Target Report Mask(ISA_SSE) Var(ix86_isa_flags) VarExists
+Support MMX and SSE built-in functions and code generation
+
+msse2
+Target Report Mask(ISA_SSE2) Var(ix86_isa_flags) VarExists
+Support MMX, SSE and SSE2 built-in functions and code generation
+
+msse3
+Target Report Mask(ISA_SSE3) Var(ix86_isa_flags) VarExists
+Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation
+
+mssse3
+Target Report Mask(ISA_SSSE3) Var(ix86_isa_flags) VarExists
+Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation
+
+msse4.1
+Target Report Mask(ISA_SSE4_1) Var(ix86_isa_flags) VarExists
+Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation
+
+msse4a
+Target Report Mask(ISA_SSE4A) Var(ix86_isa_flags) VarExists
+Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation
+
+;; Instruction support
+
+mabm
+Target Report RejectNegative Var(x86_abm)
+Support code generation of Advanced Bit Manipulation (ABM) instructions.
+
+mcx16
+Target Report RejectNegative Var(x86_cmpxchg16b)
+Support code generation of cmpxchg16b instruction.
+
+mpopcnt
+Target Report RejectNegative Var(x86_popcnt)
+Support code generation of popcnt instruction.
+
+msahf
+Target Report RejectNegative Var(x86_sahf)
+Support code generation of sahf instruction in 64bit x86-64 code.