svn commit: r219079 - in head/sys/boot/i386: gptboot gptzfsboot zfsboot

Bruce Evans brde at optusnet.com.au
Sun Feb 27 03:04:04 UTC 2011


On Sun, 27 Feb 2011, Dimitry Andric wrote:

> Log:
>  Clang's integrated assembler can now handle sys/boot/i386/boot2/sio.S.
>  It used to choke on the notation "inb (%dx),%al" for "inb %dx,%al"; GNU
>  as accepts both forms.  Which notation is more 'correct' is an open
>  question. :)

Nah, the former is just a syntax error since %dx is not dereferenced :-).

It is a syntax error at the design level that parentheses are used for
indirection.  In better assembler syntaxes like Intel/Microsoft's one
for x86 and Motorola's one for 6809, brackets are used for indirections
so parentheses are not context-dependent.  Then extra parentheses
around expressions can have no effect.  But dx isn't an expression,
so (dx) should still be a syntax error.  I think it is in I/M syntax
but I can't test that easily.  It is a syntax error in my x86/6809
assembler.  My assembler doesn't check, but emits a diagnostic for
this :-).  (My assembler wants brackets for indirection, but it has
an option to to implement some bugs including use of parentheses for
indirection.)

Bruce


More information about the svn-src-head mailing list