2012-01-02 132 views
0

我在mach_override.c的錯誤scplugin project下面第二行代碼。預期的聲明說明符或'...'在字符串常量之前

asm(  
      ".text;" 
      ".align 2, 0x90;" 
      ".globl _atomic_mov64;" 
      "_atomic_mov64:;" 
      " pushl %ebp;" 
      " movl %esp, %ebp;" 
      " pushl %esi;" 
      " pushl %ebx;" 
      " pushl %ecx;" 
      " pushl %eax;" 
      " pushl %edx;" 

      // atomic push of value to an address 
      // we use cmpxchg8b, which compares content of an address with 
      // edx:eax. If they are equal, it atomically puts 64bit value 
      // ecx:ebx in address. 
      // We thus put contents of address in edx:eax to force ecx:ebx 
      // in address 
      " mov  8(%ebp), %esi;" // esi contains target address 
      " mov  12(%ebp), %ebx;" 
      " mov  16(%ebp), %ecx;" // ecx:ebx now contains value to put in target address 
      " mov  (%esi), %eax;" 
      " mov  4(%esi), %edx;" // edx:eax now contains value currently contained in target address 
      " lock; cmpxchg8b (%esi);" // atomic move. 

      // restore registers 
      " popl %edx;" 
      " popl %eax;" 
      " popl %ecx;" 
      " popl %ebx;" 
      " popl %esi;" 
      " popl %ebp;" 
      " ret" 
); 

Allow asm, inline typeof標誌在我的構建設置中設置。任何人都可以請我幫忙嗎?

回答

0

作如下變化(標誌):

C language dialect = Compiler Default 
相關問題