2011/5/17 Hans Stimer <hans.stimer at gmail.com>:> Are there any examples for the inline assembler or more complete docs?
> Questions:
> * What are the syntax and semantics of constraints?
Try the gcc inline asm docs; we don't have very good ones.
> * If I load up specific registers in the inline assembly, will llvm make
> sure that those registers are unassigned or should I save the registers and
> restore them? i.e. does llvm try and understand what is going on in the
> inline assembly, or is it a black box to llvm analysis?
You have to mark registers which are clobbered.
> * What is the syntax of the inline assembly? i.e. intel, att, ...?
> The test code is complete mystery to me:
>
> ; From test/Assembler/alignstack.II
> define void @test1() nounwind {
> ; CHECK: test1
> ; CHECK: sideeffect
> ; CHECK-NOT: alignstack
> tail call void asm sideeffect "mov",
"~{dirflag},~{fpsr},~{flags}"()
> nounwind
> ret void
> ; CHECK: ret
> }
>
> * Presumably "mov" is the inline assembly string, but that
isn't going to
> assemble without arguments -- are arguments append to the string somehow?
That isn't a working example of an inline asm; inline asm doesn't get
parsed if you're just emitting assembly code.
> * Is anyone using the inline assembler? I would really like to see how
> others are using it.
Look for examples in C, and convert them to LLVM IR with clang.
-Eli