This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch][PCH] Do not write/read asm_out_file


On Thu, Jun 7, 2012 at 7:52 PM, Richard Sandiford
<rdsandiford@googlemail.com> wrote:
> Steven Bosscher <stevenb.gcc@gmail.com> writes:
>> On Wed, Jun 6, 2012 at 7:15 PM, Paolo Bonzini <bonzini@gnu.org> wrote:
>>> Il 06/06/2012 09:15, Steven Bosscher ha scritto:
>>>> + ? ?add_asm_printf ("%s\n\t.ascii \"%s\"\n",
>>>> + ? ? ? ? ? ? ? ? READONLY_DATA_SECTION_ASM_OP, string);
>>>> + ?else
>>>
>>> Need to escape the string as in mips_output_ascii, of course. :(
>>
>> Well, I suppose so...
>> But I was wondering why mips writes out ident strings as ascii in the
>> first place.
>>
>> The GCC version string is output as .ident with "normal" quoting, but
>> a user #ident is printed out as a .ascii. It has been like that since
>> the initial revision (r297, more than 20 years ago). See example at
>> the bottom of this mail (some test case in the test suite, but I don't
>> remember which one).
>>
>> Shouldn't we just print out .ident for #ident? That would make things
>> a lot easier for me, at least :-)
>> Richard S.?
>
> Yeah, I think both the ASM_OUTPUT_ASCII and ASM_OUTPUT_IDENT definitions
> can go. ?We only support GAS and ELF these days, and all MIPS configs
> need to include elfos.h. ?Will be a few days before I have chance to
> test though.

Would it be OK for you if I change the MIPS specific parts of
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00416.html to be as
follows:

Index: config/mips/sde.h
===================================================================
--- config/mips/sde.h   (revision 188182)
+++ config/mips/sde.h   (working copy)
@@ -97,17 +97,6 @@ along with GCC; see the file COPYING3.  If not see
 /* Use periods rather than dollar signs in special g++ assembler names.  */
 #define NO_DOLLAR_IN_LABEL

-/* Attach a special .ident directive to the end of the file to identify
-   the version of GCC which compiled this code.  */
-#undef IDENT_ASM_OP
-#define IDENT_ASM_OP "\t.ident\t"
-
-/* Output #ident string into the ELF .comment section, so it doesn't
-   form part of the load image, and so that it can be stripped.  */
-#undef ASM_OUTPUT_IDENT
-#define ASM_OUTPUT_IDENT(STREAM, STRING) \
-  fprintf (STREAM, "%s\"%s\"\n", IDENT_ASM_OP, STRING);
-
 /* Currently we don't support 128bit long doubles, so for now we force
    n32 to be 64bit.  */
 #undef LONG_DOUBLE_TYPE_SIZE
Index: config/mips/mips.c
===================================================================
--- config/mips/mips.c  (revision 188182)
+++ config/mips/mips.c  (working copy)
@@ -58,6 +58,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "diagnostic.h"
 #include "target-globals.h"
 #include "opts.h"
+#include "cgraph.h"

 /* True if X is an UNSPEC wrapper around a SYMBOL_REF or LABEL_REF.  */
 #define UNSPEC_ADDRESS_P(X)                                    \
@@ -3097,6 +3098,7 @@ mips_legitimize_move (enum machine_mode mode, rtx
     }
   return false;
 }
+
 ^L
 /* Return true if value X in context CONTEXT is a small-data address
    that can be rewritten as a LO_SUM.  */
Index: config/mips/mips.h
===================================================================
--- config/mips/mips.h  (revision 188182)
+++ config/mips/mips.h  (working copy)
@@ -2674,15 +2674,6 @@ do {
                         \
 #undef ASM_OUTPUT_ASCII
 #define ASM_OUTPUT_ASCII mips_output_ascii

-/* Output #ident as a in the read-only data section.  */
-#undef  ASM_OUTPUT_IDENT
-#define ASM_OUTPUT_IDENT(FILE, STRING)                                 \
-{                                                                      \
-  const char *p = STRING;                                              \
-  int size = strlen (p) + 1;                                           \
-  switch_to_section (readonly_data_section);                           \
-  assemble_string (p, size);                                           \
-}
 ^L
 /* Default to -G 8 */
 #ifndef MIPS_DEFAULT_GVALUE


I would test this with a mips-elf cross compiler on mips-sim.

Ciao!
Steven


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]