rs6000.c (symbol_ref_operand): Remove hack for TARGET_MACHO.

2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>

        * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
        for TARGET_MACHO.
        (print_operand): For TARGET_MACHO check to see if we need a stub
        and output one if we need it.

From-SVN: r80966
This commit is contained in:
Andrew Pinski 2004-04-21 15:27:17 +00:00 committed by Andrew Pinski
parent 0d8c9baf81
commit f9da97f03c
2 changed files with 17 additions and 19 deletions

View File

@ -1,4 +1,9 @@
2004-04-12 Andrew Pinski <pinskia@physics.uc.edu>
2004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
for TARGET_MACHO.
(print_operand): For TARGET_MACHO check to see if we need a stub
and output one if we need it.
PR debug/15033
* dwarf2out.c (rtl_for_decl_location): Check for NULL

View File

@ -2315,23 +2315,6 @@ symbol_ref_operand (rtx op, enum machine_mode mode)
if (mode != VOIDmode && GET_MODE (op) != mode)
return 0;
#if TARGET_MACHO
if (GET_CODE (op) == SYMBOL_REF && TARGET_MACHO && MACHOPIC_INDIRECT)
{
/* Macho says it has to go through a stub or be local
when indirect mode. Stubs are considered local. */
const char *t = XSTR (op, 0);
/* "&" means that it is it a local defined symbol
so it is okay to call to. */
if (t[0] == '&')
return true;
/* "!T" means that the function is local defined. */
return (t[0] == '!' && t[1] == 'T');
}
#endif
return (GET_CODE (op) == SYMBOL_REF
&& (DEFAULT_ABI != ABI_AIX || SYMBOL_REF_FUNCTION_P (op)));
}
@ -9507,7 +9490,17 @@ print_operand (FILE *file, rtx x, int code)
break;
}
}
if (TARGET_AIX)
/* For macho, we need to check it see if we need a stub. */
if (TARGET_MACHO)
{
const char *name = XSTR (x, 0);
#ifdef TARGET_MACHO
if (machopic_classify_name (name) == MACHOPIC_UNDEFINED_FUNCTION)
name = machopic_stub_name (name);
#endif
assemble_name (file, name);
}
else if (TARGET_AIX)
RS6000_OUTPUT_BASENAME (file, XSTR (x, 0));
else
assemble_name (file, XSTR (x, 0));