aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2013-02-18 16:29:49 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2013-02-18 16:29:49 +0000
commit3f587ca3697be53b818d72d06f763cd9d52186e6 (patch)
tree06762f4094298247605efa4b1469830bbb86c12d
parentceaca33e28ab08fc6913935bcc50161d211f27b1 (diff)
downloadgcc-3f587ca3697be53b818d72d06f763cd9d52186e6.zip
gcc-3f587ca3697be53b818d72d06f763cd9d52186e6.tar.gz
gcc-3f587ca3697be53b818d72d06f763cd9d52186e6.tar.bz2
re PR target/56347 (FAIL: gfortran.dg/integer_exponentiation_2.f90 -O2 execution test)
PR target/56347 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark registers %fr12 and %fr12R as call used. From-SVN: r196123
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/pa/pa.c15
2 files changed, 20 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4b53af8..e8be788 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,8 @@
-2013-02-18 John David Anglin <dave.anglin@nrc-cnrc.ca>
+2013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/56347
+ * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
+ registers %fr12 and %fr12R as call used.
PR target/56214
* config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 0d39483..7816eeb 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -10313,6 +10313,21 @@ pa_conditional_register_usage (void)
{
int i;
+ if (TARGET_HPUX)
+ {
+ /* Work around powf bug in libm. */
+ if (TARGET_64BIT)
+ {
+ /* Mark %fr12 as call used. */
+ call_used_regs[40] = 1;
+ }
+ else
+ {
+ /* Mark %fr12 and %fr12R as call used. */
+ call_used_regs[48] = 1;
+ call_used_regs[49] = 1;
+ }
+ }
if (!TARGET_64BIT && !TARGET_PA_11)
{
for (i = 56; i <= FP_REG_LAST; i++)