arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS case to VFPv1.

gcc/
	* config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
	case to VFPv1.

From-SVN: r171520
This commit is contained in:
Richard Sandiford 2011-03-25 18:26:40 +00:00 committed by Richard Sandiford
parent 3ec1c379f9
commit 75f6ec9afd
2 changed files with 11 additions and 6 deletions

View file

@ -1,3 +1,8 @@
2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
* config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
case to VFPv1.
2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
* fold-const.c (expr_location_or): New function.

View file

@ -1167,12 +1167,12 @@ enum reg_class
}
/* FPA registers can't do subreg as all values are reformatted to internal
precision. VFP registers may only be accessed in the mode they
were set. */
#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
(GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \
? reg_classes_intersect_p (FPA_REGS, (CLASS)) \
|| reg_classes_intersect_p (VFP_REGS, (CLASS)) \
precision. In VFPv1, VFP registers could only be accessed in the mode
they were set, so subregs would be invalid there too. However, we don't
support VFPv1 at the moment, and the restriction was lifted in VFPv2. */
#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
(GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \
? reg_classes_intersect_p (FPA_REGS, (CLASS)) \
: 0)
/* The class value for index registers, and the one for base regs. */