No functional changes. 2016-12-08 Uros Bizjak <ubiz...@gmail.com>
* gcc.target/i386/i386.h (HARD_REGNO_NREGS): Use GENERAL_REGNO_P. (HARD_REGNO_NREGS_HAS_PADDING): Ditto. Simplify macro. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Committed to mainline SVN. Uros.
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 83ffd4e..8bc31f9 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -1080,22 +1080,19 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); applied to them. */ #define HARD_REGNO_NREGS(REGNO, MODE) \ - (STACK_REGNO_P (REGNO) || SSE_REGNO_P (REGNO) || MMX_REGNO_P (REGNO) \ - || MASK_REGNO_P (REGNO) || BND_REGNO_P (REGNO) \ - ? (COMPLEX_MODE_P (MODE) ? 2 : \ - (((MODE == V64SFmode) || (MODE == V64SImode)) ? 4 : 1)) \ - : ((MODE) == XFmode \ + (GENERAL_REGNO_P (REGNO) \ + ? ((MODE) == XFmode \ ? (TARGET_64BIT ? 2 : 3) \ : ((MODE) == XCmode \ ? (TARGET_64BIT ? 4 : 6) \ - : CEIL (GET_MODE_SIZE (MODE), UNITS_PER_WORD)))) + : CEIL (GET_MODE_SIZE (MODE), UNITS_PER_WORD))) \ + : (COMPLEX_MODE_P (MODE) ? 2 : \ + (((MODE == V64SFmode) || (MODE == V64SImode)) ? 4 : 1))) #define HARD_REGNO_NREGS_HAS_PADDING(REGNO, MODE) \ - ((TARGET_128BIT_LONG_DOUBLE && !TARGET_64BIT) \ - ? (STACK_REGNO_P (REGNO) || SSE_REGNO_P (REGNO) || MMX_REGNO_P (REGNO) \ - ? 0 \ - : ((MODE) == XFmode || (MODE) == XCmode)) \ - : 0) + (TARGET_128BIT_LONG_DOUBLE && !TARGET_64BIT \ + && GENERAL_REGNO_P (REGNO) \ + && ((MODE) == XFmode || (MODE) == XCmode)) #define HARD_REGNO_NREGS_WITH_PADDING(REGNO, MODE) ((MODE) == XFmode ? 4 : 8)