summaryrefslogtreecommitdiff
path: root/gcc/config/nios2
diff options
context:
space:
mode:
authorsandra <sandra@138bc75d-0d04-0410-961f-82ee72b054a4>2015-07-05 21:49:08 +0000
committersandra <sandra@138bc75d-0d04-0410-961f-82ee72b054a4>2015-07-05 21:49:08 +0000
commit5c3c2309eec982ca268a43fdd831e52160bdb0dc (patch)
treeed87521b0f371de05b482aab31fb3b60a63fc020 /gcc/config/nios2
parente2c4a09ac84838edd25dfe60c95218f30d346a8e (diff)
downloadgcc-5c3c2309eec982ca268a43fdd831e52160bdb0dc.tar.gz
2015-07-05 Chung-Lin Tang <cltang@codesourcery.com>
Sandra Loosemore <sandra@codesourcery.com> gcc/ * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p): Delete extern declaration. (gprel_constant_p): Add extern declaration. * config/nios2/constraints.md ("S"): Use gprel_constant_p instead of nios2_symbol_ref_in_small_data_p. * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise. (nios2_symbol_ref_in_small_data_p): Make static. (gprel_constant_p): Make non-static. gcc/testsuite/ * gcc.target/nios2/gprel-offset.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225437 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/nios2')
-rw-r--r--gcc/config/nios2/constraints.md3
-rw-r--r--gcc/config/nios2/nios2-protos.h2
-rw-r--r--gcc/config/nios2/nios2.c11
3 files changed, 8 insertions, 8 deletions
diff --git a/gcc/config/nios2/constraints.md b/gcc/config/nios2/constraints.md
index 735f892d524..b67e87d3b3c 100644
--- a/gcc/config/nios2/constraints.md
+++ b/gcc/config/nios2/constraints.md
@@ -84,8 +84,7 @@
(define_constraint "S"
"An immediate stored in small data, accessible by GP."
- (and (match_code "symbol_ref")
- (match_test "nios2_symbol_ref_in_small_data_p (op)")))
+ (match_test "gprel_constant_p (op)"))
(define_constraint "T"
"A constant unspec offset representing a relocation."
diff --git a/gcc/config/nios2/nios2-protos.h b/gcc/config/nios2/nios2-protos.h
index 2855c92b2f6..52985a9d06c 100644
--- a/gcc/config/nios2/nios2-protos.h
+++ b/gcc/config/nios2/nios2-protos.h
@@ -44,7 +44,7 @@ extern bool nios2_fpu_insn_enabled (enum n2fpu_code);
extern const char * nios2_fpu_insn_asm (enum n2fpu_code);
extern bool nios2_legitimate_pic_operand_p (rtx);
-extern bool nios2_symbol_ref_in_small_data_p (rtx);
+extern bool gprel_constant_p (rtx);
extern bool nios2_regno_ok_for_base_p (int, bool);
extern bool nios2_unspec_reloc_p (rtx);
diff --git a/gcc/config/nios2/nios2.c b/gcc/config/nios2/nios2.c
index fd035fb59aa..51f7aa2defb 100644
--- a/gcc/config/nios2/nios2.c
+++ b/gcc/config/nios2/nios2.c
@@ -1614,14 +1614,15 @@ nios2_legitimate_address_p (machine_mode mode ATTRIBUTE_UNUSED,
case SYMBOL_REF:
if (SYMBOL_REF_TLS_MODEL (operand))
return false;
-
- if (nios2_symbol_ref_in_small_data_p (operand))
+
+ /* Else, fall through. */
+ case CONST:
+ if (gprel_constant_p (operand))
return true;
/* Else, fall through. */
case LABEL_REF:
case CONST_INT:
- case CONST:
case CONST_DOUBLE:
return false;
@@ -1688,7 +1689,7 @@ nios2_in_small_data_p (const_tree exp)
/* Return true if symbol is in small data section. */
-bool
+static bool
nios2_symbol_ref_in_small_data_p (rtx sym)
{
tree decl;
@@ -2110,7 +2111,7 @@ nios2_print_operand (FILE *file, rtx op, int letter)
}
/* Return true if this is a GP-relative accessible reference. */
-static bool
+bool
gprel_constant_p (rtx op)
{
if (GET_CODE (op) == SYMBOL_REF