Commit 93913281 by Stan Shebs Committed by Stan Shebs

darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.

        * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
        * config/darwin.c (machopic_stub_name): Account for internally
        generated lib calls such as memcpy.

From-SVN: r45385
parent 4c21ef03
2001-09-04 Stan Shebs <shebs@apple.com>
* config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
* config/darwin.c (machopic_stub_name): Account for internally
generated lib calls such as memcpy.
2001-09-04 Richard Henderson <rth@redhat.com> 2001-09-04 Richard Henderson <rth@redhat.com>
* unwind.h (_UA_END_OF_STACK): New flag. * unwind.h (_UA_END_OF_STACK): New flag.
......
...@@ -324,6 +324,7 @@ machopic_stub_name (name) ...@@ -324,6 +324,7 @@ machopic_stub_name (name)
const char *name; const char *name;
{ {
tree temp, ident = get_identifier (name); tree temp, ident = get_identifier (name);
const char *tname;
for (temp = machopic_stubs; for (temp = machopic_stubs;
temp != NULL_TREE; temp != NULL_TREE;
...@@ -331,7 +332,14 @@ machopic_stub_name (name) ...@@ -331,7 +332,14 @@ machopic_stub_name (name)
{ {
if (ident == TREE_VALUE (temp)) if (ident == TREE_VALUE (temp))
return IDENTIFIER_POINTER (TREE_PURPOSE (temp)); return IDENTIFIER_POINTER (TREE_PURPOSE (temp));
if (strcmp (name, IDENTIFIER_POINTER (TREE_VALUE (temp))) == 0) tname = IDENTIFIER_POINTER (TREE_VALUE (temp));
if (strcmp (name, tname) == 0)
return IDENTIFIER_POINTER (TREE_PURPOSE (temp));
/* A library call name might not be section-encoded yet, so try
it against a stripped name. */
if (name[0] != '!'
&& tname[0] == '!'
&& strcmp (name, tname + 4) == 0)
return IDENTIFIER_POINTER (TREE_PURPOSE (temp)); return IDENTIFIER_POINTER (TREE_PURPOSE (temp));
} }
......
...@@ -215,6 +215,22 @@ do { text_section (); \ ...@@ -215,6 +215,22 @@ do { text_section (); \
ASM_OUTPUT_LABEL (FILE, xname); \ ASM_OUTPUT_LABEL (FILE, xname); \
} while (0) } while (0)
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
do { \
char *xname = NAME; \
if (GET_CODE (XEXP (DECL_RTL (DECL), 0)) != SYMBOL_REF) \
xname = IDENTIFIER_POINTER (DECL_NAME (DECL)); \
if ((TREE_STATIC (DECL) \
&& (!DECL_COMMON (DECL) || !TREE_PUBLIC (DECL))) \
|| DECL_INITIAL (DECL)) \
machopic_define_name (xname); \
if ((TREE_STATIC (DECL) \
&& (!DECL_COMMON (DECL) || !TREE_PUBLIC (DECL))) \
|| DECL_INITIAL (DECL)) \
ENCODE_SECTION_INFO (DECL); \
ASM_OUTPUT_LABEL (FILE, xname); \
} while (0)
/* Wrap new method names in quotes so the assembler doesn't gag. /* Wrap new method names in quotes so the assembler doesn't gag.
Make Objective-C internal symbols local. */ Make Objective-C internal symbols local. */
......
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