From 370d36c65639c542ac6fdc892164edc63b1f6221 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 24 Nov 2008 20:39:05 +0000 Subject: [PATCH] mips.h (ASM_OUTPUT_DEBUG_LABEL): Define. gcc/ * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define. From-SVN: r142173 --- gcc/ChangeLog | 4 ++++ gcc/config/mips/mips.h | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6ed89220bf2f..a82c6d30949e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2008-11-24 Richard Sandiford + + * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define. + 2008-11-24 Maxim Kuvyrkov PR target/35018 diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 562c05333793..6f98cd0290e9 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -2845,6 +2845,32 @@ while (0) #define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \ sprintf ((LABEL), "*%s%s%ld", (LOCAL_LABEL_PREFIX), (PREFIX), (long)(NUM)) +/* Print debug labels as "foo = ." rather than "foo:" because they should + represent a byte pointer rather than an ISA-encoded address. This is + particularly important for code like: + + $LFBxxx = . + .cfi_startproc + ... + .section .gcc_except_table,... + ... + .uleb128 foo-$LFBxxx + + The .uleb128 requies $LFBxxx to match the FDE start address, which is + likewise a byte pointer rather than an ISA-encoded address. + + At the time of writing, this hook is not used for the function end + label: + + $LFExxx: + .end foo + + But this doesn't matter, because GAS doesn't treat a pre-.end label + as a MIPS16 one anyway. */ + +#define ASM_OUTPUT_DEBUG_LABEL(FILE, PREFIX, NUM) \ + fprintf (FILE, "%s%s%d = .\n", LOCAL_LABEL_PREFIX, PREFIX, NUM) + /* This is how to output an element of a case-vector that is absolute. */ #define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) \ -- 2.47.3