I am a Windows developer and I have been writing x86 and amd64 assembly for more than ten years. One annoying thing about GCC is that, for x86 if I need to write I piece of inline assembly then I have to do it twice: one in AT&T syntax and one in Intel syntax.

The AT&T syntax is an awkward foreign dialect, designed originally for PDP-11 and spoken by bumpkins that knew little about x86 or ARM. No official Intel or AMD documentation ever adopts it. The syntax is terrible. Consider:

   movl $1, %eax  ; k; moves $1 into EAX
                  ; but in high-level languages we expect '%eax = $1',
                  ; so it goes awkwardly backwards.

If this looks fine to you, please re-consider:

  cmpl $1, %eax
  jg .L1          ; does this mean 'jump if $1 is greater than %eax'
                  ; or something stupidly reversed?

If CMP still looks fine to you, please consider how to write VFMADD231PD in 
AT&T syntax, really.


I have been tired of such inconsistency. For God's sake, please deprecate it.


--
Best regards,
LIU Hao

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to