add decoder support for endbr64 and endbr32
These show up in ld.so on my machine:
<spurious rep/repne prefix @0x00007f6e2d383f30 (f3 0f 1e fa): >
new executable vm area: 0x00007f040b6c1000-0x00007f040b8c4110 ---- libdl.so.2
<...>
interp: start_pc = 0x00007f040b6c1f30
check_thread_vm_area: pc = 0x00007f040b6c1f30
prepend_entry_to_fraglist: putting fragment @0x00007f040b6c1f30 (shared) on vmarea 0x00007f040b6c1000-0x00007f040b8c3000
check_thread_vm_area: check_stop = 0x00007f040b8c3000
SYSLOG_WARNING: spurious rep/repne prefix @0x00007f040b6c1f30 (f3 0f 1e fa):
0x00007f040b6c1f30 f3 0f 1e fa nop %edx
0x00007f040b6c1f34 e9 77 ff ff ff jmp $0x00007f040b6c1eb0
interp: direct jump at 0x00007f040b6c1f34
end_pc = 0x00007f040b6c1f39
$ disasm f3 0f 1e fa 90
Disassembling 0xf3 0x0f 0x1e 0xfa 0x90
llvm-mc: 0xf3 0x0f 0x1e 0xfa 0x90 endbr64 nop
capstone:
bfd: f3 0f 1e fa endbr64
DynamoRIO: f3 0f 1e fa nop %edx nop
(I should update my capstone copy -- I think they have support for this now)
These are not causing any fatal problem b/c they decode as nops to DR and it does not need to take any special action on them.