BinaryBuilder.jl
BinaryBuilder.jl copied to clipboard
Auditor should also look at the registers used by the instructions
In #832 there is a test where the auditor misidentifies a haswell
object file as sandybridge
, because it uses an AVX instruction, but with ymm
register, which causes a SIGILL
when running it on a sandybridge
machine:
$ ./main 256; dmesg | last -n 1
[3577511.181215] traps: main[528] trap invalid opcode ip:401108 sp:7ffdb1d9ca00 error:0 in main[401000+1000]
$ objdump -d main | grep 401108
401108: c5 f5 fe ca vpaddd %ymm2,%ymm1,%ymm1
A more refined way to detect the ISA would take into account also the registers used by the instructions