diff options
author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-30 11:24:32 +0000 |
---|---|---|
committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-30 11:24:32 +0000 |
commit | e44348b5a67cb32a21fd5dd2250eee8ed4f997c5 (patch) | |
tree | 0651ed4c91eedf4b29b65f6c31412dd3dbac8aa0 /gcc/config/i386/i386.opt | |
parent | 1dadff6d5118456314a639c648a89beb43733f39 (diff) | |
download | gcc-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.opt | 125 |
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. |