summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormshawcroft <mshawcroft@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-28 12:26:20 +0000
committermshawcroft <mshawcroft@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-28 12:26:20 +0000
commit8fd61aba887a94545bf765d52b25b00060d07a35 (patch)
tree0ca65db91b87450575315069d30bcfd09eb08873
parentfd7110515b17f3589183710fa67805025328456e (diff)
downloadgcc-8fd61aba887a94545bf765d52b25b00060d07a35.tar.gz
[AArch64] Remove aarch64_symbolic_constant_p.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200519 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/config/aarch64/aarch64-protos.h4
-rw-r--r--gcc/config/aarch64/aarch64.c25
-rw-r--r--gcc/config/aarch64/predicates.md5
4 files changed, 20 insertions, 25 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a584e7601d8..129a6082124 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * config/aarch64/aarch64-protos.h
+ aarch64_classify_symbol_expression): Define.
+ (aarch64_symbolic_constant_p): Remove.
+ * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
+ static. Fix line length and white space.
+ (aarch64_symbolic_constant_p): Remove.
+ * config/aarch64/predicates.md (aarch64_valid_symref):
+ Use aarch64_classify_symbol_expression.
+
2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/constraints.md (Ts): New constraint.
diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
index 12f3c3a6fe6..c9d64c66712 100644
--- a/gcc/config/aarch64/aarch64-protos.h
+++ b/gcc/config/aarch64/aarch64-protos.h
@@ -137,6 +137,8 @@ struct tune_params
HOST_WIDE_INT aarch64_initial_elimination_offset (unsigned, unsigned);
bool aarch64_bitmask_imm (HOST_WIDE_INT val, enum machine_mode);
+enum aarch64_symbol_type
+aarch64_classify_symbolic_expression (rtx, enum aarch64_symbol_context);
bool aarch64_constant_address_p (rtx);
bool aarch64_float_const_zero_rtx_p (rtx);
bool aarch64_function_arg_regno_p (unsigned);
@@ -162,8 +164,6 @@ bool aarch64_simd_shift_imm_p (rtx, enum machine_mode, bool);
bool aarch64_simd_valid_immediate (rtx, enum machine_mode, bool,
struct simd_immediate_info *);
bool aarch64_symbolic_address_p (rtx);
-bool aarch64_symbolic_constant_p (rtx, enum aarch64_symbol_context,
- enum aarch64_symbol_type *);
bool aarch64_uimm12_shift (HOST_WIDE_INT);
const char *aarch64_output_casesi (rtx *);
enum aarch64_symbol_type aarch64_classify_symbol (rtx,
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 77591c114ef..dea3bf6f26e 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -3130,10 +3130,13 @@ aarch64_symbolic_address_p (rtx x)
/* Classify the base of symbolic expression X, given that X appears in
context CONTEXT. */
-static enum aarch64_symbol_type
-aarch64_classify_symbolic_expression (rtx x, enum aarch64_symbol_context context)
+
+enum aarch64_symbol_type
+aarch64_classify_symbolic_expression (rtx x,
+ enum aarch64_symbol_context context)
{
rtx offset;
+
split_const (x, &x, &offset);
return aarch64_classify_symbol (x, context);
}
@@ -5134,24 +5137,6 @@ aarch64_classify_symbol (rtx x,
return SYMBOL_FORCE_TO_MEM;
}
-/* Return true if X is a symbolic constant that can be used in context
- CONTEXT. If it is, store the type of the symbol in *SYMBOL_TYPE. */
-
-bool
-aarch64_symbolic_constant_p (rtx x, enum aarch64_symbol_context context,
- enum aarch64_symbol_type *symbol_type)
-{
- rtx offset;
- split_const (x, &x, &offset);
- if (GET_CODE (x) == SYMBOL_REF || GET_CODE (x) == LABEL_REF)
- *symbol_type = aarch64_classify_symbol (x, context);
- else
- return false;
-
- /* No checking of offset at this point. */
- return true;
-}
-
bool
aarch64_constant_address_p (rtx x)
{
diff --git a/gcc/config/aarch64/predicates.md b/gcc/config/aarch64/predicates.md
index 3248f610da0..3e2b6b34357 100644
--- a/gcc/config/aarch64/predicates.md
+++ b/gcc/config/aarch64/predicates.md
@@ -118,9 +118,8 @@
(define_predicate "aarch64_valid_symref"
(match_code "const, symbol_ref, label_ref")
{
- enum aarch64_symbol_type symbol_type;
- return (aarch64_symbolic_constant_p (op, SYMBOL_CONTEXT_ADR, &symbol_type)
- && symbol_type != SYMBOL_FORCE_TO_MEM);
+ return (aarch64_classify_symbolic_expression (op, SYMBOL_CONTEXT_ADR)
+ != SYMBOL_FORCE_TO_MEM);
})
(define_predicate "aarch64_tls_ie_symref"