sdk/emulator/qemu.git
14 years agotarget-ppc: remove useless line
Thomas Monjalon [Fri, 28 May 2010 19:00:45 +0000 (21:00 +0200)]
target-ppc: remove useless line

This line was a bit clear.
The next lines set or reset this bit (LE) depending of another bit (ILE).
So the first line is useless.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-ppc: fix RFI by clearing some bits of MSR
Thomas Monjalon [Fri, 28 May 2010 19:07:32 +0000 (21:07 +0200)]
target-ppc: fix RFI by clearing some bits of MSR

Since commit 2ada0ed, "Return From Interrupt" is broken for PPC processors
because some interrupt specifics bits of SRR1 are copied to MSR.

SRR1 is a save of MSR during interrupt.
During RFI, MSR must be restored from SRR1.
But some bits of SRR1 are interrupt-specific and are not used for MSR saving.

This is the specification (ISA 2.06) at chapter 6.4.3 (Interrupt Processing):
"2. Bits 33:36 and 42:47 of SRR1 or HSRR1 are loaded with information specific
    to the interrupt type.
 3. Bits 0:32, 37:41, and 48:63 of SRR1 or HSRR1 are loaded with a copy of the
    corresponding bits of the MSR."

Below is a representation of MSR bits which are not saved:
0:15 16:31 32  33:36    37:41      42:47     48:63
——— | ——— | — X X X X — — — — — X X X X X X | ————
0000 0000 |    7   |   8   |   3   |   F    | 0000

History:
In the initial Qemu implementation (e1833e1), the mask 0x783F0000 was used for
saving MSR in SRR1. But all the bits 32:47 were cleared during RFI restoring.
This was wrong. The commit 2ada0ed explains that this breaks Altivec.
Indeed, bit 38 (for Altivec support) must be saved and restored.
The change of 2ada0ed was to restore all the bits of SRR1 to MSR.
But it's also wrong.

Explanation:
As an example, let's see what's happening after a TLB miss.
According to the e300 manual (E300CORERM table 5-6), the TLB miss interrupts
set the bits 44-47 for KEY, I/D, WAY and S/L. These bits are specifics to the
interrupt and must not be copied into MSR at the end of the interrupt.
With the current implementation, a TLB miss overwrite bits POW, TGPR and ILE.

Fix:
It shouldn't be needed to filter-out bits on MSR saving when interrupt occurs.
Specific bits overwrite MSR ones in SRR1.
But at the end of interrupt (RFI), specifics bits must be cleared before
restoring MSR from SRR1. The mask 0x783F0000 apply here.

Discussion:
The bits of the mask 0x783F0000 are cleared after an interrupt.
I cannot find a specification which talks about this
but I assume it is the truth since Linux can run this way.
Maybe it's not perfect but it's better (works for e300).

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agomc146818rtc: improve debugging
Blue Swirl [Sun, 30 May 2010 19:20:07 +0000 (19:20 +0000)]
mc146818rtc: improve debugging

Add a separate flag for debugging coalesced interrupts.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agosparc32 SuperSPARC MMU Breakpoint Action register (SS-20 OBP fix)
Artyom Tarasenko [Sat, 29 May 2010 20:48:25 +0000 (22:48 +0200)]
sparc32 SuperSPARC MMU Breakpoint Action register (SS-20 OBP fix)

SuperSPARC MMU Breakpoint Action register is used by OBP at boot

The patch allows booting Solaris and some other OS with
SPARCStation-20 OBP.

Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agopc: improve debugging
Blue Swirl [Sat, 29 May 2010 20:23:49 +0000 (20:23 +0000)]
pc: improve debugging

Add a DPRINTF macro and use it for ISA and PIC interrupts.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoapic: improve debugging
Blue Swirl [Sat, 29 May 2010 20:23:48 +0000 (20:23 +0000)]
apic: improve debugging

Add a DPRINTF macro. Use TARGET_FMT_plx for printing target_phys_addr_t
items. Add a separate flag for debugging coalescing interrupts.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoi8259: improve debugging
Blue Swirl [Sat, 29 May 2010 20:23:19 +0000 (20:23 +0000)]
i8259: improve debugging

Add a DPRINTF macro.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agosparc64: fix user emulator build
Blue Swirl [Sat, 29 May 2010 10:20:44 +0000 (10:20 +0000)]
sparc64: fix user emulator build

Accesses with _nucleus prefix are not available when building user
emulators:
  CC    sparc64-linux-user/op_helper.o
