Commit da4f13a4 by Marcus Shawcroft Committed by Marcus Shawcroft

[AArch64] Remove aarch64_symbolic_constant_p.

From-SVN: r200519
parent 956a95a5
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> 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/constraints.md (Ts): New constraint. * config/arm/constraints.md (Ts): New constraint.
......
...@@ -137,6 +137,8 @@ struct tune_params ...@@ -137,6 +137,8 @@ struct tune_params
HOST_WIDE_INT aarch64_initial_elimination_offset (unsigned, unsigned); HOST_WIDE_INT aarch64_initial_elimination_offset (unsigned, unsigned);
bool aarch64_bitmask_imm (HOST_WIDE_INT val, enum machine_mode); 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_constant_address_p (rtx);
bool aarch64_float_const_zero_rtx_p (rtx); bool aarch64_float_const_zero_rtx_p (rtx);
bool aarch64_function_arg_regno_p (unsigned); bool aarch64_function_arg_regno_p (unsigned);
...@@ -162,8 +164,6 @@ bool aarch64_simd_shift_imm_p (rtx, enum machine_mode, bool); ...@@ -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, bool aarch64_simd_valid_immediate (rtx, enum machine_mode, bool,
struct simd_immediate_info *); struct simd_immediate_info *);
bool aarch64_symbolic_address_p (rtx); 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); bool aarch64_uimm12_shift (HOST_WIDE_INT);
const char *aarch64_output_casesi (rtx *); const char *aarch64_output_casesi (rtx *);
enum aarch64_symbol_type aarch64_classify_symbol (rtx, enum aarch64_symbol_type aarch64_classify_symbol (rtx,
......
...@@ -3130,10 +3130,13 @@ aarch64_symbolic_address_p (rtx x) ...@@ -3130,10 +3130,13 @@ aarch64_symbolic_address_p (rtx x)
/* Classify the base of symbolic expression X, given that X appears in /* Classify the base of symbolic expression X, given that X appears in
context CONTEXT. */ 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; rtx offset;
split_const (x, &x, &offset); split_const (x, &x, &offset);
return aarch64_classify_symbol (x, context); return aarch64_classify_symbol (x, context);
} }
...@@ -5134,24 +5137,6 @@ aarch64_classify_symbol (rtx x, ...@@ -5134,24 +5137,6 @@ aarch64_classify_symbol (rtx x,
return SYMBOL_FORCE_TO_MEM; 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 bool
aarch64_constant_address_p (rtx x) aarch64_constant_address_p (rtx x)
{ {
......
...@@ -118,9 +118,8 @@ ...@@ -118,9 +118,8 @@
(define_predicate "aarch64_valid_symref" (define_predicate "aarch64_valid_symref"
(match_code "const, symbol_ref, label_ref") (match_code "const, symbol_ref, label_ref")
{ {
enum aarch64_symbol_type symbol_type; return (aarch64_classify_symbolic_expression (op, SYMBOL_CONTEXT_ADR)
return (aarch64_symbolic_constant_p (op, SYMBOL_CONTEXT_ADR, &symbol_type) != SYMBOL_FORCE_TO_MEM);
&& symbol_type != SYMBOL_FORCE_TO_MEM);
}) })
(define_predicate "aarch64_tls_ie_symref" (define_predicate "aarch64_tls_ie_symref"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment