<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJylU8uOnTAM_RrYWKAQ4HJZsGBe6khTVRp10W1CDKQKBCVhbunX10Db0axHQsGxnZPjY0datTVfNIQRHUY8g-cJgtv0PECwcPdjXwX069wFbWeQG4gZhFIOvU_h-yhCxCsPo72BBmUJhzx5G7GHiLVR_giTfQOX8YjfQ8RL9h6Qvw7_uT_W_2g3MggMPdwbMQ_veDyLyjs9iQGj8iHi1zGExe9h_kTf6tElR9Sngw7jKndPZ-eAc0g7O1FOzbKi5tWFzKzMWHnlBU-qHCteV31Sd4wnRaH6RCIvkkqpqu6Fqgp1SRciwuuTyLM_BSMxNiqL7m8dCnNacBPbLtuhhvagtMMumA30TF6qGW5Ezq4BVr_r7BgVrLsRKNf20NnVeUI2hKj2Q5SGUf503twav8MieDEh5So80ABnIQ0qsEvQk_4t9m75U0MqfDEYkBhIoXZOh6SwGNFRuNfOB3h5eIW7x6dvr4-wrH4knB07TdNYNbmq81rEYiXWrmln5axWX616sUKhi1dnmo-NOMX_q7gxb_9-yeLsT9KCttr7FT0ZZV5kLB6bvi9qdi2La1ZkNe_LUuUlslLWeCny7IqxERKNb2gAIs5npHnbIcimUYg_z0A3nHHOMl5yVlY5T0u8opKykjK_XFidRwXDSWiT7jipdUPsmgNSroOnoNE--Peg8F4PM-JBmBgGHcyxaVvXjeQB4Sd4s4ZaZXDvsd8nQXh6bgGnxTrhNuit-_iCWqBRiA_uzUH8Dy0RL-A>53410</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AArch] asm volatile uses r0 as a temporary for mov r12, * ?
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
AndroidModLoader
</td>
</tr>
</table>
<pre>
Hi there! Im trying to BX to a function by an address. That's how i do that:
> mov r12, %0
> bx r12
That's what does Clang:
![image](https://user-images.githubusercontent.com/90149276/151058242-73e7297f-9c02-44df-be24-7dd79fad74d6.png)
Is there any **real** way to do this directly into r12 without using r0 which is of course already in use?
Also the same code with enabled optimizations does completely bad thing: places first LDR BEFORE push opcode...
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxVUsuOnDAQ_Bq4tAaBeR84MPtQVtoo0iqHXG3cDI4MRrbZCfn6tCHJaiVk2t3tcnWVhZF790WBn9BixDJ4mcHbXS038AauP8LKYdyWwSuzgNiBL8CltOhcAt8n7iNWO5jMHRRIQziUyfsofYzSPsqfYDbvYDMWsQeIWJl-FMSvI3_uj_U_2p0CAkMHD5ovtw88lkXlVc38hlH5GLFm8n51ocye6dsc2stRdclN-WkTITOYxePik8HM1NOmWdGyuqIwK7O0bFjBLnWONWvr8dIOKbsUhRwvAllxqaWs25HLupBVshIR1p5EXtwpGImx01h0f2-R6zOCO9-DbIcayoFUFgevd1ALZWlmuBM5s3nYXNDZpjSwGiagXjPCYDbrCFkTogyHqA2j_Pm8udcuwCI4PiP1SjzQABcuNEowq1ez-s2DW-7UkAZfNXokBoLLwOmQFFbNByqPyjoPr49vcH16_vb2BOvmJsIJ2EmSxLLLZZu3PPbKa-zIgL63w0QGAHczvBtNl2kMLF2YhTt6MB7n1VhudxiN_fwGeqBh4s3q7rN7p2N_bdL6_d_vslrzkwSkrXJuQ0dBmRdZGk8dE41o6rxu2qIVA_K2ycoUc1a1VV6xAmPNBWoXSEeMLUiPNEBQTPRj1bGUsTRjJUvLOmdJiQ1KIWoh8qpK2zwqUpy50kngkRh7i213UBLbzVFRK-fdR5E7p24LHhoFfL6RzbbrF2mNkl-NfDVcoo0PDt0xwx8q6Rp6">