cc1: warnings being treated as errors
/src/qemu/target-sparc/op_helper.c: In function 'helper_ldda_asi':
/src/qemu/target-sparc/op_helper.c:3063: error: implicit declaration of function 'ldq_nucleus'

Avoid making such accesses. Fixes breakage by 54a3c0f032abf93d1cedc75456af75401ac10360.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoPad iommu with an empty slot (necessary for SunOS 4.1.4)
Artyom Tarasenko [Sat, 8 May 2010 14:10:14 +0000 (16:10 +0200)]
Pad iommu with an empty slot (necessary for SunOS 4.1.4)

On the real hardware (SS-5, LX) the MMU is not padded, but aliased.
Software shouldn't use aliased addresses, neither should it crash
when it uses (on the real hardware it wouldn't). Using empty_slot
instead of aliasing can help with debugging such accesses.

Signed-off-by: Artyom Tarasenko <atar4qemu@googlemail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agosparc64: fix 128-bit atomic load from nucleus context v1
Igor V. Kovalenko [Fri, 28 May 2010 21:05:46 +0000 (01:05 +0400)]
sparc64: fix 128-bit atomic load from nucleus context v1

- change 128-bit atomic loads to reference nucleus context
v0->v1: dropped disassembler change
Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoPre-allocate guest address space
Paul Brook [Sat, 29 May 2010 01:27:35 +0000 (02:27 +0100)]
Pre-allocate guest address space

Allow pre-allocation of the guest virtual address space in usermode emulation.

Signed-off-by: Paul Brook <paul@codesourcery.com>
14 years agoalpha-linux-user: Fill in SI_CODE for SIGSEGV.
Richard Henderson [Fri, 21 May 2010 17:03:33 +0000 (10:03 -0700)]
alpha-linux-user: Fill in SI_CODE for SIGSEGV.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agolinux-user: Use qemu-malloc.c.
Richard Henderson [Fri, 21 May 2010 17:37:52 +0000 (10:37 -0700)]
linux-user: Use qemu-malloc.c.

Since we're no longer setting PAGE_RESERVED, there's no need to
implement qemu_malloc via mmap.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoUse calloc in qemu_mallocz.
Richard Henderson [Fri, 21 May 2010 17:37:51 +0000 (10:37 -0700)]
Use calloc in qemu_mallocz.

Avoids the memset if the allocator has gotten new zeroed
storage from the operating system.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agolinux-user: Fix compilation with DEBUG defined
Riccardo Magliocchetti [Wed, 19 May 2010 19:49:21 +0000 (21:49 +0200)]
linux-user: Fix compilation with DEBUG defined

Signed-off-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoFix hw/gt64xxx.c compilation with DEBUG defined
Riccardo Magliocchetti [Wed, 19 May 2010 16:49:30 +0000 (18:49 +0200)]
Fix hw/gt64xxx.c compilation with DEBUG defined

Use TARGET_FMT_plx as format placeholder for target_phys_addr_t

Signed-off-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoFix typo in balloon help
Riccardo Magliocchetti [Wed, 19 May 2010 16:49:28 +0000 (18:49 +0200)]
Fix typo in balloon help

Fix launchpad #563883

Signed-off-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agomusicpal: Drop redundant reset call
Jan Kiszka [Thu, 13 May 2010 13:09:58 +0000 (15:09 +0200)]
musicpal: Drop redundant reset call

Reset is now triggered after init, no need for explicit calls anymore.

Signed-off-by: Jan Kiszka <jan.kiszka@web.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agodoc: Update monitor info subcommands
Stefan Hajnoczi [Wed, 12 May 2010 14:10:56 +0000 (15:10 +0100)]
doc: Update monitor info subcommands

The "info blockstats" documentation was copy-pasted as "info block"
instead of "info blockstats".  The documentation for "commands", "jit",
"numa", "qdm", and "roms" is missing.  This patch resolves these issues
in qemu-monitor.hx.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoFix overflow in i440fx_init()
Avi Kivity [Sun, 9 May 2010 11:51:13 +0000 (14:51 +0300)]
Fix overflow in i440fx_init()

The ram_size parameter can be larger than an int, so it may be truncated.

Fix by using the correct type.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoarm: prevent coprocessor IO reset
Lars Munch [Sat, 8 May 2010 20:42:43 +0000 (22:42 +0200)]
arm: prevent coprocessor IO reset

This prevent coprocessor IO structure from being reset on cpu reset. This was
a problem for PXA which uses coprocessor 6 and 14.

Signed-off-by: Lars Munch <lars@segv.dk>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: Use INDEX_op_qemu_ld32 for 32-bit results.
Richard Henderson [Mon, 3 May 2010 23:30:48 +0000 (16:30 -0700)]
tcg: Use INDEX_op_qemu_ld32 for 32-bit results.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agovhost_net.c: v2 Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2
Jes Sorensen [Thu, 27 May 2010 12:26:05 +0000 (14:26 +0200)]
vhost_net.c: v2 Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2

Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2

The format statement expects unsigned long on x86_64, but receives
unsigned long long, so gcc exits with an error.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoMake cache=unsafe the default for -snapshot
Alexander Graf [Wed, 26 May 2010 19:04:32 +0000 (21:04 +0200)]
Make cache=unsafe the default for -snapshot

When using -snapshot we don't care about data integrity of the cow file
at all, so let's disable flushing there and squeeze out the last drop
of performance we could possibly get.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agosparc64: clean up pci bridge map
Igor V. Kovalenko [Tue, 25 May 2010 12:09:03 +0000 (16:09 +0400)]
sparc64: clean up pci bridge map

- remove unused host state and store pci bus pointer only
- do not map host state access into unused 1fe.10000000 range
- reorder pci region registration
- assign pci i/o region to isa_mem_base

Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agosparc64: rename sun4u cpu to Ultrasparc IIi
Igor V. Kovalenko [Tue, 25 May 2010 12:08:57 +0000 (16:08 +0400)]
sparc64: rename sun4u cpu to Ultrasparc IIi

Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoAdd cache=unsafe parameter to -drive
Alexander Graf [Wed, 26 May 2010 15:51:49 +0000 (17:51 +0200)]
Add cache=unsafe parameter to -drive

Usually the guest can tell the host to flush data to disk. In some cases we
don't want to flush though, but try to keep everything in cache.

So let's add a new cache value to -drive that allows us to set the cache
policy to most aggressive, disabling flushes. We call this mode "unsafe",
as guest data is not guaranteed to survive host crashes anymore.

This patch also adds a noop function for aio, so we can do nothing in AIO
fashion.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agovnc: rich cursor support.
Gerd Hoffmann [Fri, 21 May 2010 09:54:34 +0000 (11:54 +0200)]
vnc: rich cursor support.

Uses VNC_ENCODING_RICH_CURSOR.  Adding XCURSOR support should be
possible without much trouble.  Shouldn't be needed though as
RICH_CURSOR is a superset of XCURSOR.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agouse new cursor struct + functions for vmware vga and sdl.
Gerd Hoffmann [Fri, 21 May 2010 09:54:33 +0000 (11:54 +0200)]
use new cursor struct + functions for vmware vga and sdl.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agocursor: add cursor functions.
Gerd Hoffmann [Fri, 21 May 2010 09:54:32 +0000 (11:54 +0200)]
cursor: add cursor functions.

Add a new cursor type to console.h and a bunch of functions to
deal with cursors the (new) cursor.c file.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoFix error handling in qemu_read_config_file
Kevin Wolf [Mon, 17 May 2010 08:36:47 +0000 (10:36 +0200)]
Fix error handling in qemu_read_config_file

We need to close the file even in error case. While at it, make the callers
catch all kind of errors. ENOENT is allowed for default config files, they
are optional.

Reported-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoVirtio-net: Replace the hardcode 6 with defined ETN_ALEN
Amos Kong [Sun, 23 May 2010 02:49:10 +0000 (10:49 +0800)]
Virtio-net: Replace the hardcode 6 with defined ETN_ALEN

hw/virtio-net.h:
    #define ETH_ALEN    6
ETH_ALEN was defined by commit 7967406801aa897fae83caad3278ac85a342adaa

Signed-off-by: Amos Kong <akong@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agosdl: Do not disable screensaver by default
Jan Kiszka [Sun, 23 May 2010 08:29:34 +0000 (10:29 +0200)]
sdl: Do not disable screensaver by default

Unless we are running in full-screen mode, QEMU's SDL window should not
disable the host's screensaver. The user can still change this behaviour
by setting the environment variable SDL_VIDEO_ALLOW_SCREENSAVER as
desired.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMerge remote branch 'kwolf/for-anthony' into staging
Anthony Liguori [Mon, 24 May 2010 15:53:41 +0000 (10:53 -0500)]
Merge remote branch 'kwolf/for-anthony' into staging

14 years agoMerge remote branch 'qmp/for-anthony' into staging
Anthony Liguori [Mon, 24 May 2010 14:00:24 +0000 (09:00 -0500)]
Merge remote branch 'qmp/for-anthony' into staging

14 years agomicroblaze: Handle new elf mach nr for sysemu.
Edgar E. Iglesias [Mon, 24 May 2010 09:14:04 +0000 (11:14 +0200)]
microblaze: Handle new elf mach nr for sysemu.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agolsi: Fix value overflow in request tag processing
Jan Kiszka [Fri, 21 May 2010 16:44:59 +0000 (18:44 +0200)]
lsi: Fix value overflow in request tag processing

This fixes a mismerge of 64d564094cac5f72eeaeb950c442b773a00d3586 (wrong
patch version): We need to mask the tag value properly to obtain its
device ID.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agosparc64: flush translations on mmu context change
Igor V. Kovalenko [Sat, 22 May 2010 10:52:40 +0000 (14:52 +0400)]
sparc64: flush translations on mmu context change

- two pairs of softmmu indexes bind softmmu tlb to cpu tlb in fault handlers
  using value of DMMU primary and secondary context registers, so we need to
  flush softmmu translations when context registers are changed

Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agosparc64: fix mmu context at trap levels above zero
Igor V. Kovalenko [Sat, 22 May 2010 10:52:35 +0000 (14:52 +0400)]
sparc64: fix mmu context at trap levels above zero

- cpu_mmu_index return MMU_NUCLEUS_IDX if trap level is not zero
- cpu_get_tb_cpu_state: store trap level and primary context in flags
  this allows to restart code translation when address translation is changed
- stop translation block after writing to pstate and tl registers
- stop translation block after writing to alternate space
  this can be optimized to stop only if address translation can be changed
  by write operation (e.g. by comparing with MMU ASI values)

Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agosparc64: fix dump_mmu to look for global bit in tte value instead of tag
Igor V. Kovalenko [Sat, 22 May 2010 10:52:29 +0000 (14:52 +0400)]
sparc64: fix dump_mmu to look for global bit in tte value instead of tag

Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agosparc64: fix pstate privilege bits
Igor V. Kovalenko [Sat, 22 May 2010 10:52:24 +0000 (14:52 +0400)]
sparc64: fix pstate privilege bits

- refactor code to handle hpstate only if available for current cpu
- conditionally set hypervisor bit in hpstate register
- reorder softmmu indices so user accessable ones go first, translation context
  macros supervisor() and hypervisor() adjusted as well
- disable sparcv8 registers for TARGET_SPARC64
- fix cpu_mmu_index to use sparcv9 bits only

Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agosparc64: generate data access exception on RW violation
Igor V. Kovalenko [Sat, 22 May 2010 10:52:19 +0000 (14:52 +0400)]
sparc64: generate data access exception on RW violation

- separate PRIV and PROT handling
- DPRINTF_MMU macro to clean up debug code
- dump mmu_idx, trap level and mmu context registers
  along with address translation values

Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agosparc32 protect read-only bits in DMA CSR registers
Artyom Tarasenko [Sat, 22 May 2010 08:38:56 +0000 (10:38 +0200)]
sparc32 protect read-only bits in DMA CSR registers

On a real hardware changing read-only bits has no effect
Use a mask common for SCSI and Ethernet registers. The crucial
bit is DMA_INTR, because setting or clearing it may produce
spurious interrupts.

This patch allows booting Solaris 2.3

Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agovmstate: fix breakage by 7e72abc382b700a72549e8147bdea413534eeedc
TeLeMan [Wed, 12 May 2010 02:28:51 +0000 (10:28 +0800)]
vmstate: fix breakage by 7e72abc382b700a72549e8147bdea413534eeedc

cirrus_post_load() will be executed twice when loading vm states and then the
wrong physical memory will be registered. This issue may lead to crash qemu.

Signed-off-by: TeLeMan <geleman@gmail.com>
Acked-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix -device help and documentation
Markus Armbruster [Tue, 11 May 2010 12:02:31 +0000 (14:02 +0200)]
Fix -device help and documentation

Commit 6616b2ad reverted commit 40ea285c.  Looks like a mismerge to
me.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix tarbin Makefile rule
Stuart Brady [Wed, 12 May 2010 19:42:04 +0000 (20:42 +0100)]
Fix tarbin Makefile rule

The 'tarbin' Makefile rule doesn't include qemu-system-sparc64, but
should do, now that sparc64-softmmu is in the default target list.

The rule attempts to tar up binaries that were not built if a target
list was passed to the configure script -- in which case, it will
either fail, or otherwise include binaries from previous builds.

Fix both problems once and for all by building a list of binaries to
include in the tarball, using the list of targets to be built.

Signed-off-by: Stuart Brady <sdb@zubnet.me.uk>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agohxtool: Add syntax error detection
Jan Kiszka [Thu, 20 May 2010 07:16:33 +0000 (09:16 +0200)]
hxtool: Add syntax error detection

Add basic imbalance detection for STEXT/ETEXI.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix TEXI section mark imbalance in qemu-img-cmd.hx
Jan Kiszka [Thu, 20 May 2010 07:16:30 +0000 (09:16 +0200)]
Fix TEXI section mark imbalance in qemu-img-cmd.hx

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoPut dependency files in proper subdir
Jan Kiszka [Sat, 15 May 2010 11:03:28 +0000 (13:03 +0200)]
Put dependency files in proper subdir

This seems to resolve subtle breakages of our build system:

Dependency files generated for targets like 'dir/foo.o' were saved as
'foo.d'. Now, if there was also a target 'foo.o', one of the dependency
file was overwritten. Concrete example: libhw*/macio.o vs.
libhw*/ide/macio.o. And this often left a segfaulting build result
behind when changing the "wrong" data structures".

Fix it by generating proper 'dir/foo.d'.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoClean libhw subdirs as well
Jan Kiszka [Sat, 15 May 2010 11:03:30 +0000 (13:03 +0200)]
Clean libhw subdirs as well

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix %lld or %llx printf format use
Blue Swirl [Sat, 22 May 2010 08:02:12 +0000 (08:02 +0000)]
Fix %lld or %llx printf format use

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile dma only once
Blue Swirl [Sat, 22 May 2010 08:00:52 +0000 (08:00 +0000)]
Compile dma only once

Use a qemu_irq to request CPU exit.

7 compilations less for the full build.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agopckbd: improve debugging
Blue Swirl [Sat, 22 May 2010 07:59:06 +0000 (07:59 +0000)]
pckbd: improve debugging

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile pckbd only once
Blue Swirl [Sat, 22 May 2010 07:59:01 +0000 (07:59 +0000)]
Compile pckbd only once

Use a qemu_irq to indicate A20 line changes. Move I/O port 92
to pckbd.c.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agolinux-user: do not warn for missing pselect6
Riku Voipio [Fri, 7 May 2010 12:28:05 +0000 (12:28 +0000)]
linux-user: do not warn for missing pselect6

Libc will fallback gracefully if pselect6 is not available. Thus put
pselect6 to nowarn until the atomicity issues of the original pselect6
patch are dealt with.

Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Cc: Michael Casadevall <mcasadevall@ubuntu.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-ia64: Load GUEST_BASE into a register.
Richard Henderson [Thu, 6 May 2010 15:50:44 +0000 (08:50 -0700)]
tcg-ia64: Load GUEST_BASE into a register.

Saves one bundle per memory operation.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-ia64: Fix some register usage issues.
Richard Henderson [Thu, 6 May 2010 15:50:43 +0000 (08:50 -0700)]
tcg-ia64: Fix some register usage issues.

(1) The output registers were not marked call-clobbered, even though
    they can be modified by called functions.
(2) The thread pointer was not marked reserved.
(3) R4-R6 are call-saved, but not saved by the prologue.  Rather than
    save them, mark them reserved so that we don't use them.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-hppa: Load GUEST_BASE as an immediate.
Richard Henderson [Thu, 6 May 2010 15:50:42 +0000 (08:50 -0700)]
tcg-hppa: Load GUEST_BASE as an immediate.

Now that the prologue is generated after GUEST_BASE is fixed,
we can load it as an immediate, and also avoid reserving the
register if it isn't necessary.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: Initialize the prologue after GUEST_BASE is fixed.
Richard Henderson [Thu, 6 May 2010 15:50:41 +0000 (08:50 -0700)]
tcg: Initialize the prologue after GUEST_BASE is fixed.

This will allow backends to make intelligent choices about how
to implement GUEST_BASE.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoalpha-linux-user: Fix sigprocmask.
Richard Henderson [Mon, 3 May 2010 17:07:55 +0000 (10:07 -0700)]
alpha-linux-user: Fix sigprocmask.

Alpha passes oldset by value in a register, and returns the newset
as the return value; as compared to the standard implementation in
which both are passed by reference.  This requires being able to
distinguish negative return values that are not errors.  Do this in
the same way as the Alpha Linux kernel, by storing a zero in V0 in
the implementation of the syscall.

At the same time, fix a think-o in the regular sigprocmask path in
which we passed the target, rather than the host, HOW value.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoalpha-linux-user: Fix sigsuspend parameters.
Richard Henderson [Mon, 3 May 2010 17:07:54 +0000 (10:07 -0700)]
alpha-linux-user: Fix sigsuspend parameters.

Alpha passes the signal set in a register, not by reference.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoalpha-linux-user: Fix getxpid.
Richard Henderson [Mon, 3 May 2010 17:07:53 +0000 (10:07 -0700)]
alpha-linux-user: Fix getxpid.

Put ppid in the second return register.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoalpha-linux-user: Fix pipe return mechanism.
Richard Henderson [Mon, 3 May 2010 17:07:52 +0000 (10:07 -0700)]
alpha-linux-user: Fix pipe return mechanism.

At the same time, tidy the code wrt MIPS and SH4 which have the
same two register return mechanism.  Fix confusion between pipe
and pipe2 with an explicit flags=0, when the guest will not be
using the two register return mechanism.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoalpha-linux-user: Add correct sigaction constants.
Richard Henderson [Mon, 3 May 2010 17:07:51 +0000 (10:07 -0700)]
alpha-linux-user: Add correct sigaction constants.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoalpha-linux-user: Fix siginfo.si_addr for SIGSEGV and SIGBUS.
Richard Henderson [Mon, 3 May 2010 17:07:50 +0000 (10:07 -0700)]
alpha-linux-user: Fix siginfo.si_addr for SIGSEGV and SIGBUS.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoalpha-linux-user: Fix brk error return.
Richard Henderson [Mon, 3 May 2010 17:07:49 +0000 (10:07 -0700)]
alpha-linux-user: Fix brk error return.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Nuke trailing whitespace.
Richard Henderson [Fri, 21 May 2010 15:30:35 +0000 (08:30 -0700)]
tcg-i386: Nuke trailing whitespace.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Use lea for three-operand add.
Richard Henderson [Fri, 21 May 2010 15:30:34 +0000 (08:30 -0700)]
tcg-i386: Use lea for three-operand add.

The result is shorter than the mov+add that TCG would
otherwise generate for us.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy lea.
Richard Henderson [Fri, 21 May 2010 15:30:33 +0000 (08:30 -0700)]
tcg-i386: Tidy lea.

Implement full modrm+sib addressing mode processing.
Use that in qemu_ld/st to output the LEA.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy xchg.
Richard Henderson [Fri, 21 May 2010 15:30:32 +0000 (08:30 -0700)]
tcg-i386: Tidy xchg.

Define and use OPC_XCHG_ax_r32.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy multiply.
Richard Henderson [Fri, 21 May 2010 15:30:31 +0000 (08:30 -0700)]
tcg-i386: Tidy multiply.

Define and use OPC_IMUL_GvEv{,Ib,Iz}.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy unary arithmetic.
Richard Henderson [Fri, 21 May 2010 15:30:30 +0000 (08:30 -0700)]
tcg-i386: Tidy unary arithmetic.

Define OPC_GRP3 and EXT3_FOO to match.  Use them instead of
bare constants.

Define OPC_GRP5 and rename the existing EXT_BAR to EXT5_BAR to
make it clear which extension should be used with which opcode.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy setcc.
Richard Henderson [Fri, 21 May 2010 15:30:29 +0000 (08:30 -0700)]
tcg-i386: Tidy setcc.

Define and use OPC_SETCC.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy ret.
Richard Henderson [Fri, 21 May 2010 15:30:28 +0000 (08:30 -0700)]
tcg-i386: Tidy ret.

Define and use OPC_RET.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy calls.
Richard Henderson [Fri, 21 May 2010 15:30:27 +0000 (08:30 -0700)]
tcg-i386: Tidy calls.

Define OPC_CALL_Jz, generated by tcg_out_calli; use the later
throughout.  Unify the calls within qemu_st; adjust the stack
with a single pop if applicable.

Define and use EXT_CALLN_Ev for indirect calls.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy push/pop.
Richard Henderson [Fri, 21 May 2010 15:30:26 +0000 (08:30 -0700)]
tcg-i386: Tidy push/pop.

Move tcg_out_push/pop up in the file so that they can be used
by qemu_ld/st.  Define a tcg_out_pushi to be used as well.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy movi.
Richard Henderson [Fri, 21 May 2010 15:30:25 +0000 (08:30 -0700)]
tcg-i386: Tidy movi.

Define and use OPC_MOVL_Iv.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy non-immediate arithmetic operations.
Richard Henderson [Fri, 21 May 2010 15:30:24 +0000 (08:30 -0700)]
tcg-i386: Tidy non-immediate arithmetic operations.

Add more OPC values, and tgen_arithr.  Use the later throughout.

Note that normal reg/reg arithmetic now uses the Gv,Ev opcode form
instead of the Ev,Gv opcode form used previously.  Both forms
disassemble properly, and so there's no visible change when diffing
log files before and after the change.  This change makes the operand
ordering within the output routines more natural, and avoids the need
to define an OPC_ARITH_EvGv since a read-modify-write with memory is
not needed within TCG.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy immediate arithmetic operations.
Richard Henderson [Fri, 21 May 2010 15:30:23 +0000 (08:30 -0700)]
tcg-i386: Tidy immediate arithmetic operations.

Define OPC_ARITH_EvI[bz]; use throughout.  Use tcg_out_ext8u
directly in setcond.  Use tgen_arithi in qemu_ld/st.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy ext8s and ext16s operations.
Richard Henderson [Fri, 21 May 2010 15:30:22 +0000 (08:30 -0700)]
tcg-i386: Tidy ext8s and ext16s operations.

Define OPC_MOVSBL and OPC_MOVSWL.  Factor opcode emission to
separate functions.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy ext8u and ext16u operations.
Richard Henderson [Fri, 21 May 2010 15:30:21 +0000 (08:30 -0700)]
tcg-i386: Tidy ext8u and ext16u operations.

Define OPC_MOVZBL and OPC_MOVZWL.  Factor opcode emission to
separate functions.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoaxisdev88: Fix passing of kernel cmdline.
Edgar E. Iglesias [Fri, 21 May 2010 14:09:10 +0000 (16:09 +0200)]
axisdev88: Fix passing of kernel cmdline.

Signed-off-by: Edgar E. Iglesias <edgar@axis.com>
14 years agoReplace \0s with spaces before sending strings to curses.
Bernhard Kauer [Fri, 21 May 2010 12:05:55 +0000 (14:05 +0200)]
Replace \0s with spaces before sending strings to curses.

Signed-off-by: Bernhard Kauer <kauer@tudos.org>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
14 years agoarm_timer: fix oneshot mode
Rabin Vincent [Sun, 2 May 2010 09:50:52 +0000 (15:20 +0530)]
arm_timer: fix oneshot mode

In oneshot mode, the delta needs to come from the TimerLoad register,
not the maximum limit.

Signed-off-by: Rabin Vincent <rabin@rab.in>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoarm_timer: reload timer when enabled
Rabin Vincent [Sun, 2 May 2010 09:50:51 +0000 (15:20 +0530)]
arm_timer: reload timer when enabled

Reload the timer when TimerControl is written, if the timer is to be
enabled.  Otherwise, if an earlier write to TimerLoad was done while
periodic mode was not set, s->delta may incorrectly still have the value
of the maximum limit instead of the value written to TimerLoad.

This problem is evident on versatileap on current linux-next, which
enables TIMER_CTRL_32BIT before writing to TimerLoad and then enabling
periodic mode and starting the timer.  This causes the first periodic
tick to be scheduled to occur after 0xffffffff periods, leading to a
perceived hang while the kernel waits for the first timer tick.

Signed-off-by: Rabin Vincent <rabin@rab.in>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agopflash_cfi01: add device ID read command
Michael Walle [Sat, 1 May 2010 17:34:06 +0000 (19:34 +0200)]
pflash_cfi01: add device ID read command

Add support to read manufacturer and device ID. For everything else (eg.
lock bits) 0 is returned.

Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agovvfat: More build fixes with DEBUG
Kevin Wolf [Thu, 20 May 2010 08:34:50 +0000 (10:34 +0200)]
vvfat: More build fixes with DEBUG

Casting a pointer to an int doesn't work on 64 bit platforms. Use the %p printf
conversion specifier instead.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agovvfat: Fix compilation with DEBUG defined
Riccardo Magliocchetti [Wed, 19 May 2010 20:53:44 +0000 (22:53 +0200)]
vvfat: Fix compilation with DEBUG defined

gcc does not like passing a NULL where an int value is expected:

block/vvfat.c: In function ‘checkpoint’:
block/vvfat.c:2868: error: passing argument 2 of ‘remove_mapping’ makes
  integer from pointer without a cast

Signed-off-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoblock: Add SG_IO device check in refresh_total_sectors()
Nicholas Bellinger [Mon, 17 May 2010 16:46:04 +0000 (09:46 -0700)]
block: Add SG_IO device check in refresh_total_sectors()

This patch adds a special case check for scsi-generic devices in
refresh_total_sectors() to skip the subsequent BlockDriver->bdrv_getlength()
that will be returning -ESPIPE from block/raw-posic.c:raw_getlength() for
BlockDriverState->sg=1 devices.

Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoblock: Make find_image_format() return 'raw' BlockDriver for SG_IO devices
Nicholas Bellinger [Mon, 17 May 2010 16:45:57 +0000 (09:45 -0700)]
block: Make find_image_format() return 'raw' BlockDriver for SG_IO devices

This patch adds a special BlockDriverState->sg check in block.c:find_image_format()
after bdrv_file_open() -> block/raw-posix.c:hdev_open() has been called to determine
if we are dealing with a Linux host scsi-generic device.

The patch then returns the BlockDriver * from bdrv_find_format("raw"), skipping the
subsequent bdrv_read() and rest of find_image_format().

Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoblock: fix sector comparism in multiwrite_req_compare
Christoph Hellwig [Wed, 19 May 2010 18:53:10 +0000 (20:53 +0200)]
block: fix sector comparism in multiwrite_req_compare

The difference between the start sectors of two requests can be larger
than the size of the "int" type, which can lead to a not correctly
sorted multiwrite array and thus spurious I/O errors and filesystem
corruption due to incorrect request merges.

So instead of doing the cute sector arithmetics trick spell out the
exact comparisms.

Spotted by Kevin Wolf based on a testcase from Michael Tokarev.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agovirtio-blk: fix barrier support
Christoph Hellwig [Wed, 19 May 2010 10:40:09 +0000 (12:40 +0200)]
virtio-blk: fix barrier support

Before issuing the barrier to the block driver we need to flush our oustanding
queue of write requests, as the flush is supposed to be issued after them.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agovirtio-blk: Avoid zeroing every request structure
Stefan Hajnoczi [Fri, 14 May 2010 21:52:30 +0000 (22:52 +0100)]
virtio-blk: Avoid zeroing every request structure

The VirtIOBlockRequest structure is about 40 KB in size.  This patch
avoids zeroing every request by only initializing fields that are read.
The other fields are either written to or may not be used at all.

Oprofile shows about 10% of CPU samples in memset called by
virtio_blk_alloc_request().  The workload is
dd if=/dev/vda of=/dev/null iflag=direct bs=8k running concurrently 4
times.  This patch makes memset disappear to the bottom of the profile.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoblock: fix aio_flush segfaults for read-only protocols (e.g. curl)
Avi Kivity [Sun, 16 May 2010 11:59:57 +0000 (14:59 +0300)]
block: fix aio_flush segfaults for read-only protocols (e.g. curl)

Not all block format drivers expose an io_flush method (reasonable for
read-only protocols), so calling io_flush there will immediately segfault.

Fix by checking for the method's existence before calling it.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agopc: fix segfault introduced by 3d53f5c36ff6
Eduard - Gabriel Munteanu [Thu, 20 May 2010 06:14:04 +0000 (09:14 +0300)]
pc: fix segfault introduced by 3d53f5c36ff6

Commit 3d53f5c36ff6 introduced a segfault by erroneously making fw_cfg a
'void **' and passing it around in different ways.

Signed-off-by: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotarget-sparc: Inline some generation of carry for ADDX/SUBX.
Richard Henderson [Wed, 12 May 2010 18:04:27 +0000 (11:04 -0700)]
target-sparc: Inline some generation of carry for ADDX/SUBX.

Computing carry is trivial for some inputs.  By avoiding an
external function call, we generate near-optimal code for
the common cases of add+addx (double-word arithmetic) and
cmp+addx (a setcc pattern).

Signed-off-by: Richard Henderson <rth@twiddle.net>
Acked-by: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotcg-i386: Tidy jumps.
Richard Henderson [Wed, 14 Apr 2010 15:26:50 +0000 (08:26 -0700)]
tcg-i386: Tidy jumps.

Define OPC_JCC*, OC_JMP*, and EXT_JMPN_Ev.  Use them throughout.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Eliminate extra move from qemu_ld64.
Richard Henderson [Wed, 14 Apr 2010 15:06:00 +0000 (08:06 -0700)]
tcg-i386: Eliminate extra move from qemu_ld64.

If the address register overlaps one of the output registers
simply issue the clobbering load last, rather than emitting
an extra move of the address register.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy move operations.
Richard Henderson [Wed, 14 Apr 2010 14:58:59 +0000 (07:58 -0700)]
tcg-i386: Tidy move operations.

Define OPC_MOVB* and OPC_MOVL*; use them throughout.
Use tcg_out_ld/st instead of bare tcg_out_modrm_offset
when it makes sense.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Tidy shift operations.
Richard Henderson [Wed, 28 Apr 2010 17:38:04 +0000 (10:38 -0700)]
tcg-i386: Tidy shift operations.

Define OPC_SHIFT_{1,Ib,cl}.  Factor opcode emission to a function.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>