<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/59608>59608</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[arm32] adr instruction prints with incorrect label
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
taralx
</td>
</tr>
</table>
<pre>
Example:
```
00000010 <testcase>:
10: 18 a7 adr r7, #96 <testcase+0x1c>
```
The immediate is correctly decoded as `imm8<<2`, but the label seems to be based on the un-shifted value (`0x18` in this case). It should print `pc+4+96` i.e. `<testcase+0x64>`, but instead computes `pc+4+0x18` and thus prints `<testcase+0x1c>`.
https://github.com/llvm/llvm-project/issues/25404 may be related.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycUsFuqzoQ_RqzGRWZAUxYsGjSRnr79wPGHoKfDET20KZ__2Snub296upaiBF4fM6Z46NjdJeVaBDtUbQvhd553sLAOmh_K8bNfgyvN71cPYn6WcgXIZ-Fkp9P_pR5VRJEfWKKbHQkUb_-aodKivoZqgPoDh5L25Br6ASeQGDdq2_n8ShvlUkwP1He3__OBG5ZyDrNBC6C2UIgw_4DLJnNkgUdQSjpluUg6pOoT5gg8ATjzsAzgdcjeYhESwTeYCQYdSQL25q39_Upzm5isvCm_U4g8CCUlLcqFXCpK_FmxX0J_zDEedu9hWtwKyfuqxF4bAQee5WPlFSm33_Oqpo065c4t0YmbcFsy3Vnit-gHvx6tcDzHu9s8Sfcu4dKlr8bNzNfY7ofPAs8XxzP-1iabRF49v7tUZ6uYfuPDAs8uxh3igLP2DaygUV_JKsCec1ky8IOte3rXhc0VKqrWmyx6Yp5QDW2qHpFzWSaQ6-nqRtxmgx2vaJuqgs3oESsEKU81I3sytaMtjUTjVoq3ZlJNJIW7XyZBJVbuBRZytD2Sh6KfHsxJxdxpXfImwIxBTkMeYhxv0TRSO8ixy8Uduxz5HVY6tSeA5lMD7tht60PS98dz-DWz2Td81LswQ9_72HW_n8AAAD__7TiC7w">