<div dir="ltr"><div>Hello,<br><br></div><div>In the following code snippet:<br>%tmp49 = call i64 asm "movq %gs:${1:P},$0", "=r,im,,~{fpsr},~{flags}"(i64* @kernel_stack) #6, !dbg !6625, !srcloc !5841<br>
<br></div><div>I would expect for the inline asm call to receive two arguments because of the ${1:P} corresponding to a %P1 that will append the $1 to %%gs:.<br></div><div>Can someone explain why there is only one argument in this call? <br>
<br></div><div>Moreover, is there any documentation on the constraints that LLVM/clang generates? I'm not entirely sure that they are just a "copy/past" from the asm at the C level, since ~{dirflag}, ~{fpsr} seem to be generated.<br>
<br></div><div>Finally, how do you deal with inline asm that have multiple outputs and what's the mechanism used by JIT to support inline asm?<br><br></div><div>Regards,<br>Marcelo<br></div></div>