From: QuickTime <ff...@gm...> - 2006-04-19 03:03:49
|
How to compile GCC inline assembly into ANSI C/C++ assembly? //orginal C code //@file test.c inline int neg_ssr32( int a, unsigned char s){ asm ("sarl %1, %0\n\t" : "+r" (a) : "ic" ((unsigned char)(-s)) ); return a; } CASE 1: try: cilly.asm -out output.c -noPrintLn --MSVC test.c the output of cil: /* Generated by CIL v. 1.3.4 */ /* print_CIL_Input is true */ __inline int NEG_SSR32(int a , unsigned char s ) { { __asm {sarl %1, %0 }; return (a); } } the generate codes of CIL fail to compile MS VC++6.0 //----------------------------------- CASE 2: try cilly.asm -out output.c -noPrintLn test.c the output of cil: /* Generated by CIL v. 1.3.4 */ /* print_CIL_Input is true */ __inline int neg_ssr32(int a , unsigned char s ) { { __asm__ ("sarl %1, %0\n\t": "+r" (a): "ic" ((unsigned char )(- ((int )s)))); return (a); } } Also fail to compile by MS VC++ Shorten my question: How to translate the following function to ANSI C/C++ assemply by using CIL and compile it by MS VC++? inline int neg_ssr32( int a, unsigned char s){ asm ("sarl %1, %0\n\t" : "+r" (a) : "ic" ((unsigned char)(-s)) ); return a; } Thanks in advanced! -- //---------------------------------------- Heaven is not a place, it's just a feeling |