UASM 2.49 (Linux 64bit)
.data
_r8 real8 3.141592653589793115997963468544185161590576171875
form_ db "[%.48f]",0
.code
invoke printf,addr form_, _r8
lea rdi, form_
movq xmm0,_r8
call printf
the result:
[0.000000000000000000000000000000000000000000000000][3.141592653589793115997963468544185161590576171875]
Because _r8 must pass through XMM0
40132a: 48 8d 3d b8 2d 00 00 lea 0x2db8(%rip),%rdi # 4040e9 <form_>
401331: 48 8b 35 a9 2d 00 00 mov 0x2da9(%rip),%rsi # 4040e1 <_r8>
401338: 33 c0 xor %eax,%eax
40133a: e8 01 fd ff ff callq 401040 <printf@plt>
40133f: 48 8d 3d a3 2d 00 00 lea 0x2da3(%rip),%rdi # 4040e9 <form_>
401346: f3 0f 7e 05 93 2d 00 movq 0x2d93(%rip),%xmm0 # 4040e1 <_r8>
40134d: 00
40134e: e8 ed fc ff ff callq 401040 <printf@plt>