adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
Peter Maydell 77211379d7 cpu-exec: wrap tcg_qemu_tb_exec() in a fn to restore the PC
If tcg_qemu_tb_exec() returns a value whose low bits don't indicate a
link to an indexed next TB, this means that the TB execution never
started (eg because the instruction counter hit zero).  In this case the
guest PC has to be reset to the address of the start of the TB.
Refactor the cpu-exec code to make all tcg_qemu_tb_exec() calls pass
through a wrapper function which does this restoration if necessary.

Note that the apparent change in cpu_exec_nocache() from calling
cpu_pc_from_tb() with the old TB to calling it with the TB returned by
do_tcg_qemu_tb_exec() is safe, because in the nocache case we can
guarantee that the TB we try to execute is not linked to any others,
so the only possible returned TB is the one we started at. That is,
we should arguably previously have included in cpu_exec_nocache() an
assert(next_tb & ~TB_EXIT_MASK) == tb), since the API requires restore
from next_tb but we were using tb.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2013-03-03 14:28:37 +00:00
QMP
audio
backends
block qcow2: support compressed clusters in BlockFragInfo 2013-02-22 21:21:09 +01:00
bsd-user qemu-log: default to stderr for logging output 2013-02-26 13:31:47 -06:00
default-configs hw/sdhci: introduce standard SD host controller 2013-02-28 18:23:14 +00:00
disas Replace all setjmp()/longjmp() with sigsetjmp()/siglongjmp() 2013-02-23 16:11:19 +00:00
docs trace: Fix location of simpletrace.py in docs 2013-02-05 21:52:55 +01:00
fpu softfloat: Handle float_muladd_negate_c when product is zero 2013-01-26 13:22:09 +00:00
fsdev virtfs-proxy-helper: Fix unchecked strdup() by conv. to g_strdup() 2013-01-30 11:14:46 +01:00
gdb-xml
hw cadence_gem: Add debug msgs for rx desc movement 2013-02-28 18:49:24 +00:00
include tcg: Document tcg_qemu_tb_exec() and provide constants for low bit uses 2013-03-03 14:28:19 +00:00
ldscripts
libcacard libcacard: Fix unchecked strdup() by converting to g_strdup() 2013-01-30 11:14:46 +01:00
linux-headers
linux-user qemu-log: default to stderr for logging output 2013-02-26 13:31:47 -06:00
net net: Avoid NULL function pointer dereference on cleanup 2013-02-13 11:57:25 -06:00
pc-bios Revert "Update OpenBIOS images" 2013-02-14 08:58:30 -06:00
pixman@97336fad32
po ui/gtk: Use menu item from stock for full screen 2013-02-22 14:49:00 -06:00
qapi qapi: Fix unchecked strdup() by converting to g_strdup() 2013-01-30 11:14:46 +01:00
qga qemu-ga: Fix unchecked strdup() by converting to g_strdup() 2013-01-30 11:14:46 +01:00
qobject
qom qom/object.c: Allow itf cast with num_itfs = 0 2013-02-21 16:34:10 -06:00
roms Revert "Update OpenBIOS images" 2013-02-14 08:58:30 -06:00
scripts fix scripts/make_device_config.sh 2013-02-19 11:53:49 +01:00
slirp slirp: Properly initialize pollfds_idx of new sockets 2013-02-26 12:10:21 +01:00
stubs slirp: switch to GPollFD 2013-02-21 16:17:31 -06:00
sysconfigs/target
target-alpha cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-arm cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-cris cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-i386 cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-lm32 cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-m68k cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-microblaze cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-mips cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-openrisc cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-ppc cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-s390x cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-sh4 cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-sparc cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-unicore32 cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
target-xtensa cpu: Introduce ENV_OFFSET macros 2013-03-03 14:28:28 +00:00
tcg tcg: Document tcg_qemu_tb_exec() and provide constants for low bit uses 2013-03-03 14:28:19 +00:00
tests Merge remote-tracking branch 'kwolf/for-anthony' into staging 2013-02-26 07:44:39 -06:00
trace trace: deal with deprecated glib thread functions 2013-02-12 16:26:44 -06:00
ui Add compat for GDK_KEY_XXX symbols 2013-02-26 13:29:55 -06:00
util host-utils: Improve mulu64 and muls64 2013-02-17 14:28:58 +00:00
.exrc
.gitignore .gitignore: Ignore optionrom/*.asm 2013-02-21 10:38:07 +01:00
.gitmodules
.mailmap
CODING_STYLE
COPYING
COPYING.LIB
Changelog
HACKING
LICENSE
MAINTAINERS prep: Move PReP machine to hw/ppc/ 2013-01-30 10:42:29 +01:00
Makefile gtk: add translation support (v5) 2013-02-21 16:34:48 -06:00
Makefile.objs qtest: Add MMIO support 2013-02-18 08:39:10 -06:00
Makefile.target qtest: Add MMIO support 2013-02-18 08:39:10 -06:00
README
VERSION Open up 1.5 development tree 2013-02-15 17:40:56 -06:00
aio-posix.c aio: support G_IO_HUP and G_IO_ERR 2013-02-21 16:17:31 -06:00
aio-win32.c
arch_init.c migration: calculate expected_downtime 2013-02-22 10:12:52 +01:00
async.c aio: convert aio_poll() to g_poll(3) 2013-02-21 16:17:31 -06:00
balloon.c
block-migration.c block-migration: fix pending() and iterate() return values 2013-02-12 16:26:44 -06:00
block.c block: implement BDRV_O_UNMAP 2013-02-22 21:29:42 +01:00
blockdev-nbd.c
blockdev.c blockdev: add discard suboption to -drive 2013-02-22 21:29:42 +01:00
blockjob.c
bt-host.c
bt-vhci.c
cmd.c
cmd.h
configure show --disable-gtk and --enable-gtk in the help message 2013-02-26 13:30:35 -06:00
coroutine-gthread.c
coroutine-sigaltstack.c Merge remote-tracking branch 'kwolf/for-anthony' into staging 2013-02-26 07:44:39 -06:00
coroutine-ucontext.c Merge remote-tracking branch 'kwolf/for-anthony' into staging 2013-02-26 07:44:39 -06:00
coroutine-win32.c
cpu-exec.c cpu-exec: wrap tcg_qemu_tb_exec() in a fn to restore the PC 2013-03-03 14:28:37 +00:00
cpus.c cpus.c: Drop unnecessary set_cpu_log() 2013-02-16 10:45:19 +00:00
cputlb.c cpu: Move current_tb field to CPUState 2013-02-16 14:51:00 +01:00
device_tree.c
disas.c
dma-helpers.c
dump-stub.c
dump.c cpu: Move host_tid field to CPUState 2013-02-16 14:50:59 +01:00
exec.c cputlb: Pass CPUState to cpu_unlink_tb() 2013-02-16 14:51:00 +01:00
gdbstub.c cpu: Move host_tid field to CPUState 2013-02-16 14:50:59 +01:00
hmp-commands.hx qemu-log: default to stderr for logging output 2013-02-26 13:31:47 -06:00
hmp.c error: Strip trailing '\n' from error string arguments (again) 2013-02-11 08:13:19 -06:00
hmp.h qemu-char: Saner naming of memchar stuff & doc fixes 2013-02-06 16:35:19 -06:00
iohandler.c iohandler: switch to GPollFD 2013-02-21 16:17:31 -06:00
ioport.c
kvm-all.c cpu: Move exit_request field to CPUState 2013-02-16 14:51:00 +01:00
kvm-stub.c kvm: Pass CPUState to kvm_on_sigbus_vcpu() 2013-01-28 16:57:56 +01:00
main-loop.c main-loop: drop rfds/wfds/xfds for good 2013-02-21 16:17:31 -06:00
memory.c memory: Use non-bitops ctzl 2013-02-16 11:12:13 +00:00
memory_mapping-stub.c
memory_mapping.c
migration-exec.c
migration-fd.c
migration-tcp.c
migration-unix.c
migration.c migration: calculate expected_downtime 2013-02-22 10:12:52 +01:00
monitor.c Replace all setjmp()/longjmp() with sigsetjmp()/siglongjmp() 2013-02-23 16:11:19 +00:00
nbd.c
os-posix.c
os-win32.c
page_cache.c
qapi-schema-test.json
qapi-schema.json qemu-img: add compressed clusters to BlockFragInfo 2013-02-22 21:21:09 +01:00
qdict-test-data.txt
qemu-bridge-helper.c
qemu-char.c console: allow VCs to be overridden by UI 2013-02-21 16:34:48 -06:00
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c coroutine: move pooling to common code 2013-02-22 21:21:10 +01:00
qemu-doc.texi qemu-log: default to stderr for logging output 2013-02-26 13:31:47 -06:00
qemu-img-cmds.hx qemu-img: Add compare subcommand 2013-02-22 21:21:10 +01:00
qemu-img.c qemu-img: Add compare subcommand 2013-02-22 21:21:10 +01:00
qemu-img.texi qemu-img: Add compare subcommand 2013-02-22 21:21:10 +01:00
qemu-io.c block: implement BDRV_O_UNMAP 2013-02-22 21:29:42 +01:00
qemu-log.c qemu-log: default to stderr for logging output 2013-02-26 13:31:47 -06:00
qemu-nbd.c qemu-nbd: add --discard option 2013-02-22 21:29:43 +01:00
qemu-nbd.texi qemu-nbd: add --discard option 2013-02-22 21:29:43 +01:00
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx qemu-log: default to stderr for logging output 2013-02-26 13:31:47 -06:00
qemu-seccomp.c
qemu-tech.texi
qemu-timer.c
qemu.sasl
qmp-commands.hx qemu-char: Saner naming of memchar stuff & doc fixes 2013-02-06 16:35:19 -06:00
qmp.c
qtest.c qtest: Add MMIO support 2013-02-18 08:39:10 -06:00
readline.c readline: Fix unchecked strdup() by converting to g_strdup() 2013-01-30 11:14:46 +01:00
rules.mak rules/mak: make clean should blow away timestamp files 2013-01-30 01:31:08 +02:00
savevm.c migration: make qemu_ftell() public and support writable files 2013-02-12 16:26:44 -06:00
spice-qemu-char.c
tcg-runtime.c tcg: Implement multiword multiply helpers 2013-02-23 17:25:28 +00:00
tci.c
thread-pool.c
thunk.c
trace-events usb-xhci: usb3 streams 2013-02-19 13:17:48 +01:00
translate-all.c cputlb: Pass CPUState to cpu_unlink_tb() 2013-02-16 14:51:00 +01:00
translate-all.h cputlb: Pass CPUState to cpu_unlink_tb() 2013-02-16 14:51:00 +01:00
user-exec.c Replace all setjmp()/longjmp() with sigsetjmp()/siglongjmp() 2013-02-23 16:11:19 +00:00
version.rc
vl.c vl.c: allow for repeated -sd arguments 2013-02-28 18:49:19 +00:00
xbzrle.c Move XBZRLE encoding code to a separate file to allow testing 2013-02-01 08:32:20 +01:00
xen-all.c
xen-mapcache.c
xen-stub.c

README

Read the documentation in qemu-doc.html or on http://wiki.qemu.org

- QEMU team