Commit 7a955d62 by Anatoly Sokolov Committed by Anatoly Sokolov

rs6000.c (rs6000_mode_dependent_address_p): New.

	* config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
	(TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
	(rs6000_mode_dependent_address_ptr): Make static.
	* config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
	* config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
	Remove.

From-SVN: r159759
parent 362ff46e
2010-05-23 Anatoly Sokolov <aesok@post.ru>
* config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
(TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
(rs6000_mode_dependent_address_ptr): Make static.
* config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
* config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
Remove.
2010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com> 2010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
PR target/43869 PR target/43869
......
...@@ -119,7 +119,6 @@ extern rtx rs6000_secondary_memory_needed_rtx (enum machine_mode); ...@@ -119,7 +119,6 @@ extern rtx rs6000_secondary_memory_needed_rtx (enum machine_mode);
extern rtx (*rs6000_legitimize_reload_address_ptr) (rtx, enum machine_mode, extern rtx (*rs6000_legitimize_reload_address_ptr) (rtx, enum machine_mode,
int, int, int, int *); int, int, int, int *);
extern bool rs6000_legitimate_offset_address_p (enum machine_mode, rtx, int); extern bool rs6000_legitimate_offset_address_p (enum machine_mode, rtx, int);
extern bool (*rs6000_mode_dependent_address_ptr) (const_rtx);
extern rtx rs6000_find_base_term (rtx); extern rtx rs6000_find_base_term (rtx);
extern bool rs6000_offsettable_memref_p (rtx); extern bool rs6000_offsettable_memref_p (rtx);
extern rtx rs6000_return_addr (int, rtx); extern rtx rs6000_return_addr (int, rtx);
......
...@@ -1118,9 +1118,10 @@ rtx (*rs6000_legitimize_reload_address_ptr) (rtx, enum machine_mode, int, int, ...@@ -1118,9 +1118,10 @@ rtx (*rs6000_legitimize_reload_address_ptr) (rtx, enum machine_mode, int, int,
int, int *) int, int *)
= rs6000_legitimize_reload_address; = rs6000_legitimize_reload_address;
static bool rs6000_mode_dependent_address_p (const_rtx);
static bool rs6000_mode_dependent_address (const_rtx); static bool rs6000_mode_dependent_address (const_rtx);
static bool rs6000_debug_mode_dependent_address (const_rtx); static bool rs6000_debug_mode_dependent_address (const_rtx);
bool (*rs6000_mode_dependent_address_ptr) (const_rtx) static bool (*rs6000_mode_dependent_address_ptr) (const_rtx)
= rs6000_mode_dependent_address; = rs6000_mode_dependent_address;
static enum reg_class rs6000_secondary_reload_class (enum reg_class, static enum reg_class rs6000_secondary_reload_class (enum reg_class,
...@@ -1542,6 +1543,9 @@ static const struct attribute_spec rs6000_attribute_table[] = ...@@ -1542,6 +1543,9 @@ static const struct attribute_spec rs6000_attribute_table[] =
#undef TARGET_LEGITIMATE_ADDRESS_P #undef TARGET_LEGITIMATE_ADDRESS_P
#define TARGET_LEGITIMATE_ADDRESS_P rs6000_legitimate_address_p #define TARGET_LEGITIMATE_ADDRESS_P rs6000_legitimate_address_p
#undef TARGET_MODE_DEPENDENT_ADDRESS_P
#define TARGET_MODE_DEPENDENT_ADDRESS_P rs6000_mode_dependent_address_p
#undef TARGET_CAN_ELIMINATE #undef TARGET_CAN_ELIMINATE
#define TARGET_CAN_ELIMINATE rs6000_can_eliminate #define TARGET_CAN_ELIMINATE rs6000_can_eliminate
...@@ -5884,6 +5888,14 @@ rs6000_debug_legitimate_address_p (enum machine_mode mode, rtx x, ...@@ -5884,6 +5888,14 @@ rs6000_debug_legitimate_address_p (enum machine_mode mode, rtx x,
return ret; return ret;
} }
/* Implement TARGET_MODE_DEPENDENT_ADDRESS_P. */
static bool
rs6000_mode_dependent_address_p (const_rtx addr)
{
return rs6000_mode_dependent_address_ptr (addr);
}
/* Go to LABEL if ADDR (a legitimate address expression) /* Go to LABEL if ADDR (a legitimate address expression)
has an effect that depends on the machine mode it is used for. has an effect that depends on the machine mode it is used for.
......
...@@ -1892,15 +1892,6 @@ do { \ ...@@ -1892,15 +1892,6 @@ do { \
goto WIN; \ goto WIN; \
} while (0) } while (0)
/* Go to LABEL if ADDR (a legitimate address expression)
has an effect that depends on the machine mode it is used for. */
#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR,LABEL) \
do { \
if (rs6000_mode_dependent_address_ptr (ADDR)) \
goto LABEL; \
} while (0)
#define FIND_BASE_TERM rs6000_find_base_term #define FIND_BASE_TERM rs6000_find_base_term
/* The register number of the register used to address a table of /* The register number of the register used to address a table of
......
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