Index: gcc/gcc/config/i386/i386-c.c |
diff --git a/gcc/gcc/config/i386/i386-c.c b/gcc/gcc/config/i386/i386-c.c |
index 3d17c104e39f4872eef76bd9c05f94f40813ae93..35eab492b6cdda37ac4d501c187333cb79f67bd3 100644 |
--- a/gcc/gcc/config/i386/i386-c.c |
+++ b/gcc/gcc/config/i386/i386-c.c |
@@ -1,5 +1,5 @@ |
/* Subroutines used for macro/preprocessor support on the ia-32. |
- Copyright (C) 2008 |
+ Copyright (C) 2008, 2009 |
Free Software Foundation, Inc. |
This file is part of GCC. |
@@ -119,6 +119,10 @@ ix86_target_macros_internal (int isa_flag, |
def_or_undef (parse_in, "__core2"); |
def_or_undef (parse_in, "__core2__"); |
break; |
+ case PROCESSOR_ATOM: |
+ def_or_undef (parse_in, "__atom"); |
+ def_or_undef (parse_in, "__atom__"); |
+ break; |
/* use PROCESSOR_max to not set/unset the arch macro. */ |
case PROCESSOR_max: |
break; |
@@ -187,6 +191,9 @@ ix86_target_macros_internal (int isa_flag, |
case PROCESSOR_CORE2: |
def_or_undef (parse_in, "__tune_core2__"); |
break; |
+ case PROCESSOR_ATOM: |
+ def_or_undef (parse_in, "__tune_atom__"); |
+ break; |
case PROCESSOR_GENERIC32: |
case PROCESSOR_GENERIC64: |
break; |
@@ -223,8 +230,16 @@ ix86_target_macros_internal (int isa_flag, |
def_or_undef (parse_in, "__FMA__"); |
if (isa_flag & OPTION_MASK_ISA_SSE4A) |
def_or_undef (parse_in, "__SSE4A__"); |
- if (isa_flag & OPTION_MASK_ISA_SSE5) |
- def_or_undef (parse_in, "__SSE5__"); |
+ if (isa_flag & OPTION_MASK_ISA_FMA4) |
+ def_or_undef (parse_in, "__FMA4__"); |
+ if (isa_flag & OPTION_MASK_ISA_XOP) |
+ def_or_undef (parse_in, "__XOP__"); |
+ if (isa_flag & OPTION_MASK_ISA_LWP) |
+ def_or_undef (parse_in, "__LWP__"); |
+ if (isa_flag & OPTION_MASK_ISA_ABM) |
+ def_or_undef (parse_in, "__ABM__"); |
+ if (isa_flag & OPTION_MASK_ISA_POPCNT) |
+ def_or_undef (parse_in, "__POPCNT__"); |
if ((fpmath & FPMATH_SSE) && (isa_flag & OPTION_MASK_ISA_SSE)) |
def_or_undef (parse_in, "__SSE_MATH__"); |
if ((fpmath & FPMATH_SSE) && (isa_flag & OPTION_MASK_ISA_SSE2)) |
@@ -273,10 +288,10 @@ ix86_pragma_target_parse (tree args, tree pop_target) |
prev_isa = prev_opt->ix86_isa_flags; |
cur_isa = cur_opt->ix86_isa_flags; |
diff_isa = (prev_isa ^ cur_isa); |
- prev_arch = prev_opt->arch; |
- prev_tune = prev_opt->tune; |
- cur_arch = cur_opt->arch; |
- cur_tune = cur_opt->tune; |
+ prev_arch = (enum processor_type) prev_opt->arch; |
+ prev_tune = (enum processor_type) prev_opt->tune; |
+ cur_arch = (enum processor_type) cur_opt->arch; |
+ cur_tune = (enum processor_type) cur_opt->tune; |
/* If the same processor is used for both previous and current options, don't |
change the macros. */ |
@@ -290,14 +305,14 @@ ix86_pragma_target_parse (tree args, tree pop_target) |
ix86_target_macros_internal (prev_isa & diff_isa, |
prev_arch, |
prev_tune, |
- prev_opt->fpmath, |
+ (enum fpmath_unit) prev_opt->fpmath, |
cpp_undef); |
/* Define all of the macros for new options that were just turned on. */ |
ix86_target_macros_internal (cur_isa & diff_isa, |
cur_arch, |
cur_tune, |
- cur_opt->fpmath, |
+ (enum fpmath_unit) cur_opt->fpmath, |
cpp_define); |
return true; |