QEMU With E2K User Support
Go to file
James Hogan 240ce26a05 target-mips: fix branch in likely delay slot tcg assert
When a branch delay slot contains another branch instruction, the code
generated raises an exception, however since is_branch==1,
handle_delay_slot() doesn't get called immediately. This means
ctx->bstate isn't set to BS_BRANCH, and the decoder continues decoding
until a non-branch instruction is found.

If the first branch was a branch likely instruction then each
instruction after it generates code for the unlikely case, to go to the
next tb starting after the delay slot. This results in multiple goto_tb
tcg ops being generated with the same exit number. When debug is enabled
this hits:

tcg-op.h:2589: tcg_gen_goto_tb: Assertion `(tcg_ctx.goto_tb_issue_mask & (1 << idx)) == 0' failed.

This is fixed by removing is_branch entirely, and calling
handle_delay_slot() if (ctx.hflags & MIPS_HFLAG_BMASK) was set prior to
the current instruction being decoded. This still prevents
handle_delay_slot() being called immediately after a branch but allows
it to still be called after a branch within a delay slot.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Yongbok Kim <yongbok.kim@imgtec.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2013-07-28 18:33:44 +02:00
QMP net: add support of mac-programming over macvtap in QEMU side 2013-07-15 21:23:08 +03:00
audio audio: Replace static functions in header file by macros, remove GCC_ATTR 2013-06-21 22:52:50 +04:00
backends rng-random: use error_setg_file_open() 2013-06-17 11:01:14 -04:00
block Implement sync modes for drive-backup. 2013-07-26 22:01:31 +02:00
bsd-user gdbstub: Change gdb_handlesig() argument to CPUState 2013-07-23 02:41:33 +02:00
default-configs default-configs/ppc64: add all components of i82378 SuperIO chip used by prep 2013-07-25 08:12:28 -05:00
disas
docs qapi: Anonymous unions 2013-07-26 21:10:11 +02:00
dtc@bc895d6d09
fpu softfloat: Fix shift128Right for shift counts 64..127 2013-06-10 11:36:12 -05:00
fsdev fsdev: Fix potential memory leak 2013-07-09 13:38:56 -05:00
gdb-xml
hw sun4m: add display width and height to the firmware configuration 2013-07-26 16:56:50 -05:00
include QOM CPUState refactorings 2013-07-26 17:53:19 -05:00
libcacard libcacard: Fix cppcheck warning and remove unneeded code 2013-06-21 22:52:50 +04:00
linux-headers linux-headers: Update to v3.10-rc5 2013-06-12 13:19:10 +04:00
linux-user linux-user: Avoid redundant ENV_GET_CPU() 2013-07-26 23:05:31 +02:00
net net: add support of mac-programming over macvtap in QEMU side 2013-07-15 21:23:08 +03:00
pc-bios seabios: update to 1.7.3 2013-07-24 15:37:43 +02:00
pixman@97336fad32
po po/Makefile: Use macro quiet-command for nice looking messages 2013-07-23 15:45:24 -05:00
qapi qapi: Anonymous unions 2013-07-26 21:10:11 +02:00
qga qga: escape cmdline args when registering win32 service (CVE-2013-2231) 2013-07-25 14:49:04 -05:00
qobject Implement qdict_flatten() 2013-07-26 22:01:31 +02:00
qom cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
roms seabios: update to 1.7.3 2013-07-24 15:37:43 +02:00
scripts qapi: Anonymous unions 2013-07-26 21:10:11 +02:00
slirp slirp: remove mbuf(m_hdr,m_dat) indirection 2013-07-19 12:52:03 +04:00
stubs cpu: Introduce CPUClass::gdb_core_xml_file for GDB_CORE_XML 2013-07-27 00:04:17 +02:00
sysconfigs/target
target-alpha cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
target-arm cpu: Introduce CPUClass::gdb_core_xml_file for GDB_CORE_XML 2013-07-27 00:04:17 +02:00
target-cris target-cris: Factor out CPUClass::gdb_read_register() hook for v10 2013-07-27 00:04:17 +02:00
target-i386 cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
target-lm32 cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
target-m68k cpu: Introduce CPUClass::gdb_core_xml_file for GDB_CORE_XML 2013-07-27 00:04:17 +02:00
target-microblaze cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
target-mips target-mips: fix branch in likely delay slot tcg assert 2013-07-28 18:33:44 +02:00
target-moxie cpu: Turn cpu_get_phys_page_debug() into a CPUClass hook 2013-07-23 02:41:33 +02:00
target-openrisc cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
target-ppc cpu: Introduce CPUClass::gdb_core_xml_file for GDB_CORE_XML 2013-07-27 00:04:17 +02:00
target-s390x cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
target-sh4 cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
target-sparc cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
target-unicore32 cpu: Turn cpu_get_phys_page_debug() into a CPUClass hook 2013-07-23 02:41:33 +02:00
target-xtensa cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
tcg Merge git://github.com/hw-claudio/qemu-aarch64-queue into tcg-next 2013-07-15 13:21:10 -07:00
tests target-mips: fix multiplication in mipsdsp_rndq15_mul_q15_q15 2013-07-28 18:26:36 +02:00
trace trace: Add ftrace tracing backend 2013-05-03 13:58:09 +02:00
ui gtk: Fix accelerator filtering 2013-07-22 12:52:34 -05:00
util QemuOpts: Add qemu_opt_unset() 2013-07-26 21:10:11 +02:00
.exrc
.gitignore gitignore: unignore *.patch 2013-06-11 23:45:43 +04:00
.gitmodules pc-bios: Update palcode-clipper 2013-07-18 08:17:42 -07:00
.mailmap
CODING_STYLE
COPYING
COPYING.LIB
Changelog
HACKING HACKING: Document vaddr type usage 2013-07-23 02:41:31 +02:00
LICENSE
MAINTAINERS tcg: Add myself to general TCG maintainership 2013-07-08 22:03:59 -07:00
Makefile Makefile: pass include directives to dtc via CPPFLAGS, not CFLAGS 2013-06-21 22:52:50 +04:00
Makefile.objs rdma: core logic 2013-07-23 11:12:00 +02:00
Makefile.target build: do not use TARGET_ARCH 2013-06-14 15:33:10 +01:00
README
VERSION Open up 1.6 development 2013-05-20 10:55:18 -05:00
aio-posix.c
aio-win32.c
arch_init.c rdma: send pc.ram 2013-07-23 11:12:00 +02:00
async.c QEMUBH: make AioContext's bh re-entrant 2013-07-19 12:29:21 +08:00
balloon.c
block-migration.c block-migration: efficiently encode zero blocks 2013-07-19 12:29:21 +08:00
block.c block: Allow "driver" option on the top level 2013-07-26 21:10:11 +02:00
blockdev-nbd.c
blockdev.c Implement sync modes for drive-backup. 2013-07-26 22:01:31 +02:00
blockjob.c
bt-host.c
bt-vhci.c
configure seccomp: no need to check arch in syscall whitelist 2013-07-26 16:54:08 -05:00
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
cpu-exec.c cpu: Move singlestep_enabled field from CPU_COMMON to CPUState 2013-07-23 02:41:32 +02:00
cpus.c exec: Change cpu_memory_rw_debug() argument to CPUState 2013-07-23 02:41:33 +02:00
cputlb.c cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
device-hotplug.c
device_tree.c device_tree: Add qemu_devtree_setprop_sized_cells() utility functions 2013-07-19 12:58:46 +01:00
disas.c exec: Change cpu_memory_rw_debug() argument to CPUState 2013-07-23 02:41:33 +02:00
dma-helpers.c dma: keep a device alive while it has SGLists 2013-07-04 17:42:30 +02:00
dump.c cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
exec.c kvm: Change prototype of kvm_update_guest_debug() 2013-07-26 23:05:31 +02:00
gdbstub.c cpu: Introduce CPUClass::gdb_core_xml_file for GDB_CORE_XML 2013-07-27 00:04:17 +02:00
hmp-commands.hx block: add drive_backup HMP command 2013-07-15 09:49:00 +02:00
hmp.c rdma: account for the time spent in MIG_STATE_SETUP through QMP 2013-07-23 13:06:37 +02:00
hmp.h block: add drive_backup HMP command 2013-07-15 09:49:00 +02:00
iohandler.c
ioport.c Revert "ioport: remove LITTLE_ENDIAN mark for portio" 2013-07-25 08:12:27 -05:00
kvm-all.c kvm: Change prototype of kvm_update_guest_debug() 2013-07-26 23:05:31 +02:00
kvm-stub.c kvm: Change prototype of kvm_update_guest_debug() 2013-07-26 23:05:31 +02:00
main-loop.c main-loop: do not include slirp/slirp.h, use libslirp.h instead 2013-06-12 18:43:08 +04:00
memory.c memory: check memory region endianness, not target's 2013-07-25 08:12:28 -05:00
memory_mapping.c cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
migration-exec.c
migration-fd.c
migration-rdma.c rdma: core logic 2013-07-23 11:12:00 +02:00
migration-tcp.c
migration-unix.c
migration.c rdma: account for the time spent in MIG_STATE_SETUP through QMP 2013-07-23 13:06:37 +02:00
monitor.c exec: Change cpu_memory_rw_debug() argument to CPUState 2013-07-23 02:41:33 +02:00
nbd.c nbd: support large NBD requests 2013-05-03 13:05:49 +02:00
os-posix.c
os-win32.c
page_cache.c remove some double-includes 2013-05-18 16:35:12 +04:00
qapi-schema-test.json qapi: add native list coverage for QMP output visitor tests 2013-05-23 09:44:21 -04:00
qapi-schema.json migration: add autoconvergence documentation 2013-07-23 15:21:09 +02:00
qdev-monitor.c qdev: Let qdev_prop_parse() pass through Error 2013-05-06 19:40:44 +02:00
qdict-test-data.txt
qemu-bridge-helper.c
qemu-char.c char: io_channel_send: don't lose written bytes 2013-07-18 11:22:56 -05:00
qemu-coroutine-io.c rdma: export yield_until_fd_readable() 2013-06-27 02:38:36 +02:00
qemu-coroutine-lock.c coroutine: stop using AioContext in CoQueue 2013-05-24 16:17:56 +02:00
qemu-coroutine-sleep.c
qemu-coroutine.c coroutine: stop using AioContext in CoQueue 2013-05-24 16:17:56 +02:00
qemu-doc.texi doc: we use seabios, not bochs bios 2013-06-28 22:10:34 +04:00
qemu-img-cmds.hx
qemu-img.c block: Don't parse protocol from file.filename 2013-07-15 09:49:00 +02:00
qemu-img.texi
qemu-io-cmds.c qemu-io: Interface cleanup 2013-06-06 11:27:05 +02:00
qemu-io.c qemu-io: Use the qemu version for -V 2013-06-06 11:27:05 +02:00
qemu-log.c
qemu-nbd.c
qemu-nbd.texi
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx doc: monitor multiplexing rewording 2013-07-19 12:52:03 +04:00
qemu-seccomp.c seccomp: removing unused syscalls gtom whitelist 2013-07-26 16:54:08 -05:00
qemu-tech.texi
qemu-timer.c
qemu.sasl Fix command example in qemu.sasl 2013-07-19 12:52:03 +04:00
qmp-commands.hx Implement sync modes for drive-backup. 2013-07-26 22:01:31 +02:00
qmp.c QMP: Add cpu-add command 2013-05-01 13:06:07 +02:00
qtest.c qtest: Don't reset on qtest chardev connect 2013-07-18 13:27:46 -05:00
readline.c readline: Handle xterm escape sequences for Home/End keys 2013-05-14 08:53:22 -05:00
rules.mak win32: fix compilation again 2013-05-03 12:04:40 -05:00
savevm.c rdma: bugfix: ram_control_save_page() 2013-07-23 11:11:59 +02:00
spice-qemu-char.c qemu-char: don't issue CHR_EVENT_OPEN in a BH 2013-06-10 11:38:37 -05:00
tcg-runtime.c
tci.c
thread-pool.c
thunk.c
tpm.c
trace-events trace-events: Fix up source file comments 2013-07-18 11:44:42 +08:00
translate-all.c linux-user: Unlock mmap_lock when resuming guest from page_unprotect 2013-07-23 17:28:28 +03:00
translate-all.h
user-exec.c linux-user: fix segmentation fault passing with h2g(x) != x 2013-07-23 17:28:28 +03:00
version.rc
vl.c add timestamp to error_report() 2013-07-10 13:42:09 -04:00
xbzrle.c
xen-all.c memory: add ref/unref calls 2013-07-04 17:42:45 +02:00
xen-mapcache.c
xen-stub.c Allow use of pc machine type (accel=xen) for Xen HVM domains. 2013-06-25 12:00:48 +00:00

README

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

- QEMU team