QEMU With E2K User Support
Go to file
David Gibson eaabeef268 Correct ppc popcntb logic, implement popcntw and popcntd
qemu already includes support for the popcntb instruction introduced
in POWER5 (although it doesn't actually allow you to choose POWER5).

However, the logic is slightly incorrect: it will generate results
truncated to 32-bits when the CPU is in 32-bit mode.  This is not
normal for powerpc - generally arithmetic instructions on a 64-bit
powerpc cpu will generate full 64 bit results, it's just that only the
low 32 bits will be significant for condition codes.

This patch corrects this nit, which actually simplifies the code slightly.

In addition, this patch implements the popcntw and popcntd
instructions added in POWER7, in preparation for allowing POWER7 as an
emulated CPU.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
2011-04-01 18:34:54 +02: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
QMP spice: connection events. 2010-12-09 14:23:24 +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 Correct ppc popcntb logic, implement popcntw and popcntd 2011-04-01 18:34:54 +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
a.out.h
acl.c
acl.h
aes.c
aes.h
aio.c block: fix aio_flush segfaults for read-only protocols (e.g. curl) 2010-05-21 11:49:18 +02:00
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 trace: Trace entry point of balloon request handler 2010-09-09 16:22:45 -05:00
balloon.h move balloon handling to balloon.c 2010-04-09 18:55:56 +02:00
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_int.h Add flag to indicate external users to block device 2011-02-07 12:51:19 +01: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
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: remove dead assignments, spotted by clang analyzer 2010-04-25 18:20:28 +00:00
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 Remove trailing whitespace 2010-11-01 00:54:06 +03:00
cache-utils.h Delete useless 'extern' qualifiers for functions 2011-01-23 16:21:20 +00:00
Changelog
check-qdict.c check-qdict: Fix possible crash 2011-02-20 18:45:09 +01:00
check-qfloat.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
check-qint.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
check-qjson.c Silence compiler warning in json test case 2010-10-22 10:08:37 -02:00
check-qlist.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
check-qstring.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
cmd.c qemu-io: check registered fds in command_loop() 2010-06-22 14:38:02 +02:00
cmd.h Delete useless 'extern' qualifiers for functions 2011-01-23 16:21:20 +00:00
CODING_STYLE checkpatch: adjust to QEMUisms 2011-01-20 20:58:56 +00:00
compatfd.c Use sigwait instead of sigwaitinfo. 2011-02-25 20:16:26 +00:00
compatfd.h signalfd compatibility 2010-10-20 16:15:04 -05:00
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
COPYING
COPYING.LIB
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_hidden.xpm cursor: add cursor functions. 2010-05-24 15:18:23 -05:00
cursor_left_ptr.xpm cursor: add cursor functions. 2010-05-24 15:18:23 -05:00
cursor.c cursor: add cursor functions. 2010-05-24 15:18:23 -05:00
cutils.c QCOW2: bug fix - read base image beyond its size 2011-02-10 13:23:44 +01:00
def-helper.h tcg: Optionally sign-extend 32-bit arguments for 64-bit hosts. 2010-06-16 11:29:11 +02:00
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 Remove special handling of system include files (no longer needed) 2010-10-22 17:11:28 +00:00
dma-helpers.c
dma.h
dyngen-exec.h Remove special handling of system include files (no longer needed) 2010-10-22 17:11:28 +00:00
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 Compile qemu-timer only once 2010-03-29 19:24:00 +00:00
HACKING HACKING: Update status of format checking 2011-02-25 16:31:05 -06:00
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 tcg-hppa: Fix const errors in hppa-dis.c 2010-03-23 22:00:43 +01:00
hppa.ld
i386-dis.c i386-dis: Fix unused return value, spotted by clang 2010-04-18 14:27:44 +00:00
i386.ld
ia64-dis.c Fix %lld or %llx printf format use 2010-05-22 08:02:12 +00:00
ia64.ld
input.c un-register kbd driver in case of USB kbd unplug. 2010-06-14 15:46:28 -05:00
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: Move from hw/ to topdir 2010-05-10 11:36:03 -05:00
iov.h iov: Move from hw/ to topdir 2010-05-10 11:36:03 -05:00
json-lexer.c remove unnecessary lookaheads 2010-06-11 15:25:14 -03:00
json-lexer.h
json-parser.c Use GCC_FMT_ATTR (format checking) 2010-10-03 06:34:51 +00:00
json-parser.h
json-streamer.c json-streamer: Don't use qdict_put_obj() 2010-06-11 15:25:14 -03:00
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
LICENSE
linux-aio.c linux-aio: Fix typo in read() EINTR check 2010-04-23 16:21:57 +02:00
m68k-dis.c *-dis: Replace fprintf_ftype by fprintf_function (format checking) 2010-12-04 20:50:30 +00:00
m68k-semi.c Move qemu_gettimeofday() to OS specific files 2010-10-30 08:02:38 +00:00
m68k.ld
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 Compile disassemblers only once 2010-03-21 08:28:47 +00:00
Makefile.hw Clean libhw subdirs as well 2010-05-22 08:24:49 +00:00
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
microblaze-dis.c *-dis: Replace fprintf_ftype by fprintf_function (format checking) 2010-12-04 20:50:30 +00:00
migration-exec.c Factorize common migration incoming code 2010-06-22 15:15:51 -05:00
migration-fd.c Factorize common migration incoming code 2010-06-22 15:15:51 -05:00
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 Make VNC support optional 2011-03-22 08:39:12 -05:00
monitor.h spice: connection events. 2010-12-09 14:23:24 +01:00
nbd.c nbd: Haiku has _IO() in its BSD compatibility layer 2010-10-03 06:31:33 +00:00
nbd.h Merge remote branch 'kwolf/for-anthony' into staging 2010-09-08 14:26:57 -05:00
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 Add support for generic notifier lists 2010-03-19 15:27:32 -05:00
notify.h Add support for generic notifier lists 2010-03-19 15:27:32 -05:00
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 Remove unncessary includes 2010-10-30 08:02:40 +00:00
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 add pflib: PixelFormat conversion library. 2010-09-21 18:35:30 +02:00
pflib.h add pflib: PixelFormat conversion library. 2010-09-21 18:35:30 +02:00
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
ppc64.ld
ppc-dis.c
ppc.ld
qbool.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qbool.h
qdict-test-data.txt
qdict.c QDict: Introduce qdict_get_try_bool() 2010-07-01 14:27:13 -03:00
qdict.h QDict: Introduce qdict_get_try_bool() 2010-07-01 14:27:13 -03:00
qemu_socket.h net: remove parse_host_src_port() function 2011-03-06 20:06:50 +01:00
qemu-aio.h
qemu-barrier.h Introduce proper compiler barrier 2010-07-22 05:52:08 +02:00
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 spice: core bits 2010-09-21 18:36:42 +02:00
qemu-doc.texi Documentation: add Sheepdog disk images 2011-02-07 09:44:45 +01:00
qemu-error.c error: Move qerror_report() from qemu-error.[ch] to qerror.[ch] 2010-03-27 14:30:38 +01:00
qemu-error.h Use GCC_FMT_ATTR (format checking) 2010-10-03 06:34:51 +00:00
qemu-img-cmds.hx Copy snapshots out of QCOW2 disk 2010-10-22 14:49:35 +02:00
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 Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qemu-option.c qemu-option: Fix parse_option_parameters() documentation typo 2010-12-14 15:44:21 +01:00
qemu-option.h error: New qemu_opts_loc_restore() 2010-07-06 17:05:49 +02:00
qemu-options.h Introduce OS specific cmdline argument handling and move SMB arg to os-posix.c 2010-06-12 08:49:15 +03:00
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 Move qemu_gettimeofday() to OS specific files 2010-10-30 08:02:38 +00:00
qemu-queue.h
qemu-sockets.c qemu-sockets: avoid strlen of NULL pointer 2010-05-18 19:49:16 +02:00
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
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 Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qfloat.h
qint.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qint.h Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qjson.c Add support for JSON pretty printing 2010-10-01 10:12:43 -03:00
qjson.h Merge remote branch 'qmp/for-anthony' into staging 2010-10-05 13:54:49 -05:00
qlist.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qlist.h Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qmp-commands.hx qmp-commands.hx: Clean up mess of client_migrate_info 2011-03-22 08:39:12 -05:00
qobject.h Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qstring.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qstring.h Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
range.h Introduce range.h 2010-09-18 05:53:14 +00:00
readline.c
readline.h
README
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: Disassemble some general-instruction-extension insns. 2010-06-10 00:46:41 +02:00
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_defs.h
softmmu_exec.h sparc64: handle asi referencing nucleus and secondary MMU contexts 2010-05-06 23:14:26 +03:00
softmmu_header.h sparc64: fix 32bit load sign extension 2010-06-02 20:04:52 +00:00
softmmu_template.h Split TLB addend and target_phys_addr_t 2010-04-05 00:28:53 +01:00
softmmu-semi.h
sparc64.ld
sparc-dis.c sparc64: more ultrasparc asi extensions for disassembler 2010-05-06 20:13:02 +00:00
sparc.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 Split TLB addend and target_phys_addr_t 2010-04-05 00:28:53 +01:00
tcg-runtime.c
thunk.c
thunk.h
TODO
trace-events trace: Trace posix-aio-compat.c completion and cancellation 2011-03-07 15:34:46 +00:00
translate-all.c tcg: get rid of copy_size in TCGOpDef 2010-06-09 16:10:50 +02:00
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 Open up the 0.15 development branch 2011-02-02 08:39:28 +01:00
version.rc mingw: add version information to the executables 2010-09-26 16:07:57 +00:00
vgafont.h
vl.c extract I/O handler lists to iohandler.c 2011-03-29 08:14:01 -05:00
x86_64.ld

Read the documentation in qemu-doc.html.

Fabrice Bellard.