commit fc3a55ccec9bc770c79f8a221f5abd397befc8f6 Author: Harshit Chopra <hars...@google.com> Date: Thu Sep 20 17:49:59 2012 -0700
Instead of emitting absolute addresses to the function patch sections, emit relative addresses. Absolute addresses might require relocation, which is time consuming and fraught with other issues. M gcc/config/i386/i386.c Tested: Ran make check-gcc and manually confirmed that the affected tests pass. ChangeLog: 2012-09-28 Harshit Chopra <hars...@google.com> * gcc/config/i386/i386.c (ix86_output_function_nops_prologue_epilogue): Emit relative address to function patch sections. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index f72b0b5..8c9334f 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -11098,7 +11098,7 @@ ix86_output_function_nops_prologue_epilogue (FILE *file, $LFPEL0: <pre_instruction> 0x90 (repeated num_actual_nops times) - .quad $LFPESL0 + .quad $LFPESL0 - . followed by section 'section_name' which contains the address of instruction at 'label'. */ @@ -11110,7 +11110,10 @@ ix86_output_function_nops_prologue_epilogue (FILE *file, asm_fprintf (file, ASM_BYTE"0x90\n"); fprintf (file, ASM_QUAD); + /* Output "section_label - ." for the relative address of the entry in + the section 'section_name'. */ assemble_name_raw (file, section_label); + fprintf (file, " - ."); fprintf (file, "\n"); /* Emit the backpointer section. For functions belonging to comdat group, @@ -11144,7 +11147,7 @@ ix86_output_function_nops_prologue_epilogue (FILE *file, .quad $LFPEL0 */ ASM_OUTPUT_INTERNAL_LABEL (file, section_label); - fprintf(file, ASM_QUAD"\t"); + fprintf(file, ASM_QUAD); assemble_name_raw (file, label); fprintf (file, "\n"); -- This patch is available for review at http://codereview.appspot.com/6572065