summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-23 08:52:21 +0000
committeraesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-23 08:52:21 +0000
commitc7000751d67b66d966d4d3afa09c09d32a3805a8 (patch)
treeaf56490dab8607ca6ff3560fb63f8ac86df8d3d2
parentdb94badd45b533a3a73c02e1c79c1792f195929a (diff)
downloadgcc-c7000751d67b66d966d4d3afa09c09d32a3805a8.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159759 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/rs6000/rs6000-protos.h1
-rw-r--r--gcc/config/rs6000/rs6000.c14
-rw-r--r--gcc/config/rs6000/rs6000.h9
4 files changed, 22 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c4ec2cae3fa..a7a77433a09 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+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>
PR target/43869
diff --git a/gcc/config/rs6000/rs6000-protos.h b/gcc/config/rs6000/rs6000-protos.h
index 7a0db265814..43ed634495b 100644
--- a/gcc/config/rs6000/rs6000-protos.h
+++ b/gcc/config/rs6000/rs6000-protos.h
@@ -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,
int, int, int, 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 bool rs6000_offsettable_memref_p (rtx);
extern rtx rs6000_return_addr (int, rtx);
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 8f2c35d07f2..35be57bac9e 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -1118,9 +1118,10 @@ rtx (*rs6000_legitimize_reload_address_ptr) (rtx, enum machine_mode, int, int,
int, int *)
= rs6000_legitimize_reload_address;
+static bool rs6000_mode_dependent_address_p (const_rtx);
static bool rs6000_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;
static enum reg_class rs6000_secondary_reload_class (enum reg_class,
@@ -1542,6 +1543,9 @@ static const struct attribute_spec rs6000_attribute_table[] =
#undef TARGET_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
#define TARGET_CAN_ELIMINATE rs6000_can_eliminate
@@ -5884,6 +5888,14 @@ rs6000_debug_legitimate_address_p (enum machine_mode mode, rtx x,
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)
has an effect that depends on the machine mode it is used for.
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index a0c2ad79b72..6be51cc47d5 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -1892,15 +1892,6 @@ do { \
goto WIN; \
} 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
/* The register number of the register used to address a table of