From a60c3351032bbaad8c45dbad341437ba47540568 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Mon, 16 Jan 2017 20:58:59 +0100 Subject: [PATCH] i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and QImode fixups to general and mask registers only. * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and QImode fixups to general and mask registers only. From-SVN: r244504 --- gcc/ChangeLog | 5 +++++ gcc/config/i386/i386.h | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a318f9dc37..d3cbda6afe8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-01-16 Uros Bizjak + + * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and + QImode fixups to general and mask registers only. + 2017-01-16 Carl Love * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index a636439ecef..f31f11c38f2 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -1211,9 +1211,10 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); (CC_REGNO_P (REGNO) ? VOIDmode \ : (MODE) == VOIDmode && (NREGS) != 1 ? VOIDmode \ : (MODE) == VOIDmode ? choose_hard_reg_mode ((REGNO), (NREGS), false) \ - : (MODE) == HImode && !(TARGET_PARTIAL_REG_STALL \ + : (MODE) == HImode && !((GENERAL_REGNO_P (REGNO) \ + && TARGET_PARTIAL_REG_STALL) \ || MASK_REGNO_P (REGNO)) ? SImode \ - : (MODE) == QImode && !(TARGET_64BIT || QI_REGNO_P (REGNO) \ + : (MODE) == QImode && !(ANY_QI_REGNO_P (REGNO) \ || MASK_REGNO_P (REGNO)) ? SImode \ : (MODE)) -- 2.30.2