RISC-V: Mark fsX as call clobbered when soft-float.

2018-01-17  Andrew Waterman  <andrew@sifive.com>
	gcc/
	* config/riscv/riscv.c (riscv_conditional_register_usage): If
	UNITS_PER_FP_ARG is 0, set call_used_regs to 1 for all FP regs.

From-SVN: r256811
This commit is contained in:
Andrew Waterman 2018-01-17 19:07:20 +00:00 committed by Jim Wilson
parent c1fa27707a
commit e423d5bc04
2 changed files with 12 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2018-01-17 Andrew Waterman <andrew@sifive.com>
* config/riscv/riscv.c (riscv_conditional_register_usage): If
UNITS_PER_FP_ARG is 0, set call_used_regs to 1 for all FP regs.
2018-01-17 David Malcolm <dmalcolm@redhat.com>
PR lto/83121

View file

@ -4123,6 +4123,13 @@ riscv_conditional_register_usage (void)
for (int regno = FP_REG_FIRST; regno <= FP_REG_LAST; regno++)
fixed_regs[regno] = call_used_regs[regno] = 1;
}
/* In the soft-float ABI, there are no callee-saved FP registers. */
if (UNITS_PER_FP_ARG == 0)
{
for (int regno = FP_REG_FIRST; regno <= FP_REG_LAST; regno++)
call_used_regs[regno] = 1;
}
}
/* Return a register priority for hard reg REGNO. */