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: Preparations for IA64/VMS


On Fri, Oct 10, 2003 at 06:46:41PM -0400, Richard Kenner wrote:
> +   /* The Intel assembler requires that the global __ia64_trampoline symbol
> +      be declared explicitly */
> +   if (!TARGET_GNU_AS)
> +     {
> +       static bool declared_ia64_trampoline = false;
> + 
> +       if (!declared_ia64_trampoline)
> + 	{
> + 	  declared_ia64_trampoline = true;
> + 	  fputs ("\t.global\t__ia64_trampoline\n", asm_out_file);
> + 	}
> +     }

This means we're missing an invoation of ASM_OUTPUT_EXTERNAL.
You should find an fix that rather than add this.

> ! #define ASM_APP_ON (TARGET_GNU_AS ? "#APP\n" : "//APP\n")
> ! #define ASM_APP_OFF (TARGET_GNU_AS ? "#NO_APP\n" : "//NO_APP\n")

I believe that gas will accept the later as well.

>   #define ASM_OUTPUT_DEBUG_LABEL(FILE, PREFIX, NUM) \
> -   fprintf (FILE, "[.%s%d:]\n", PREFIX, NUM)
> +   fprintf (FILE, TARGET_GNU_AS ? "[.%s%d:]\n" : ".%s%d:\n", PREFIX, NUM)

This cannot be correct.  This will

(1) Result in spurrious dependency violation warnings from the assembler
(2) Result in the creation of a new instruction bundle.

There must be *some* syntax in the Intel assembler to achieve the affect
of a label that you assert will not be the target of a branch.


r~


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