<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54631>54631</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
llvm-objdump doesn't recognise HVC instructions for arm32
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
andyhhp
</td>
</tr>
</table>
<pre>
Given
```
$ cat hvc.S
.text
.code 32
hvc:
hvc #0xea1
```
Clang happily compiles the file, given `-march=armv7ve`
```
$ clang-15 --target=arm-linux-gnueabihf -march=armv7ve -c hvc.S -o hvc.o
```
but llvm-objdump doesn't tolerate the instruction
```
$ llvm-objdump-15 -d hvc.o
hvc.o: file format elf32-littlearm
Disassembly of section .text:
00000000 <hvc>:
0: 71 ea 40 e1 <unknown>
```
GNU objdump is happy
```
$ arm-linux-gnueabihf-objdump -d hvc.o
hvc.o: file format elf32-littlearm
Disassembly of section .text:
00000000 <hvc>:
0: e140ea71 hvc 3745 ; 0xea1
```
In this case, HVC instructions are present because this is a micokernel. Given that HVC is a valid instruction in arm32, llvm-objdump should decode it.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVE1zmzAQ_TVw2cEjBJhy4JDYbdpLL532LsQalAiJQcKJ_30X4bROGqc9lNFIq5X2670VjW1P9Z06oonYPmI30Zadx7rlOUjhoT_KzbdVBedv4_HJv1JJ2yJk_GwbZrKMspuX90gHEc_YE4r07bBh3mlhOujFOCp9AmkHWtGB7xEOJEV8B92SOZBdMohJ9lG2F9NwLI_429UbBS1-k7SAJPFi6tCvZolWZn5KOjOjaFR_gNc-IZErEJDYINh3km9mD1ofh8Q29-08jNBadCbipQdvNU7CY6hEGeenWXplrzNw6Sfk3b4I_4wzKRakqwUcONhpIOJQHzJOlXmvkcq4tNgrJ5zDoSFw7QEchiTOvD5Tts7s_EGU7QKhH19zykgBZQooIGeAKQAlQrdn82Dso1ksrmN19_U7PMOkXGD8dBWMN5j6hfF7wIQ0_xGa_wwQW3nBNGcoCCSSl0usysq8CDjdwt8ewxdD7ULgSOFC53_-sbvsHUe4IIwTOjQeGpRidrha0BAwKGkfcDKoNwDhvdMhgRDcLBeOQqv20iPJC9b0minai052vZ11Cy2G5678Jm7rrK2ySsReEZj1lb6fyKAzivL6I3miZA0Wz5Oue-9Ht2DGP9HolO_nhv4tA20W1-clGSd7T5zQVjk3oyOhyLdZGvd1I6uykOnhQ5O3RVOwclvKkqclYw2v8qqItWhQuzoqbiPODT5CcEFyVOxjVXPGOct4xbM85dUGm22ablNZMmQsl3lERA5C6c2Sx8ZOXTytRTdz5-hQK-fd70PqItUZxBCO_IvZ93aqhWlPfT_GIXQdUv8JraejDg">