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
This commit is contained in:
parent
fb0653ab96
commit
98056c540e
@ -1,3 +1,11 @@
|
||||
2015-02-13 John David Anglin <danglin@gcc.gnu.org>
|
||||
|
||||
* 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.
|
||||
|
||||
2015-02-13 Ilya Enkovich <ilya.enkovich@intel.com>
|
||||
|
||||
PR tree-optimization/65002
|
||||
|
@ -106,7 +106,7 @@
|
||||
(and (match_code "mem")
|
||||
(match_test "IS_LO_SUM_DLT_ADDR_P (XEXP (op, 0))")))
|
||||
|
||||
(define_constraint "Q"
|
||||
(define_memory_constraint "Q"
|
||||
"A memory operand that can be used as the destination operand of an
|
||||
integer store, or the source operand of an integer load. That is
|
||||
any memory operand that isn't a symbolic, indexed or lo_sum memory
|
||||
@ -122,7 +122,7 @@
|
||||
(and (match_code "mem")
|
||||
(match_test "IS_INDEX_ADDR_P (XEXP (op, 0))")))
|
||||
|
||||
(define_constraint "T"
|
||||
(define_memory_constraint "T"
|
||||
"A memory operand for floating-point loads and stores."
|
||||
(match_test "floating_point_store_memory_operand (op, mode)"))
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user