Commit 75f6ec9a by Richard Sandiford Committed by Richard Sandiford

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
parent 3ec1c379
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> 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
* fold-const.c (expr_location_or): New function. * fold-const.c (expr_location_or): New function.
......
...@@ -1167,12 +1167,12 @@ enum reg_class ...@@ -1167,12 +1167,12 @@ enum reg_class
} }
/* FPA registers can't do subreg as all values are reformatted to internal /* FPA registers can't do subreg as all values are reformatted to internal
precision. VFP registers may only be accessed in the mode they precision. In VFPv1, VFP registers could only be accessed in the mode
were set. */ they were set, so subregs would be invalid there too. However, we don't
#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \ support VFPv1 at the moment, and the restriction was lifted in VFPv2. */
(GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \ #define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
? reg_classes_intersect_p (FPA_REGS, (CLASS)) \ (GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \
|| reg_classes_intersect_p (VFP_REGS, (CLASS)) \ ? reg_classes_intersect_p (FPA_REGS, (CLASS)) \
: 0) : 0)
/* The class value for index registers, and the one for base regs. */ /* The class value for index registers, and the one for base regs. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment