This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Instruction bundling on IA64 and the Intel Assembler
- From: "Zack Weinberg" <zack at codesourcery dot com>
- To: Geert Bosch <bosch at gnat dot com>
- Cc: gcc at gcc dot gnu dot org, Vladimir Makarov <vmakarov at redhat dot com>
- Date: Mon, 15 Dec 2003 13:39:27 -0800
- Subject: Re: Instruction bundling on IA64 and the Intel Assembler
- References: <3F90DDB0-2F43-11D8-9BCD-000A959A128E@gnat.com>
Geert Bosch <bosch@gnat.com> writes:
> For the IA64 port to OpenVMS, we'll be using the Intel Assembler
> (IAS).
Can you say why?
...
> {.mmi // use the mmi template for this bundle
> m inst // memory instruction
> ;; // stop
> m inst // memory instruction
> i inst // integer instruction
> }
>
> However, GCC omits the braces and GAS is OK with that. The template
> selector is inserted as an instruction by the function "bundling",
> which seems to be the right place to add the "instruction" that
> closes a bundle.
I think you're barking up the wrong tree here. It seems to me that
the right place to handle this is the output template for the
bundle_selector insn. Have this print not just ".mmi", but one of
"{.mmi" or "}\n\t{.mmi" depending on whether or not this is the first
bundle in the function. (Set a flag on the very first bundle_selector
insn emitted to indicate this.) Tack a special bundle_selector insn
on at the very end of the function that just prints the final close
brace.
zw