From 4ac005badf532dcf778b784a5d67664e50f0c690 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Thu, 16 Jan 2014 09:23:33 +0100 Subject: [PATCH] i386.c (ix86_hard_regno_mode_ok): Use VALID_AVX256_REG_OR_OI_MODE. * config/i386/i386.c (ix86_hard_regno_mode_ok): Use VALID_AVX256_REG_OR_OI_MODE. From-SVN: r206658 --- gcc/ChangeLog | 44 +++++++++++++++++++++++------------------- gcc/config/i386/i386.c | 6 +++--- gcc/config/i386/i386.h | 2 +- 3 files changed, 28 insertions(+), 24 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0788036f3b4..255597fe539 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-01-15 Uros Bizjak + + * config/i386/i386.c (ix86_hard_regno_mode_ok): Use + VALID_AVX256_REG_OR_OI_MODE. + 2014-01-15 Pat Haugen * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if @@ -142,9 +147,8 @@ PR target/59794 * config/i386/i386.c (type_natural_mode): Add a bool parameter - to indicate if type is used for function return value. Warn - ABI change if the vector mode isn't available for function - return value. + to indicate if type is used for function return value. Warn ABI + change if the vector mode isn't available for function return value. (ix86_function_arg_advance): Pass false to type_natural_mode. (ix86_function_arg): Likewise. (ix86_gimplify_va_arg): Likewise. @@ -201,8 +205,10 @@ (_movntdqa): Extend to 512 bits. (avx512er_exp2): Fix rounding: make it SAE only. - (avx512er_rcp28): Ditto. - (avx512er_rsqrt28): Ditto. + (avx512er_rcp28): + Ditto. + (avx512er_rsqrt28): + Ditto. (avx512er_vmrcp28): Ditto. (avx512er_vmrsqrt28): Ditto. (avx512f_getmant): Ditto. @@ -316,8 +322,8 @@ 2014-01-10 Jan Hubicka PR ipa/58585 - * ipa-devirt.c (build_type_inheritance_graph): Also add types of vtables - into the type inheritance graph. + * ipa-devirt.c (build_type_inheritance_graph): Also add types of + vtables into the type inheritance graph. 2014-01-10 Jakub Jelinek @@ -475,17 +481,17 @@ 2014-01-09 Max Ostapenko - * cfgexpand.c (expand_stack_vars): Optionally disable + * cfgexpand.c (expand_stack_vars): Optionally disable asan stack protection. (expand_used_vars): Likewise. (partition_stack_vars): Likewise. - * asan.c (asan_emit_stack_protection): Optionally disable + * asan.c (asan_emit_stack_protection): Optionally disable after return stack usage. - (instrument_derefs): Optionally disable memory + (instrument_derefs): Optionally disable memory access instrumentation. (instrument_builtin_call): Likewise. (instrument_strlen_call): Likewise. - (asan_protect_global): Optionally disable + (asan_protect_global): Optionally disable global variables protection. * doc/invoke.texi: Added doc for new options. * params.def: Added new options. @@ -512,7 +518,8 @@ 2014-01-08 Catherine Moore - * config/mips/mips.md (simple_return): Attempt to use JRC for microMIPS. + * config/mips/mips.md (simple_return): Attempt to use JRC + for microMIPS. * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS. 2014-01-08 Richard Sandiford @@ -557,7 +564,7 @@ (store_expr): Adjust. * cfgexpand.c (expand_call_stmt): Adjust. -2014-01-08 Rong Xu +2014-01-08 Rong Xu * gcov-io.c (gcov_var): Move from gcov-io.h. (gcov_position): Ditto. @@ -610,12 +617,10 @@ PR middle-end/53623 * ree.c (combine_set_extension): Handle case where source and destination registers in an extension insn are different. - (combine_reaching_defs): Allow source and destination - registers in extension to be different under limited - circumstances. + (combine_reaching_defs): Allow source and destination registers + in extension to be different under limited circumstances. (add_removable_extension): Remove restriction that the - source and destination registers in the extension are the - same. + source and destination registers in the extension are the same. (find_and_remove_re): Emit a copy from the extension's destination to its source after the defining insn if the source and destination registers are different. @@ -640,8 +645,7 @@ PR 57386/target * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): - Only check TFmode for SPE constants. Don't check TImode or - TDmode. + Only check TFmode for SPE constants. Don't check TImode or TDmode. 2014-01-07 James Greenhalgh diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index e981bbeff06..73c5a86543c 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -37473,9 +37473,9 @@ ix86_hard_regno_mode_ok (int regno, enum machine_mode mode) if (EXT_REX_SSE_REGNO_P (regno)) return false; - /* OImode move is available only when AVX is enabled. */ - return ((TARGET_AVX && mode == OImode) - || (TARGET_AVX && VALID_AVX256_REG_MODE (mode)) + /* OImode and AVX modes are available only when AVX is enabled. */ + return ((TARGET_AVX + && VALID_AVX256_REG_OR_OI_MODE (mode)) || VALID_SSE_REG_MODE (mode) || VALID_SSE2_REG_MODE (mode) || VALID_MMX_REG_MODE (mode) diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 27151f60ffa..3199b41292d 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -1047,7 +1047,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); || (MODE) == V4DImode || (MODE) == V2TImode || (MODE) == V8SFmode \ || (MODE) == V4DFmode) -#define VALID_AVX256_REG_OR_OI_MODE(MODE) \ +#define VALID_AVX256_REG_OR_OI_MODE(MODE) \ (VALID_AVX256_REG_MODE (MODE) || (MODE) == OImode) #define VALID_AVX512F_SCALAR_MODE(MODE) \ -- 2.30.2