From: Borja F. <bor...@gm...> - 2013-06-27 17:57:03
|
1) I think this now resolved. 2) I will take a look, no idea about it now. 2013/6/27 Stepan Dyatkovskiy <stp...@na...> > BTW, for X86 target and memory constraint I got the same as for ARM: > > call void asm "instr $0", "=*m,~{dirflag},~{fpsr},~{**flags}"(i32* @a) > #1, !srcloc !0 > > It just uses 'm' instead of 'Q'. Note it also contains '*' before 'm'. > > -Stepan. > > > Stepan Dyatkovskiy wrote: > >> Agh!! MY grammar: Subject: One more differencE in clang. Would you fix >> it in your reply please. >> Thanks. >> -Stepan. >> >> Stepan Dyatkovskiy wrote: >> >>> Hi guys. >>> >>> Today I went through whole AVR-Libc Inline Assembler Cookbook chapter. >>> I have checked all examples with two commands: >>> 1. clang -S -o - -emit-llvm example.c >>> 2. avr-clang -S -o - -emit-llvm example.c >>> >>> I've found two difference: >>> >>> 1. As I mentioned before difference for memory constraint. >>> For string "asm("instr %0": "=Q"(a):)" >>> >>> clang emits: >>> %0 = call i32 asm "instr $0", "=Q,~{dirflag},~{fpsr},~{**flags}"() >>> >>> arm-linux-gnueabi emits: >>> call void asm "instr $0", "=*Q"(i32* @a) #1, !srcloc !0 >>> >>> avr-clang: >>> %0 = call i16 asm "instr $0", "=Q"() >>> >>> I'll try to use current syntax here. Though ARM syntax is working well >>> now, but I din't find explanation of =*Q sequence yet. >>> >>> 2. asm names. >>> >>> // example.c: >>> extern long Calc(void) asm ("CALCULATE"); >>> void f() { Calc(); } >>> >>> clang emits: >>> %call = call i64 @CALCULATE() >>> ... >>> declare i64 @CALCULATE() >>> >>> avr-clang emits: >>> %call = call i32 @"\01CALCULATE"() >>> ... >>> declare i32 @"\01CALCULATE"() >>> >>> Does somebody know what \01 is used for here? >>> >>> -Stepan >>> >>> ------------------------------**------------------------------** >>> ------------------ >>> >>> This SF.net email is sponsored by Windows: >>> >>> Build for Windows Store. >>> >>> http://p.sf.net/sfu/windows-**dev2dev<http://p.sf.net/sfu/windows-dev2dev> >>> ______________________________**_________________ >>> avr-llvm-devel mailing list >>> avr-llvm-devel@lists.**sourceforge.net<avr...@li...> >>> https://lists.sourceforge.net/**lists/listinfo/avr-llvm-devel<https://lists.sourceforge.net/lists/listinfo/avr-llvm-devel> >>> >>> >> > |