On 3/22/19 7:23 PM, asavah wrote:
> I'm using qemu-user-arm for crosscompilation needs, usually via a wrapper.
> qemu-user-arm (4.0.0-rc0) crashes with SIGILL on at least 2 instructions:
> 
> first case (sadly I don't have more data handy, can reproduce at a later time 
> if needed):
> (gdb) x/i $pc
> => 0xfffce314:  vseleq.f64      d0, d17, d0
> 
> second case (llvm-config):
> qemu cmdline:
> qemu-arm -strace -cpu max -r 5.0.0 -L /home/asavah/kross/build/rpi3/rootfs -E 
> LD_LIBRARY_PATH=/home/asavah/kross/build/rpi3/rootfs/usr/bin:/home/asavah/kross/build/rpi3/rootfs/usr/lib
>  /home/asavah/kross/build/rpi3/rootfs/usr/bin/llvm-config --shared-mode

Yes indeed.  A recent patch, c0c760afe80, correctly adjusted these insns so
that they do properly raise SIGILL when the selected cpu does not support them,
but then failed to update -cpu max for the 32-bit guest (qemu-arm) as opposed
to the 64-bit guest (qemu-aarch64, which we got for free because cortex-a57, as
the base of -cpu max, already sets the correct values).

Peter, we need to set SIMDMISC+FPMISC in MVFR2 in arm_max_initfn.


r~

Reply via email to