]> git.proxmox.com Git - mirror_qemu.git/commit - target/xtensa/cpu.c
target/xtensa: linux-user: add call0 ABI support
authorMax Filippov <jcmvbkbc@gmail.com>
Fri, 6 Sep 2019 16:57:13 +0000 (09:57 -0700)
committerLaurent Vivier <laurent@vivier.eu>
Wed, 11 Sep 2019 06:47:06 +0000 (08:47 +0200)
commit130ea8322bd01b27095079632f1946d9a2120870
tree877a743f8b87d77b757ca3849ade8424cb032d14
parentdc12567a53c88d7a91b9d71db3775782c7f35c84
target/xtensa: linux-user: add call0 ABI support

Xtensa binaries built for call0 ABI don't rotate register window on
function calls and returns. Invocation of signal handlers from the
kernel is therefore different in windowed and call0 ABIs.
There's currently no way to determine xtensa ELF binary ABI from the
binary itself. Add handler for the -xtensa-abi-call0 command line
parameter/QEMU_XTENSA_ABI_CALL0 envitonment variable to the qemu-user
and record ABI choice. Use it to initialize PS.WOE in xtensa_cpu_reset.
Check PS.WOE in setup_rt_frame to determine how a signal should be
delivered.

Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Message-Id: <20190906165713.5558-1-jcmvbkbc@gmail.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
linux-user/main.c
linux-user/xtensa/signal.c
target/xtensa/cpu.c
target/xtensa/cpu.h