[llvm-commits] [llvm-gcc-4.2] r43909 - in /llvm-gcc-4.2/trunk/gcc: config/arm/arm.h llvm-convert.cpp

Chris Lattner clattner at apple.com
Fri Nov 16 10:56:45 PST 2007


On Nov 10, 2007, at 12:10 PM, Lauro Ramos Venancio wrote:

>>
>> Does it make sense to make this work?  It seems much better than
>> having to hack arm.h for every subtarget that doesn't use @ as a
>> comment character.
>>
>
> I'm afraid I didn't understand your point. I think the problem is
> - Target can have inline asm extensions (not only comments - ARM
> target has two extensions: '%@' and '%r').
> So we need a way to define this extensions. To do this, I copied the
> idea used by the gcc codegen.
>
> arm.h code for gcc codegen:
>
> /* These are a couple of extensions to the formats accepted
>    by asm_fprintf:
>      %@ prints out ASM_COMMENT_START
>      %r prints out REGISTER_PREFIX reg_names[arg]  */
> #define ASM_FPRINTF_EXTENSIONS(FILE, ARGS, P)		\
>   case '@':						\
>     fputs (ASM_COMMENT_START, FILE);			\
>     break;						\
> 							\
>   case 'r':						\
>     fputs (REGISTER_PREFIX, FILE);			\
>     fputs (reg_names [va_arg (ARGS, int)], FILE);	\
>     break;

Hi Lauro,

It seems like there is two options: when lowering from GCC asm to  
llvm asm, we can either change %@ (for example) into  
ASM_COMMENT_START.  Alternatively, we can lower it to "${:comment}",  
which llvm asm already expands out to the right thing.  Does this  
make sense?  The important point here is that not all arm targets use  
@ for their comment character, and we don't want to break that.

-Chris



More information about the llvm-commits mailing list