diff options
author | John David Anglin <danglin@gcc.gnu.org> | 2015-02-13 13:06:54 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2015-02-13 13:06:54 +0000 |
commit | 98056c540e9cfbaf5a463b10f8d179d58b050163 (patch) | |
tree | eb2ddb9c1608ecb3b157121ca10ed8cd56e47242 /gcc/config/pa/pa.c | |
parent | fb0653ab96ba450a5f364cbf9463060dfe5729f5 (diff) | |
download | gcc-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.c | 8 |
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); } |