This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils 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: .macro bug in gas for IA64


On Thu, 2003-03-06 at 06:22, Nick Clifton wrote:
> Instead would it not be easier to choose a different character to be
> the line separator character ?

The Intel Itanium Architecture Assembly Language Reference Guide
(IIAALRG) says that semicolon (;) is a statement separator and that
multiple statements can appear on the same line.  So we can't change
that.  It is likely that there is already code in glibc and the linux
kernel that makes use of ; as a statement separator.

The IIAALRG also says that ;; represents the stop bit, and that this can
appear between two instructions on the same line.  It is apparently not
valid for ;; to appear on the same line before or after something other
than an instruction, but this is a technicality that we can perhaps
continue to ignore for now.

So we need to be able to handle both.  If you see a single semicolon, it
is an end of line character that can be dropped, but if you see two
semicolons the line ends before the first semicolon so that
md_start_line_hook will see both semicolons.  Actually, I see that the
tc-ia64.c md_start_line_hook cheats, and looks at input_line_pointer[-1]
to see if this is a stop bit.  Also, it takes advantage of the fact that
; is a statement separator to allow the stop bit to appear in the middle
of a line.

I haven't looked at this patch or this bug report yet.  I think I can
find some time to take a closer look at this.

Jim



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