[llvmlinux] aes_ctrby8_avx-x86_64.s -

Jan-Simon Moeller dl9pf at gmx.de
Fri Dec 5 10:25:37 UTC 2014


Hi David, 

Am Freitag, 5. Dezember 2014, 09:49:11 schrieb David Woodhouse:
> On Thu, 2014-12-04 at 19:14 +0100, Jan-Simon Moeller wrote:
> > - var_xdata = %xmm\n
> > + var_xdata = %xmm \n
> 
> #define CONCAT(a,b)     a##b
> #define XMM(i)          CONCAT(%xmm, i)
>         var_xdata = XMM(\n)
> 
> 
> So that's a fairly standard way of pasting two tokens together *without*
> any whitespace in between. And clang's preprocessor seems to get it
> wrong:
> 
> $ cat foo.S
> 
> #define CONCAT(a,b)     a##b
> #define XMM(i)          CONCAT(%xmm, i)
>         var_xdata = XMM(\n)
> 
> 
>  $ gcc -E foo.S
> # 1 "foo.S"
> # 1 "<built-in>"
> # 1 "<command-line>"
> # 1 "/usr/include/stdc-predef.h" 1 3 4
> # 1 "<command-line>" 2
> # 1 "foo.S"
> 
> 
> 
>         var_xdata = %xmm\n
> 
> 
>  $ clang -E foo.S
> # 1 "foo.S"
> # 1 "<built-in>" 1
> # 1 "foo.S" 2
> 
> 
> 
>         var_xdata = %xmm \n
> 

Ok, should I post a bugreport ?

> 
> You can work around it by changing the definition of XMM() to:
> #define XMM(i)          CONCAT(%xmm,i)

Ok, I had to read it twice to fine the missing space ... 
I can do the workaround for now, but that is just to be able to move on.

Tnx.




More information about the LLVMLinux mailing list