aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-07-19 18:09:32 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1993-07-19 18:09:32 -0400
commitb4f892eb33fec0722db2d1edacdb5df4f149e54b (patch)
tree27263d03465dd378a20d9b2449be0e8abbfd967b
parent2af3d377ff988686e3afdc61532a47a5afa2cc13 (diff)
downloadgcc-b4f892eb33fec0722db2d1edacdb5df4f149e54b.zip
gcc-b4f892eb33fec0722db2d1edacdb5df4f149e54b.tar.gz
gcc-b4f892eb33fec0722db2d1edacdb5df4f149e54b.tar.bz2
(ENCODE_SECTION_INFO): New macro.
(PREDICATE_CODES): Add current_file_function_operand. From-SVN: r4942
-rw-r--r--gcc/config/rs6000/rs6000.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 13d7745..2b45976 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -1410,6 +1410,16 @@ extern int rs6000_trunc_used;
#define READONLY_DATA_SECTION read_only_data_section
+/* If we are referencing a function that is static or is known to be
+ in this file, make the SYMBOL_REF special. We can use this to indicate
+ that we can branch to this function without emitting a no-op after the
+ call. */
+
+#define ENCODE_SECTION_INFO(DECL) \
+ if (TREE_CODE (DECL) == FUNCTION_DECL \
+ && (TREE_ASM_WRITTEN (DECL) || ! TREE_PUBLIC (DECL))) \
+ SYMBOL_REF_FLAG (XEXP (DECL_RTL (DECL), 0)) = 1;
+
/* Indicate that jump tables go in the text section. */
#define JUMP_TABLES_IN_TEXT_SECTION
@@ -1876,6 +1886,7 @@ toc_section () \
{"non_logical_cint_operand", {CONST_INT}}, \
{"mask_operand", {CONST_INT}}, \
{"call_operand", {SYMBOL_REF, REG}}, \
+ {"current_file_function_operand", {SYMBOL_REF}}, \
{"input_operand", {SUBREG, MEM, REG, CONST_INT}}, \
{"branch_comparison_operation", {EQ, NE, LE, LT, GE, \
LT, LEU, LTU, GEU, GTU}}, \