qemu doesn't seem to support lxvwsx for POWER9 target
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
When running a simple program built for POWER9 on QEMU 3.0.0 in linux-user mode, it crashes with a message: "illegal instruction". It turns out that lxvwsx instruction "Load Word and Splat Indexed" is not supported. If workaround is implemented by issuing two separate instructions (first load then splat) then all tests pass correctly.
Operating system: Ubuntu Mate 16.04.2 64-bit (or Linux Mint 18 64-bit).
Cross-compiler for gcc-powerpc64le
QEMU 3.0.0 is built from source and installed with: sudo make install
The program in question: https:/
Turn off the workaround: RT_ELEM_COMPAT_PW9 should be set to 1 in the following file:
https:/
Change to the "test" directory and type "make -f simd_make_p64.mk".
powerpc64le-
Open newly created text file simd_test_
The instruction shows up in objdump correctly.
Small clarification to the bug description above.
Host architecture: x86_64 (AMD64) /github. com/VectorChief /UniSIMD- assembler/ blob/master/ INSTALL
Instructions used for building QEMU 3.0.0 from source are here:
https:/
The command line for emulating POWER9 target is below:
qemu-ppc64le -cpu POWER9 simd_test.p64_32Lp9 -c 1
With the workaround for lxvwsx instruction turned off (as described above) /github. com/VectorChief /UniSIMD- assembler/ blob/master/ test/simd_ test.cpp
QEMU crashes in s_test08 function of the following common SIMD test file:
https:/