adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
Kirill Batuzov 45140a5767 target-arm: check that LSB <= MSB in BFI instruction
The documentation states that if LSB > MSB in BFI instruction behaviour
is unpredictable. Currently QEMU crashes because of assertion failure in
this case:

tcg/tcg-op.h:2061: tcg_gen_deposit_i32: Assertion `len <= 32' failed.

While assertion failure may meet the "unpredictable" definition this
behaviour is undesirable because it allows an unprivileged guest program
to crash the emulator with the OS and other programs.

This patch addresses the issue by throwing illegal instruction exception
if LSB > MSB. Only ARM decoder is affected because Thumb decoder already
has this check in place.

To reproduce issue run the following program

int main(void) {
    asm volatile (".long 0x07c00c12" :: );
    return 0;
}

compiled with
  gcc -marm -static badop_arm.c -o badop_arm

Signed-off-by: Kirill Batuzov <batuzovk@ispras.ru>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-02-05 13:37:22 +00:00
audio audio: Don't free hw resources until after hw backend is stopped 2014-12-22 23:12:25 +00:00
backends
block block: vhdx - force FileOffsetMB field to '0' for certain block states 2015-01-23 12:41:32 -05:00
bsd-user bsd-user/elfload.c: Don't use ldl() or ldq_raw() 2015-01-20 15:19:33 +00:00
default-configs hw: misc, add educational driver 2015-01-26 12:26:55 +01:00
disas disas/s390.c: Remove unused variables 2015-02-03 12:27:05 -08:00
docs rcu: add call_rcu 2015-02-02 16:55:10 +01:00
dtc@bc895d6d09
fpu softfloat: Clarify license status 2015-01-29 16:45:45 +00:00
fsdev virtfs-proxy-helper: fix call to accept 2014-04-28 08:55:32 +04:00
gdb-xml
hw target-arm: Change reset to highest available EL 2015-02-05 13:37:22 +00:00
include target_arm: Parameterise the irq lines for armv7m_init 2015-02-05 13:37:21 +00:00
libcacard
libdecnumber
linux-headers linux-headers: update to 3.18-rc5 2014-11-18 11:24:31 +00:00
linux-user linux-user: support target-to-host SCM_CREDENTIALS 2015-01-27 22:33:57 +02:00
migration migration_cancel: shutdown migration socket 2015-01-16 13:06:17 +05:30
net net: Use g_new() & friends where that makes obvious sense 2014-12-19 13:17:02 +00:00
pc-bios pc-bios/s390-ccw: update binary 2015-02-03 13:42:40 +01:00
pixman@87eea99e44
po
qapi qmp: Eliminate silly QERR_COMMAND_NOT_FOUND macro 2015-01-29 10:02:18 +01:00
qga
qobject
qom cpu: initialize cpu->exception_index on reset 2014-12-20 20:38:07 +00:00
roms pseries: Update SLOF firmware image to 20141202 2015-01-07 16:16:27 +01:00
scripts kvm_stat: Add RESET support for perf event ioctl 2015-01-26 12:27:05 +01:00
slirp
stubs
sysconfigs/target
target-alpha exec.c: Drop TARGET_HAS_ICE define and checks 2015-01-20 15:19:32 +00:00
target-arm target-arm: check that LSB <= MSB in BFI instruction 2015-02-05 13:37:22 +00:00
target-cris exec.c: Drop TARGET_HAS_ICE define and checks 2015-01-20 15:19:32 +00:00
target-i386 target-i386: Disable HLE and RTM on Haswell & Broadwell 2015-01-26 12:27:05 +01:00
target-lm32 exec.c: Drop TARGET_HAS_ICE define and checks 2015-01-20 15:19:32 +00:00
target-m68k exec.c: Drop TARGET_HAS_ICE define and checks 2015-01-20 15:19:32 +00:00
target-microblaze exec.c: Drop TARGET_HAS_ICE define and checks 2015-01-20 15:19:32 +00:00
target-mips target-mips: Don't use _raw load/store accessors 2015-01-20 15:19:33 +00:00
target-moxie exec.c: Drop TARGET_HAS_ICE define and checks 2015-01-20 15:19:32 +00:00
target-openrisc target-openrisc: bugfix for dec_sys to decode instructions correctly 2015-01-15 10:44:13 +03:00
target-ppc exec.c: Drop TARGET_HAS_ICE define and checks 2015-01-20 15:19:32 +00:00
target-s390x s390 translator bug fixes 2015-02-03 21:37:16 +00:00
target-sh4 exec.c: Drop TARGET_HAS_ICE define and checks 2015-01-20 15:19:32 +00:00
target-sparc target-sparc: Mark gen_load_trap_state_at_tl() as !CONFIG_USER_ONLY 2015-01-21 16:18:01 +00:00
target-tricore target-tricore: Add instructions of RRR opcode format 2015-01-27 11:48:02 +00:00
target-unicore32 gen-icount: check cflags instead of use_icount global 2015-01-03 09:22:12 +01:00
target-xtensa exec.c: Drop TARGET_HAS_ICE define and checks 2015-01-20 15:19:32 +00:00
tcg tcg: add separate monitor command to dump opcode counters 2014-12-17 05:49:32 +03:00
tests rcu: allow nesting of rcu_read_lock/rcu_read_unlock 2015-02-02 16:55:10 +01:00
trace
ui spice: fix coverity defect, add unix address support 2015-01-22 13:56:11 +00:00
util rcu: add call_rcu 2015-02-02 16:55:10 +01:00
.exrc
.gitignore .gitignore: Ignore generated "common.env" 2015-01-13 13:43:28 +00:00
.gitmodules
.mailmap
.travis.yml .travis.yml: Add "--enable-modules" 2015-01-26 12:27:05 +01:00
CODING_STYLE
COPYING
COPYING.LIB
Changelog
HACKING
LICENSE vfio: move hw/misc/vfio.c to hw/vfio/pci.c Move vfio.h into include/hw/vfio 2014-12-19 15:24:06 -07:00
MAINTAINERS hw: misc, add educational driver 2015-01-26 12:26:55 +01:00
Makefile Makefile: Remove config.status and common.env during 'make distclean' 2015-01-15 10:44:13 +03:00
Makefile.objs Start migrating migration code into a migration directory 2014-12-16 17:47:36 +05:30
Makefile.target
README
VERSION
accel.c
aio-posix.c
aio-win32.c
arch_init.c xbzrle: optimize XBZRLE to decrease the cache misses 2015-01-15 17:49:43 +05:30
async.c block: replace g_new0 with g_new for bottom half allocation. 2015-01-13 11:47:56 +00:00
balloon.c balloon: Eliminate silly QERR_ macros 2015-01-29 10:06:02 +01:00
block.c block: remove unused variable in bdrv_commit 2015-01-23 18:17:06 +01:00
blockdev-nbd.c
blockdev.c block: Split BLOCK_OP_TYPE_COMMIT to BLOCK_OP_TYPE_COMMIT_{SOURCE, TARGET} 2015-01-13 13:43:29 +00:00
blockjob.c
bootdevice.c bootdevice: add Error **errp argument for QEMUBootSetHandler 2014-12-22 14:39:21 +08:00
bt-host.c
bt-vhci.c
configure sparse: Fix build with sparse on .S files 2015-01-26 12:27:05 +01:00
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c coroutine-ucontext: use __thread 2015-01-13 13:43:28 +00:00
coroutine-win32.c
cpu-exec.c cpu-exec: simplify init_delay_params 2015-02-02 16:55:11 +01:00
cpus.c cpu-exec: simplify init_delay_params 2015-02-02 16:55:11 +01:00
cputlb.c qemu-log: add log category for MMU info 2014-12-16 18:43:19 +00:00
device-hotplug.c
device_tree.c device-tree: fix memory leak 2015-01-07 16:16:26 +01:00
disas.c
dma-helpers.c
dump.c
exec.c exec: fix madvise of NULL pointer 2015-01-26 12:27:05 +01:00
gdbstub.c
hmp-commands.hx
hmp.c hmp: Compile hmp_info_spice() only with CONFIG_SPICE 2015-01-29 10:01:45 +01:00
hmp.h
iohandler.c
ioport.c
iothread.c
kvm-all.c kvm: extend kvm_irqchip_add_msi_route to work on s390 2015-01-12 10:14:04 +01:00
kvm-stub.c
main-loop.c
memory.c memory: avoid ref/unref in memory_region_find 2015-02-02 16:55:10 +01:00
memory_mapping.c
module-common.c
monitor.c qmp: Eliminate silly QERR_COMMAND_NOT_FOUND macro 2015-01-29 10:02:18 +01:00
nbd.c
numa.c
os-posix.c
os-win32.c
page_cache.c xbzrle: rebuild the cache_is_cached function 2015-01-15 17:49:43 +05:30
qapi-schema.json input: misc fixes. 2015-01-22 17:41:59 +00:00
qdev-monitor.c
qdict-test-data.txt
qemu-bridge-helper.c
qemu-char.c Do not hang on full PTY 2015-01-15 10:44:13 +03:00
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c coroutine: try harder not to delete coroutines 2015-01-13 13:43:29 +00:00
qemu-doc.texi
qemu-img-cmds.hx
qemu-img.c block: update string sizes for filename,backing_file,exact_filename 2015-01-23 18:17:06 +01:00
qemu-img.texi
qemu-io-cmds.c
qemu-io.c
qemu-log.c qemu-log: add log category for MMU info 2014-12-16 18:43:19 +00:00
qemu-nbd.c
qemu-nbd.texi
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx spice: add unix address support 2015-01-22 11:18:41 +01:00
qemu-seccomp.c seccomp: add mlockall to whitelist 2015-01-23 14:07:08 +01:00
qemu-tech.texi
qemu-timer.c qemu-timer.c: Trim list of included headers 2015-01-26 18:15:54 +00:00
qemu.nsi
qemu.sasl
qmp-commands.hx monitor: add query-vnc-servers command 2015-01-22 11:18:47 +01:00
qmp.c qmp: Clean up qmp_query_spice() #ifndef !CONFIG_SPICE dummy 2015-01-29 10:01:54 +01:00
qtest.c
rules.mak rules.mak: Fix module build 2015-01-14 10:38:57 +01:00
savevm.c
softmmu_template.h
spice-qemu-char.c spice: remove spice-experimental.h include 2014-12-16 14:15:29 +01:00
tcg-runtime.c
tci.c
thread-pool.c
thunk.c
tpm.c
trace-events pci, pc, virtio fixes and cleanups 2015-01-27 13:17:30 +00:00
translate-all.c exec.c: Drop TARGET_HAS_ICE define and checks 2015-01-20 15:19:32 +00:00
translate-all.h
user-exec.c
version.rc
vl.c vnc: switch to QemuOpts, allow multiple servers 2015-01-22 11:18:46 +01:00
xen-common-stub.c
xen-common.c
xen-hvm-stub.c
xen-hvm.c Xen: Use the ioreq-server API when available 2015-01-20 14:24:10 +00:00
xen-mapcache.c xen: add a lock for the mapcache 2015-01-20 14:24:17 +00:00

README

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

- QEMU team