aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/darwin.c
diff options
context:
space:
mode:
authorStan Shebs <shebs@apple.com>2005-01-05 18:39:43 +0000
committerStan Shebs <shebs@gcc.gnu.org>2005-01-05 18:39:43 +0000
commit59d8fe27225bbdeb958692a320caf77eb8fc9f17 (patch)
tree92090e557808239acca7de92b369dca94e57a36b /gcc/config/darwin.c
parenta6cc7e85debd2f43dd64c7ecdff9f5907270b381 (diff)
downloadgcc-59d8fe27225bbdeb958692a320caf77eb8fc9f17.zip
gcc-59d8fe27225bbdeb958692a320caf77eb8fc9f17.tar.gz
gcc-59d8fe27225bbdeb958692a320caf77eb8fc9f17.tar.bz2
unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit Mach-O getters if ppc64.
* unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit Mach-O getters if ppc64. * config/darwin.c (darwin_asm_output_dwarf_delta): Obey size argument. * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use signed four-byte field for global code case. (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation. From-SVN: r92962
Diffstat (limited to 'gcc/config/darwin.c')
-rw-r--r--gcc/config/darwin.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index b95c438..cb3ba0a 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -1358,21 +1358,22 @@ darwin_assemble_visibility (tree decl, int vis)
static int darwin_dwarf_label_counter;
void
-darwin_asm_output_dwarf_delta (FILE *file, int size ATTRIBUTE_UNUSED,
+darwin_asm_output_dwarf_delta (FILE *file, int size,
const char *lab1, const char *lab2)
{
int islocaldiff = (lab1[0] == '*' && lab1[1] == 'L'
&& lab2[0] == '*' && lab2[1] == 'L');
+ char *directive = (size == 8 ? ".quad" : ".long");
if (islocaldiff)
fprintf (file, "\t.set L$set$%d,", darwin_dwarf_label_counter);
else
- fprintf (file, "\t%s\t", ".long");
+ fprintf (file, "\t%s\t", directive);
assemble_name_raw (file, lab1);
fprintf (file, "-");
assemble_name_raw (file, lab2);
if (islocaldiff)
- fprintf (file, "\n\t.long L$set$%d", darwin_dwarf_label_counter++);
+ fprintf (file, "\n\t%s L$set$%d", directive, darwin_dwarf_label_counter++);
}
void