bundle boundaries in ia64 assembly output?

James E Wilson wilson@specifixinc.com
Tue Jan 25 04:29:00 GMT 2005


Geert Bosch wrote:
> These tags are ussed inside explicit bundles (delimited with { and }),
> and GCC cannot output such bundles.

Tags are used for debug info.  See ASM_OUTPUT_DEBUG_LABEL.  It should be 
feasible to use tags for EH labels also, just a simple matter of 
defining a hook like ASM_OUTPUT_DEBUG_LABEL, or maybe even reusing that 
hook.

I don't have a problem with adding the { and } bundle markers.  We just 
need someone to write a patch.

You didn't go into details of why the output was still not acceptable to 
IAS, but I can make some guesses.  We are probably emitting labels in 
funny places, e.g. at the end of a bundle instead of at the start of the 
next one, before stop bits instead of after them, etc.  We probably also 
have the same problem with tags.  This might require the code emitting 
labels and/or tags to know about IA-64 bundling issues, which may be 
hard to solve.  Less likely sources of problems: emitting multiple tags 
if IAS only happens to allow one, white space issues where tags and stop 
bits are emitted on their own line instead of on the same line as the 
instruction that they modify if IAS is picky about white space.

Incidentally, if you look at ASM_OUTPUT_DEBUG_LABEL, you will see that 
we only emit tags for GNU as.  This was done by Kenner, who insisted 
that it was needed for the VMS port.  I have never seen an explanation 
why.  I consider this a bug in the VMS port.  I borrowed the tag syntax 
from the Intel assembler documentation, so as far as I know it should 
have worked fine.  This problem means that using -g on the VMS port will 
change the generated code which is contrary to our documentation.  This 
should be fixed before the VMS port is finished, but if you are moving 
to GNU as then it will fix itself when you do that.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



More information about the Gcc mailing list