re PR target/58139 (PowerPC volatile VSX register live across call)
PR target/58139 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes looking for widest mode. From-SVN: r202286
This commit is contained in:
parent
6994430ae0
commit
80a1816100
2 changed files with 14 additions and 13 deletions
|
@ -1,3 +1,9 @@
|
|||
2013-09-05 Peter Bergner <bergner@vnet.ibm.com>
|
||||
|
||||
PR target/58139
|
||||
* reginfo.c (choose_hard_reg_mode): Scan through all mode classes
|
||||
looking for widest mode.
|
||||
|
||||
2013-09-05 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
|
||||
|
|
|
@ -620,40 +620,35 @@ choose_hard_reg_mode (unsigned int regno ATTRIBUTE_UNUSED,
|
|||
mode = GET_MODE_WIDER_MODE (mode))
|
||||
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
|
||||
&& HARD_REGNO_MODE_OK (regno, mode)
|
||||
&& (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
|
||||
&& (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
|
||||
&& GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
|
||||
found_mode = mode;
|
||||
|
||||
if (found_mode != VOIDmode)
|
||||
return found_mode;
|
||||
|
||||
for (mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT);
|
||||
mode != VOIDmode;
|
||||
mode = GET_MODE_WIDER_MODE (mode))
|
||||
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
|
||||
&& HARD_REGNO_MODE_OK (regno, mode)
|
||||
&& (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
|
||||
&& (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
|
||||
&& GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
|
||||
found_mode = mode;
|
||||
|
||||
if (found_mode != VOIDmode)
|
||||
return found_mode;
|
||||
|
||||
for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_FLOAT);
|
||||
mode != VOIDmode;
|
||||
mode = GET_MODE_WIDER_MODE (mode))
|
||||
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
|
||||
&& HARD_REGNO_MODE_OK (regno, mode)
|
||||
&& (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
|
||||
&& (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
|
||||
&& GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
|
||||
found_mode = mode;
|
||||
|
||||
if (found_mode != VOIDmode)
|
||||
return found_mode;
|
||||
|
||||
for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_INT);
|
||||
mode != VOIDmode;
|
||||
mode = GET_MODE_WIDER_MODE (mode))
|
||||
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
|
||||
&& HARD_REGNO_MODE_OK (regno, mode)
|
||||
&& (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
|
||||
&& (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
|
||||
&& GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
|
||||
found_mode = mode;
|
||||
|
||||
if (found_mode != VOIDmode)
|
||||
|
|
Loading…
Add table
Reference in a new issue