aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa/pa.c
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2015-02-13 13:06:54 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2015-02-13 13:06:54 +0000
commit98056c540e9cfbaf5a463b10f8d179d58b050163 (patch)
treeeb2ddb9c1608ecb3b157121ca10ed8cd56e47242 /gcc/config/pa/pa.c
parentfb0653ab96ba450a5f364cbf9463060dfe5729f5 (diff)
downloadgcc-98056c540e9cfbaf5a463b10f8d179d58b050163.zip
gcc-98056c540e9cfbaf5a463b10f8d179d58b050163.tar.gz
gcc-98056c540e9cfbaf5a463b10f8d179d58b050163.tar.bz2
constraints.md: Change "Q" and "T" constraints to memory constraints.
* config/pa/constraints.md: Change "Q" and "T" constraints to memory constraints. * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant symbolic references to data to be forced to constant memory on the SOM target. From-SVN: r220680
Diffstat (limited to 'gcc/config/pa/pa.c')
-rw-r--r--gcc/config/pa/pa.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index a568b2f..13bd529 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -1569,6 +1569,14 @@ force_mode (machine_mode mode, rtx orig)
static bool
pa_cannot_force_const_mem (machine_mode mode ATTRIBUTE_UNUSED, rtx x)
{
+ /* Reload sometimes tries to put const data symbolic operands in
+ readonly memory. The HP SOM linker doesn't allow symbolic data
+ in readonly memory. */
+ if (TARGET_SOM
+ && !function_label_operand (x, VOIDmode)
+ && symbolic_operand (x, VOIDmode))
+ return true;
+
return tls_referenced_p (x);
}