QEMU With E2K User Support
Go to file
aurel32 79d342dc6b tcg/x86_64: optimize register allocation order
The beginning of the register allocation order list on the TCG x86_64
target matches the list of clobbered registers. This means that when an
helper is called, there is almost always clobbered registers that have
to be spilled.

The same way register %rsi and %rdi are at the top of the register
allocation order list, while they can't be used for load/store
operations. This means the data and/or address registers are very often
%rsi and %rdi, and their values have to be spilled, and then moved back
to another register.

This patches changes to the allocation order to avoid those effects.
It results in a 8% gain speed in qemu-x86_64 to compress a bzip2 file,
and a 6% gain in qemu-system-mips64 to compile a small application.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7003 c046a42c-6fe2-441c-8c8c-71466251a162
2009-04-05 20:08:50 +00:00
audio Support for DragonFly BSD (Hasso Tepper) 2009-03-07 20:06:23 +00:00
bsd-user Fix BSD user: there is no NPTL 2009-03-07 18:59:05 +00:00
darwin-user Use a dedicated function to request exit from execution loop 2009-03-07 21:28:24 +00:00
fpu Rename one more _BSD to HOST_BSD (spotted by Hasso Tepper) 2009-03-08 15:58:00 +00:00
gdb-xml Work around QEMU GDB stub suboptimality 2009-03-07 22:00:56 +00:00
hw create qemu_file_set_error (Glauber Costa) 2009-04-05 19:30:51 +00:00
keymaps Fix fr-be keymap 2009-02-09 23:19:44 +00:00
linux-user Use a dedicated function to request exit from execution loop 2009-03-07 21:28:24 +00:00
pc-bios Update OpenBIOS images to r482 2009-03-31 15:46:09 +00:00
slirp Fix some win32 compile warnings 2009-04-05 18:03:31 +00:00
target-alpha target-alpha: bug fix: avoid nop to override next instruction 2009-03-29 01:04:39 +00:00
target-arm Fix ARM quadword VDUP (core register). 2009-03-17 12:19:58 +00:00
target-cris The _exit syscall is used for both thread termination in NPTL applications, 2009-03-07 15:24:59 +00:00
target-i386 Immediate versions of ro[lr] 2009-04-02 22:54:35 +00:00
target-m68k tcg: rename bswap_i32/i64 functions 2009-03-13 09:34:48 +00:00
target-mips target-mips: optimize gen_movcf_*() 2009-03-29 15:45:02 +00:00
target-ppc target-ppc: Explain why the whole TLB is flushed on SR write 2009-03-29 13:36:32 +00:00
target-sh4 SH: Fix linux-user _is_cached typo. 2009-04-03 07:33:24 +00:00
target-sparc Delete some unused macros detected with -Wp,-Wunused-macros use 2009-03-16 16:33:01 +00:00
tcg tcg/x86_64: optimize register allocation order 2009-04-05 20:08:50 +00:00
tests Get rid of user_mode_only 2009-01-14 19:40:27 +00:00
.gitignore Extend gitignore (Jan Kiszka) 2009-01-22 17:15:25 +00:00
CODING_STYLE Document QEMU coding style (v2) (Avi Kivity) 2009-04-05 17:40:34 +00:00
COPYING COPYING: update from FSF 2008-10-12 17:54:42 +00:00
COPYING.LIB Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
Changelog Update changelog 2009-03-13 16:22:41 +00:00
LICENSE Add missing newline at the end of file 2008-12-14 08:50:18 +00:00
MAINTAINERS Update maintainers list. 2008-08-25 22:26:03 +00:00
Makefile qemu-io - an I/O path exerciser (Christoph Hellwig) 2009-04-05 18:41:23 +00:00
Makefile.target Make binary stripping conditional (Riku Voipio) 2009-04-05 17:41:02 +00:00
README Add missing newline at the end of file 2008-12-14 08:50:18 +00:00
TODO Update 2008-12-04 11:29:42 +00:00
VERSION Add version information for 0.10.0 release. 2009-03-04 22:47:59 +00:00
a.out.h Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
acl.c Remove tabs introduced from VNC ACL series 2009-03-06 20:27:40 +00:00
acl.h Support ACLs for controlling VNC access ("Daniel P. Berrange") 2009-03-06 20:27:37 +00:00
aes.c Delete some unused macros detected with -Wp,-Wunused-macros use 2009-03-16 16:33:01 +00:00
aes.h AES crypto support 2004-08-01 21:54:53 +00:00
aio.c toplevel: remove error handling from qemu_malloc() callers (Avi Kivity) 2009-02-05 22:06:18 +00:00
alpha-dis.c Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
alpha.ld alpha support 2003-04-29 20:53:42 +00:00
arm-dis.c clean build: Fix arm build warnings 2009-03-07 21:48:00 +00:00
arm-semi.c Fix more FSF addresses 2009-01-05 18:11:53 +00:00
arm.ld Link ARM prologue closer to code segment to avoid a build failure 2008-07-10 17:21:31 +00:00
balloon.h Add missing file from previous commit. 2008-12-04 20:35:16 +00:00
block-bochs.c Use C99 initializers for BlockDriver methods 2009-03-07 22:00:29 +00:00
block-cloop.c Use C99 initializers for BlockDriver methods 2009-03-07 22:00:29 +00:00
block-cow.c Use C99 initializers for BlockDriver methods 2009-03-07 22:00:29 +00:00
block-dmg.c Use C99 initializers for BlockDriver methods 2009-03-07 22:00:29 +00:00
block-nbd.c Use C99 initializers for BlockDriver methods 2009-03-07 22:00:29 +00:00
block-parallels.c Use C99 initializers for BlockDriver methods 2009-03-07 22:00:29 +00:00
block-qcow.c Use C99 initializers for BlockDriver methods 2009-03-07 22:00:29 +00:00
block-qcow2.c Fix savevm after BDRV_FILE size enforcement 2009-04-05 19:10:55 +00:00
block-raw-posix.c Fix the build for --disable-aio 2009-04-05 19:10:50 +00:00
block-raw-win32.c Fix some win32 compile warnings 2009-04-05 18:03:31 +00:00
block-vmdk.c Use C99 initializers for BlockDriver methods 2009-03-07 22:00:29 +00:00
block-vpc.c Use C99 initializers for BlockDriver methods 2009-03-07 22:00:29 +00:00
block-vvfat.c Use C99 initializers for BlockDriver methods 2009-03-07 22:00:29 +00:00
block.c Fix savevm after BDRV_FILE size enforcement 2009-04-05 19:10:55 +00:00
block.h Fix savevm after BDRV_FILE size enforcement 2009-04-05 19:10:55 +00:00
block_int.h Fix savevm after BDRV_FILE size enforcement 2009-04-05 19:10:55 +00:00
bswap.h Sparse fixes: truncation by cast 2009-03-07 15:46:23 +00:00
bt-host.c Clean build: Add bt-host.h 2009-03-10 21:43:35 +00:00
bt-host.h Clean build: Add bt-host.h 2009-03-10 21:43:35 +00:00
bt-vhci.c Sparse fixes: NULL use, header order, ANSI prototypes, static 2009-03-07 15:32:56 +00:00
buffered_file.c toplevel: remove error handling from qemu_malloc() callers (Avi Kivity) 2009-02-05 22:06:18 +00:00
buffered_file.h Introduce a buffered file wrapper for QEMUFile 2008-10-13 03:10:22 +00:00
cache-utils.c Properly initialize len argument of sysctl and include stdio.h (perror) 2009-02-04 20:39:09 +00:00
cache-utils.h Remove all traces of __powerpc__ 2009-01-14 18:39:49 +00:00
cmd.c Add files not included in previous commit. 2009-04-05 19:14:04 +00:00
cmd.h Add files not included in previous commit. 2009-04-05 19:14:04 +00:00
cocoa.m Update cocoa.m to match new DisplayState code (Samuel Benson) 2009-03-04 19:25:22 +00:00
configure Disable qemu-io on Win32 2009-04-05 19:29:26 +00:00
console.c Delete some unused macros detected with -Wp,-Wunused-macros use 2009-03-16 16:33:01 +00:00
console.h DisplayAllocator interface (Stefano Stabellini) 2009-03-13 15:02:13 +00:00
cpu-all.h Use a dedicated function to request exit from execution loop 2009-03-07 21:28:24 +00:00
cpu-defs.h The _exit syscall is used for both thread termination in NPTL applications, 2009-03-07 15:24:59 +00:00
cpu-exec.c Make i386-softmmu boot on Sparc host 2009-04-04 07:41:20 +00:00
cris-dis.c toplevel: remove error handling from qemu_malloc() callers (Avi Kivity) 2009-02-05 22:06:18 +00:00
curses.c DisplayAllocator interface (Stefano Stabellini) 2009-03-13 15:02:13 +00:00
curses_keys.h Sparse fixes: remove duplicate entry 2009-03-07 15:53:15 +00:00
cutils.c add qemu_iovec_init_external (Christoph Hellwig) 2009-03-28 17:46:10 +00:00
d3des.c Ansify to please sparse 2008-10-27 19:49:12 +00:00
d3des.h Actually add d3des implementation files. 2007-08-25 02:09:50 +00:00
def-helper.h Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
device_tree.c toplevel: remove error handling from qemu_malloc() callers (Avi Kivity) 2009-02-05 22:06:18 +00:00
device_tree.h Implement device tree support needed for Bamboo emulation 2008-12-16 10:43:48 +00:00
dis-asm.h Update ppc-dis.c from binutils 2.17 2009-02-09 19:58:22 +00:00
disas.c monitor: Rework API (Jan Kiszka) 2009-03-05 23:01:23 +00:00
disas.h monitor: Rework API (Jan Kiszka) 2009-03-05 23:01:23 +00:00
dma-helpers.c Fix DMA API when handling an immediate error from block layer (Avi Kivity) 2009-03-28 16:11:25 +00:00
dma.h Implement cancellation method for dma async I/O (Avi Kivity) 2009-03-20 18:26:07 +00:00
dyngen-exec.h Prune unused AREGs 2009-03-08 12:41:36 +00:00
elf.h Fix most warnings that would be caused by gcc flag -Wundef 2008-09-06 17:47:39 +00:00
elf_ops.h Make the ELF loader aware of backwards compatibility 2009-03-13 21:16:24 +00:00
exec-all.h Remove GenOpFunc typedefs 2009-02-08 17:17:52 +00:00
exec.c Fix some win32 compile warnings 2009-04-05 18:03:31 +00:00
feature_to_c.sh Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
gdbstub.c gdbstub: Rework configuration via command line and monitor (Jan Kiszka) 2009-04-05 18:43:41 +00:00
gdbstub.h Guest debugging support for KVM (Jan Kiszka) 2009-03-12 20:12:48 +00:00
gen-icount.h Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
host-utils.c Code used by the linux-user targets should not use vl.h. 2007-11-05 13:01:41 +00:00
host-utils.h Include <strings.h> for ffs(). 2008-11-12 17:18:41 +00:00
hostregs_helper.h Prune unused AREGs 2009-03-08 12:41:36 +00:00
hpet.h Add a local copy of hpet.h. 2007-09-16 20:03:23 +00:00
hppa-dis.c HPPA (PA-RISC) host support 2008-04-12 20:14:54 +00:00
hppa.ld HPPA (PA-RISC) host support 2008-04-12 20:14:54 +00:00
hxtool Fix hxtool eating backslash sequences for sh != bash 2009-03-29 10:50:43 +00:00
i386-dis.c Update i386-dis.c from commits before GPLv3 switch 2009-03-07 16:57:53 +00:00
i386.ld Add TLS sections. 2008-05-31 16:21:33 +00:00
ia64.ld ia64 host support (David Mosberger) 2005-04-07 22:20:31 +00:00
keymaps.c Refactor keymap code to avoid duplication ("Daniel P. Berrange") 2009-03-06 20:27:10 +00:00
keymaps.h Add missing file from previous commit 2009-03-06 22:47:54 +00:00
kqemu.c Fix windows build and clean up use of <windows.h> 2009-03-08 16:26:59 +00:00
kqemu.h kqemu API change - allow use of kqemu with 32 bit QEMU on a 64 bit host 2008-05-30 20:48:25 +00:00
kvm-all.c Guest debugging support for KVM (Jan Kiszka) 2009-03-12 20:12:48 +00:00
kvm.h Guest debugging support for KVM (Jan Kiszka) 2009-03-12 20:12:48 +00:00
libfdt_env.h Implement device tree support needed for Bamboo emulation 2008-12-16 10:43:48 +00:00
loader.c Delete some unused macros detected with -Wp,-Wunused-macros use 2009-03-16 16:33:01 +00:00
m68k-dis.c Spelling and grammar fixes 2008-11-30 16:25:37 +00:00
m68k-semi.c Fix more FSF addresses 2009-01-05 18:11:53 +00:00
m68k.ld m68k host port (Richard Zidlicky) 2003-08-10 22:14:22 +00:00
migration-exec.c monitor: Decouple terminals (Jan Kiszka) 2009-03-05 23:01:42 +00:00
migration-tcp.c monitor: Decouple terminals (Jan Kiszka) 2009-03-05 23:01:42 +00:00
migration.c propagate error on failed completion (Glauber Costa) 2009-04-05 19:30:33 +00:00
migration.h monitor: Decouple terminals (Jan Kiszka) 2009-03-05 23:01:42 +00:00
mips-dis.c Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
mips.ld Linker scripts for MIPS hosts. 2007-05-05 19:24:38 +00:00
mipsel.ld Linker scripts for MIPS hosts. 2007-05-05 19:24:38 +00:00
monitor.c gdbstub: Rework configuration via command line and monitor (Jan Kiszka) 2009-04-05 18:43:41 +00:00
monitor.h monitor: Introduce MONITOR_USE_READLINE flag (Jan Kiszka) 2009-03-05 23:01:51 +00:00
nbd.c Fix some win32 compile warnings 2009-04-05 18:03:31 +00:00
nbd.h Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
net-checksum.c Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
net.c Fix some win32 compile warnings 2009-04-05 18:03:31 +00:00
net.h monitor: Rework API (Jan Kiszka) 2009-03-05 23:01:23 +00:00
osdep.c Fix windows build and clean up use of <windows.h> 2009-03-08 16:26:59 +00:00
osdep.h snapshot subcommand for qemu-img (Kevin Wolf) 2009-01-07 17:40:15 +00:00
pci-ids.txt List virtio console device in pci-ids.txt 2009-01-24 16:37:31 +00:00
posix-aio-compat.c new scsi-generic abstraction, use SG_IO (Christoph Hellwig) 2009-03-28 17:28:41 +00:00
posix-aio-compat.h new scsi-generic abstraction, use SG_IO (Christoph Hellwig) 2009-03-28 17:28:41 +00:00
ppc-dis.c Update ppc-dis.c from binutils from 4th July, 2007, just before GPLv3 switch 2009-02-09 19:59:57 +00:00
ppc.ld Update ppc.ld to work with newer binutils. 2007-04-28 19:00:30 +00:00
ppc64.ld Correct version of Heikki Lindholms ppc64.ld script 2008-08-20 22:39:24 +00:00
qemu-aio.h Refactor AIO to allow multiple AIO implementations 2008-09-22 19:17:18 +00:00
qemu-binfmt-conf.sh Code provision for n32/n64 mips userland emulation. Not functional yet. 2007-09-30 01:58:33 +00:00
qemu-char.c char: Fix closing of various char devices (Jan Kiszka) 2009-03-28 17:58:14 +00:00
qemu-char.h monitor: Improve mux'ed console experience (Jan Kiszka) 2009-03-05 23:01:47 +00:00
qemu-common.h add qemu_iovec_init_external (Christoph Hellwig) 2009-03-28 17:46:10 +00:00
qemu-doc.texi Syncing documentation vs. -help vs. qemu_options table 2009-03-28 06:44:27 +00:00
qemu-img.c Add host_device support to qemu-img. (Nolan Leake) 2009-04-05 17:40:43 +00:00
qemu-img.texi qemu-img: adding a "-F base_fmt" option to "qemu-img create -b" (Uri Lublin) 2009-03-28 17:55:19 +00:00
qemu-io.c Add files not included in previous commit. 2009-04-05 19:14:04 +00:00
qemu-lock.h Remove all traces of __powerpc__ 2009-01-14 18:39:49 +00:00
qemu-log.h Define macros that will become the new logging API (Eduardo Habkost) 2009-01-15 21:52:11 +00:00
qemu-malloc.c Fix qemu_realloc() (Kevin Wolf) 2009-02-11 21:00:32 +00:00
qemu-nbd.c toplevel: remove error handling from qemu_malloc() callers (Avi Kivity) 2009-02-05 22:06:18 +00:00
qemu-nbd.texi Fix formatting of documentation (Stefan Weil) 2008-09-22 20:41:57 +00:00
qemu-options.hx gdbstub: Rework configuration via command line and monitor (Jan Kiszka) 2009-04-05 18:43:41 +00:00
qemu-sockets.c Fix some more warnings 2009-01-14 18:34:22 +00:00
qemu-tech.texi Update (thanks to Edgar, Thiemo, malc, Paul, Laurent and Andrzej) 2008-10-09 18:52:04 +00:00
qemu-timer.h Break up vl.h. 2007-11-17 17:14:51 +00:00
qemu-tool.c monitor: Rework API (Jan Kiszka) 2009-03-05 23:01:23 +00:00
qemu.sasl Add SASL authentication support ("Daniel P. Berrange") 2009-03-06 20:27:28 +00:00
qemu_socket.h Fix windows build and clean up use of <windows.h> 2009-03-08 16:26:59 +00:00
readline.c monitor: Provide empty command as final history entry (Jan Kiszka) 2009-03-13 15:02:28 +00:00
readline.h monitor: Improve mux'ed console experience (Jan Kiszka) 2009-03-05 23:01:47 +00:00
rules.mak build system: Further improve quiet mode (Jan Kiszka) 2009-01-26 17:07:46 +00:00
s390-dis.c Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
s390.ld Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
savevm.c create qemu_file_set_error (Glauber Costa) 2009-04-05 19:30:51 +00:00
sdl.c Fix absolute mouse events generated by SDL frontend. 2009-03-21 01:09:16 +00:00
sdl_keysym.h Refactor keymap code to avoid duplication ("Daniel P. Berrange") 2009-03-06 20:27:10 +00:00
sh4-dis.c Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
softmmu-semi.h Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
softmmu_defs.h Fix some warnings that would be generated by gcc -Wredundant-decls 2008-08-30 09:51:20 +00:00
softmmu_exec.h Fix some warnings that would be generated by gcc -Wredundant-decls 2008-08-30 09:51:20 +00:00
softmmu_header.h Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
softmmu_template.h Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
sparc-dis.c Make OpenBSD sparc-softmmu compile warning free 2009-01-14 18:08:08 +00:00
sparc.ld More detabification 2007-10-06 11:28:21 +00:00
sparc64.ld Map code buffers below 2G on Sparc64 2008-07-26 15:05:57 +00:00
sys-queue.h Remove CRs 2008-12-14 08:53:17 +00:00
sysemu.h Fix windows build and clean up use of <windows.h> 2009-03-08 16:26:59 +00:00
tap-win32.c Fix some win32 compile warnings 2009-04-05 18:03:31 +00:00
texi2pod.pl Update texi2pod.pl. 2008-02-04 14:47:49 +00:00
thunk.c Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
thunk.h Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
translate-all.c global s/loglevel & X/qemu_loglevel_mask(X)/ (Eduardo Habkost) 2009-01-15 22:36:53 +00:00
uboot_image.h Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
usb-bsd.c Support for DragonFly BSD (Hasso Tepper) 2009-03-07 20:06:23 +00:00
usb-linux.c monitor: Rework API (Jan Kiszka) 2009-03-05 23:01:23 +00:00
usb-stub.c monitor: Rework API (Jan Kiszka) 2009-03-05 23:01:23 +00:00
vgafont.h Some little fixes on QEMU 2008-09-06 16:31:30 +00:00
vl.c stop dirty tracking just at the end of migration (Glauber Costa) 2009-04-05 19:30:55 +00:00
vnc-auth-sasl.c Remove tabs introduced from VNC ACL series 2009-03-06 20:27:40 +00:00
vnc-auth-sasl.h Support ACLs for controlling VNC access ("Daniel P. Berrange") 2009-03-06 20:27:37 +00:00
vnc-auth-vencrypt.c Add more missing files 2009-03-06 23:44:29 +00:00
vnc-auth-vencrypt.h Add more missing files 2009-03-06 23:44:29 +00:00
vnc-tls.c Add more missing files 2009-03-06 23:44:29 +00:00
vnc-tls.h Add more missing files 2009-03-06 23:44:29 +00:00
vnc.c vnc: throttle screen updates. (Gerd Hoffmann) 2009-03-20 15:59:24 +00:00
vnc.h vnc: throttle screen updates. (Gerd Hoffmann) 2009-03-20 15:59:24 +00:00
vnc_keysym.h Refactor keymap code to avoid duplication ("Daniel P. Berrange") 2009-03-06 20:27:10 +00:00
vnchextile.h vnc: cleanup surface handling, fix screen corruption bug. (Gerd Hoffmann) 2009-03-20 15:59:14 +00:00
x86_64.ld update 2005-01-06 20:50:00 +00:00
x_keymap.c Fix SDL on evdev hosts (Anthony Liguori) 2009-03-03 17:37:21 +00:00
x_keymap.h Fix SDL on evdev hosts (Anthony Liguori) 2009-03-03 17:37:21 +00:00

README

Read the documentation in qemu-doc.html.

Fabrice Bellard.