Quantcast
Channel: Intel® C++ Compiler
Viewing all articles
Browse latest Browse all 1616

Inline assembly (at&t format w/extended) issue

$
0
0

I have a piece of code that does an register dereference to an in-memory array "offset(base, index, scale)", the intel compiler says it supports at&t syntax so maybe I'm going about this the wrong way or require some intel-specific provisions in order to acheive this - in gcc this works fine (mingw and gcc native) but when trying with the intel compiler (via VS2010) it gives errors and refuses to compile, "error : expected an expression".

      movq T0(,%%rdi,8), %%mm1

 

Maybe somebody can tell me if there's a better way to achieve this or why the intel compiler doesn't work on this particular AS which works fine in gcc?  

T0 declaration:

__declspec(align(16)) static const u64 T0[256] =  {...}



asm declaration:

void asmfunc(u64 *x) {

       __asm__ volatile(

...

        : /*no output, only memory is modified */

        : "r"(x)

       : "%rax", "%rbx", "%rcx", "%rdx", "%rdi", "%rsi", "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15", "memory" , "%mm0", "%mm1", "%mm2" , "%mm3" , "%mm4" , "%mm5" , "%mm6" , "%mm7" );

}


Viewing all articles
Browse latest Browse all 1616

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>