adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
David Gibson bb593904c1 Parse SDR1 on mtspr instead of at translate time
On ppc machines with hash table MMUs, the special purpose register SDR1
contains both the base address of the encoded size (hashed) page tables.

At present, we interpret the SDR1 value within the address translation
path.  But because the encodings of the size for 32-bit and 64-bit are
different this makes for a confusing branch on the MMU type with a bunch
of curly shifts and masks in the middle of the translate path.

This patch cleans things up by moving the interpretation on SDR1 into the
helper function handling the write to the register.  This leaves a simple
pre-sanitized base address and mask for the hash table in the CPUState
structure which is easier to work with in the translation path.

This makes the translation path more readable.  It addresses the FIXME
comment currently in the mtsdr1 helper, by validating the SDR1 value during
interpretation.  Finally it opens the way for emulating a pSeries-style
partition where the hash table used for translation is not mapped into
the guests's RAM.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
2011-04-01 18:34:55 +02:00
QMP spice: connection events. 2010-12-09 14:23:24 +01:00
audio change all other clock references to use nanosecond resolution accessors 2011-03-21 09:23:23 +01:00
block block/qcow: Don't ignore immediate read/write and other failures 2011-03-15 13:21:14 +01:00
bsd-user bsd-user: Fix possible memory leaks and wrong realloc call 2011-01-17 20:23:47 +00:00
darwin-user darwin-user: Use GCC_FMT_ATTR (format checking) 2010-12-04 20:51:19 +00:00
default-configs vmmouse: Fix typo preventing x86-64 build 2011-03-22 07:44:14 +01:00
docs Add qcow2 documentation 2011-03-16 09:56:18 +01:00
fpu softfloat: Drop [s]bits{8, 16, 32, 64} types in favor of [u]int{8, 16, 32, 64}_t 2011-03-21 21:46:14 +01:00
fsdev Delete useless 'extern' qualifiers for functions 2011-01-23 16:21:20 +00:00
gdb-xml
hw vhost: fix dirty page handling 2011-03-28 18:34:23 +02:00
linux-user linux-user: Fix unlock_user() call in return from poll() 2011-03-22 07:46:21 +01:00
net change all other clock references to use nanosecond resolution accessors 2011-03-21 09:23:23 +01:00
pc-bios pc-bios: update linuxboot.bin and multiboot.bin 2011-03-22 07:03:15 +01:00
roms seabios: update to latest git 2011-03-21 17:41:52 -05:00
scripts simpletrace: Thread-safe tracing 2011-03-07 15:34:17 +00:00
slirp add a service to reap zombies, use it in SLIRP 2011-03-29 08:14:11 -05:00
sysconfigs/target
target-alpha inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
target-arm target-arm: use make_float32() to make constant floats for VRSQRTS 2011-03-22 07:59:07 +01:00
target-cris inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
target-i386 Revert "x86: Save/restore PAT MSR" 2011-03-22 19:05:06 -05:00
target-lm32 lm32: use lookup table for opcodes 2011-03-31 08:54:05 +02:00
target-m68k inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
target-microblaze inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
target-mips inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
target-ppc Parse SDR1 on mtspr instead of at translate time 2011-04-01 18:34:55 +02:00
target-s390x kvm: Align kvm_arch_handle_exit to kvm_cpu_exec changes 2011-03-16 17:11:06 -03:00
target-sh4 inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
target-sparc inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
tcg tcg/arm: Support host code being compiled for Thumb 2011-03-24 03:27:22 +01:00
tests lm32: opcode testsuite 2011-03-07 13:42:37 +01:00
ui severe memory leak caused by broken palette_destroy() function 2011-03-25 07:28:24 -05:00
.gitignore Add TAGS and *~ to .gitignore 2011-02-24 11:25:38 -06:00
.gitmodules
CODING_STYLE checkpatch: adjust to QEMUisms 2011-01-20 20:58:56 +00:00
COPYING
COPYING.LIB
Changelog
HACKING HACKING: Update status of format checking 2011-02-25 16:31:05 -06:00
LICENSE
MAINTAINERS MAINTAINERS: add LatticeMico32 maintainer 2011-03-07 13:42:58 +01:00
Makefile microblaze: Add PetaLogix ml605 MMU little-endian ref design 2011-03-16 15:18:58 +01:00
Makefile.dis
Makefile.hw
Makefile.objs extract I/O handler lists to iohandler.c 2011-03-29 08:14:01 -05:00
Makefile.target microblaze: Add PetaLogix ml605 MMU little-endian ref design 2011-03-16 15:18:58 +01:00
Makefile.user
README
TODO
VERSION Open up the 0.15 development branch 2011-02-02 08:39:28 +01:00
a.out.h
acl.c
acl.h
aes.c
aes.h
aio.c
alpha-dis.c *-dis: Replace fprintf_ftype by fprintf_function (format checking) 2010-12-04 20:50:30 +00:00
alpha.ld
arch_init.c LatticeMico32 target support 2011-03-07 13:42:36 +01:00
arch_init.h LatticeMico32 target support 2011-03-07 13:42:36 +01:00
arm-dis.c arm-dis: Include opcode hex when doing disassembly 2011-01-12 15:10:47 +01:00
arm-semi.c Fix commandline handling for ARM semihosted executables 2011-01-07 18:20:48 +02:00
arm.ld
async.c
balloon.c
balloon.h
bitmap.c bitmap: add a generic bitmap and bitops library 2011-02-23 16:28:29 -06:00
bitmap.h bitmap: add a generic bitmap and bitops library 2011-02-23 16:28:29 -06:00
bitops.c bitmap: add a generic bitmap and bitops library 2011-02-23 16:28:29 -06:00
bitops.h bitops: fix error on OpenBSD and mingw32 2011-02-25 17:21:22 +00:00
block-migration.c block: enable in_use flag 2011-02-07 12:51:19 +01:00
block-migration.h
block.c Don't allow multiwrites against a block device without underlying medium 2011-03-15 13:21:14 +01:00
block.h fdc: move floppy geometry guessing to block.c 2011-02-20 09:33:17 +00:00
block_int.h Add flag to indicate external users to block device 2011-02-07 12:51:19 +01:00
blockdev.c Improve error handling in do_snapshot_blkdev() 2011-03-15 13:21:14 +01:00
blockdev.h blockdev: add refcount to DriveInfo 2011-02-07 12:51:19 +01:00
bswap.h bswap.h: add cpu_to_be64wu() 2011-01-10 10:55:10 +01:00
bt-host.c
bt-host.h
bt-vhci.c
buffered_file.c change all rt_clock references to use millisecond resolution accessors 2011-03-21 09:23:23 +01:00
buffered_file.h
cache-utils.c
cache-utils.h Delete useless 'extern' qualifiers for functions 2011-01-23 16:21:20 +00:00
check-qdict.c check-qdict: Fix possible crash 2011-02-20 18:45:09 +01:00
check-qfloat.c
check-qint.c
check-qjson.c
check-qlist.c
check-qstring.c
cmd.c
cmd.h Delete useless 'extern' qualifiers for functions 2011-01-23 16:21:20 +00:00
compatfd.c Use sigwait instead of sigwaitinfo. 2011-02-25 20:16:26 +00:00
compatfd.h
config.h
configure Make VNC support optional 2011-03-22 08:39:12 -05:00
console.c Consolidate DisplaySurface allocation in qemu_alloc_display() 2011-03-22 08:39:11 -05:00
console.h Make VNC support optional 2011-03-22 08:39:12 -05:00
cpu-all.h Add qemu_ram_remap 2011-03-15 01:19:06 -03:00
cpu-common.h Add qemu_ram_remap 2011-03-15 01:19:06 -03:00
cpu-defs.h Expose thread_id in info cpus 2011-03-16 17:11:07 -03:00
cpu-exec.c x86: Unbreak TCG support for hardware breakpoints 2011-03-15 14:36:25 -03:00
cpus.c Merge remote branch 'qemu-kvm/uq/master' into staging 2011-03-21 17:42:20 -05:00
cpus.h Refactor debug and vmstop request interface 2011-02-14 12:39:46 -02:00
cris-dis.c cris: Support disassembly of crisv10 2011-01-10 22:31:09 +01:00
cursor.c
cursor_hidden.xpm
cursor_left_ptr.xpm
cutils.c QCOW2: bug fix - read base image beyond its size 2011-02-10 13:23:44 +01:00
def-helper.h
device_tree.c Allow qemu_devtree_setprop() to take arbitrary values 2011-04-01 18:34:54 +02:00
device_tree.h Allow qemu_devtree_setprop() to take arbitrary values 2011-04-01 18:34:54 +02:00
dis-asm.h Delete useless 'extern' qualifiers for functions 2011-01-23 16:21:20 +00:00
disas.c disas: remove opcode printing on ARM hosts 2011-01-12 15:12:58 +01:00
disas.h
dma-helpers.c
dma.h
dyngen-exec.h
elf.h LatticeMico32 target support 2011-03-07 13:42:36 +01:00
envlist.c
envlist.h Delete useless 'extern' qualifiers for functions 2011-01-23 16:21:20 +00:00
exec-all.h Make tb_alloc static 2011-02-10 18:17:43 +01:00
exec.c Expose thread_id in info cpus 2011-03-16 17:11:07 -03:00
gdbstub.c lm32: gdbstub support 2011-03-07 13:42:36 +01:00
gdbstub.h Add scripts directory 2011-01-20 20:54:21 +00:00
gen-icount.h
hmp-commands.hx hmp-commands.hx: fix badly merged client_migrate_info command 2011-03-10 16:12:21 -06:00
host-utils.c
host-utils.h
hpet.h
hppa-dis.c
hppa.ld
i386-dis.c
i386.ld
ia64-dis.c
ia64.ld
input.c
iohandler.c add a service to reap zombies, use it in SLIRP 2011-03-29 08:14:11 -05:00
ioport-user.c
ioport.c ioport: Improve error output 2011-03-06 21:01:32 +01:00
ioport.h Type-safe ioport callbacks 2010-11-21 09:16:57 -06:00
iorange.h Type-safe ioport callbacks 2010-11-21 09:16:57 -06:00
iov.c
iov.h
json-lexer.c
json-lexer.h
json-parser.c
json-parser.h
json-streamer.c
json-streamer.h
kvm-all.c kvm: x86: Push kvm_arch_debug to kvm_arch_handle_exit 2011-03-16 17:11:06 -03:00
kvm-stub.c Introduce log_start/log_stop in CPUPhysMemoryClient 2011-02-14 12:39:47 -02:00
kvm.h kvm: x86: Push kvm_arch_debug to kvm_arch_handle_exit 2011-03-16 17:11:06 -03:00
libfdt_env.h
linux-aio.c
m68k-dis.c *-dis: Replace fprintf_ftype by fprintf_function (format checking) 2010-12-04 20:50:30 +00:00
m68k-semi.c
m68k.ld
microblaze-dis.c *-dis: Replace fprintf_ftype by fprintf_function (format checking) 2010-12-04 20:50:30 +00:00
migration-exec.c
migration-fd.c
migration-tcp.c Fix conversions from pointer to int and vice versa 2011-03-20 21:39:23 +00:00
migration-unix.c Fix conversions from pointer to int and vice versa 2011-03-20 21:39:23 +00:00
migration.c Improve vm_stop reason declarations 2011-02-14 12:39:46 -02:00
migration.h add migration state change notifiers 2011-01-24 15:13:54 +01:00
mips-dis.c *-dis: Replace fprintf_ftype by fprintf_function (format checking) 2010-12-04 20:50:30 +00:00
mips.ld
module.c
module.h
monitor.c Parse SDR1 on mtspr instead of at translate time 2011-04-01 18:34:55 +02:00
monitor.h spice: connection events. 2010-12-09 14:23:24 +01:00
nbd.c
nbd.h
net-checksum.c
net.c net: Add the missing option declaration of "vhostforce" 2011-03-06 20:15:31 +01:00
net.h Add bootindex parameter to net/block/fd device 2010-12-11 21:32:46 +00:00
notify.c
notify.h
os-posix.c add a service to reap zombies, use it in SLIRP 2011-03-29 08:14:11 -05:00
os-win32.c Expose thread_id in info cpus 2011-03-16 17:11:07 -03:00
osdep.c
osdep.h Merge remote branch 'qemu-kvm/uq/master' into staging 2011-03-21 17:42:20 -05:00
oslib-posix.c virtio-9p: fix build on !CONFIG_UTIMENSAT 2010-12-02 16:08:40 -08:00
oslib-win32.c w32: Remove implementation of function ffs 2011-02-20 20:18:21 +00:00
path.c user: speed up init_paths a bit 2011-02-09 10:33:54 +02:00
pci-ids.txt
pflib.c
pflib.h
poison.h LatticeMico32 target support 2011-03-07 13:42:36 +01:00
posix-aio-compat.c trace: Trace posix-aio-compat.c completion and cancellation 2011-03-07 15:34:46 +00:00
ppc-dis.c
ppc.ld
ppc64.ld
qbool.c
qbool.h
qdict-test-data.txt
qdict.c
qdict.h
qemu-aio.h
qemu-barrier.h
qemu-char.c Merge remote branch 'amit/for-anthony' into staging 2011-03-24 08:11:58 -05:00
qemu-char.h char: Prevent multiple devices opening same chardev 2011-03-21 16:57:13 +05:30
qemu-common.h add a service to reap zombies, use it in SLIRP 2011-03-29 08:14:11 -05:00
qemu-config.c spice: add chardev (v5) 2011-01-24 15:41:40 +01:00
qemu-config.h
qemu-doc.texi Documentation: add Sheepdog disk images 2011-02-07 09:44:45 +01:00
qemu-error.c
qemu-error.h
qemu-img-cmds.hx
qemu-img.c qemu-img: Improve error messages for failed bdrv_open 2011-02-10 13:24:11 +01:00
qemu-img.texi Documentation: Add qemu-img check/rebase 2011-01-24 16:41:49 +01:00
qemu-io.c qemu-io: Fix discard command 2011-01-31 10:03:00 +01:00
qemu-lock.h qemu-lock.h: Remove non-pthreads spinlock implementations 2011-02-20 15:20:06 +01:00
qemu-log.h
qemu-malloc.c Add missing tracing to qemu_mallocz() 2010-12-14 15:44:21 +01:00
qemu-nbd.c Remove NULL checks for bdrv_new return value 2010-12-17 16:11:03 +01:00
qemu-nbd.texi
qemu-objects.h
qemu-option.c qemu-option: Fix parse_option_parameters() documentation typo 2010-12-14 15:44:21 +01:00
qemu-option.h
qemu-options.h
qemu-options.hx error message if user specifies curses on cmd line when curses is disabled 2011-03-22 08:39:12 -05:00
qemu-os-posix.h virtio-9p: fix build on !CONFIG_UTIMENSAT 2010-12-02 16:08:40 -08:00
qemu-os-win32.h
qemu-queue.h
qemu-sockets.c
qemu-tech.texi qemu-tech: Spelling fixes 2011-01-09 20:59:53 +00:00
qemu-thread-posix.c qemu-thread: delete unused functions 2011-03-19 08:30:28 +00:00
qemu-thread-posix.h add Win32 IPI service 2011-03-13 14:44:22 +00:00
qemu-thread-win32.c w32: Add missing functions qemu_mutex_destroy, qemu_cond_destroy 2011-03-19 08:29:35 +00:00
qemu-thread-win32.h add win32 qemu-thread implementation 2011-03-13 14:44:21 +00:00
qemu-thread.h qemu-thread: delete unused functions 2011-03-19 08:30:28 +00:00
qemu-timer-common.c Add OpenBSD to ifdef list since it has CLOCK_MONOTONIC. 2010-12-21 19:44:42 +00:00
qemu-timer.c remove qemu_get_clock 2011-03-21 09:23:23 +01:00
qemu-timer.h remove qemu_get_clock 2011-03-21 09:23:23 +01:00
qemu-tool.c tools: Use real async.c instead of stubs 2011-03-15 13:21:14 +01:00
qemu-x509.h
qemu.sasl
qemu_socket.h net: remove parse_host_src_port() function 2011-03-06 20:06:50 +01:00
qerror.c qerror: Add QERR_UNKNOWN_BLOCK_FORMAT_FEATURE 2011-02-10 13:23:44 +01:00
qerror.h Make VNC support optional 2011-03-22 08:39:12 -05:00
qfloat.c
qfloat.h
qint.c
qint.h
qjson.c
qjson.h
qlist.c
qlist.h
qmp-commands.hx qmp-commands.hx: Clean up mess of client_migrate_info 2011-03-22 08:39:12 -05:00
qobject.h
qstring.c
qstring.h
range.h
readline.c
readline.h
rules.mak Add scripts directory 2011-01-20 20:54:21 +00:00
rwhandler.c Make simple io mem handler endian aware 2010-12-11 15:24:25 +00:00
rwhandler.h Make simple io mem handler endian aware 2010-12-11 15:24:25 +00:00
s390-dis.c
s390.ld
savevm.c Fix migration uint8 arrys handled 2011-03-21 17:41:52 -05:00
sh4-dis.c *-dis: Replace fprintf_ftype by fprintf_function (format checking) 2010-12-04 20:50:30 +00:00
simpletrace.c simpletrace: Move st_init() error reporting 2011-03-15 18:03:26 +00:00
simpletrace.h simpletrace: Move st_init() error reporting 2011-03-15 18:03:26 +00:00
softmmu-semi.h
softmmu_defs.h
softmmu_exec.h
softmmu_header.h
softmmu_template.h
sparc-dis.c
sparc.ld
sparc64.ld
spice-qemu-char.c spice: add chardev (v5) 2011-01-24 15:41:40 +01:00
sysemu.h report that QEMU process was killed by a signal 2011-03-26 12:54:42 +00:00
targphys.h
tcg-runtime.c
thunk.c
thunk.h
trace-events trace: Trace posix-aio-compat.c completion and cancellation 2011-03-07 15:34:46 +00:00
translate-all.c
uboot_image.h
usb-bsd.c usb-bsd: fix a file descriptor leak 2011-01-09 14:43:33 +00:00
usb-linux.c change all rt_clock references to use millisecond resolution accessors 2011-03-21 09:23:23 +01:00
usb-stub.c
version.rc
vgafont.h
vl.c extract I/O handler lists to iohandler.c 2011-03-29 08:14:01 -05:00
x86_64.ld

README

Read the documentation in qemu-doc.html.

Fabrice Bellard.