qemu/target-ppc
Tom Musta 6ea7b35c02 target-ppc: Bug Fix: rlwimi
The rlwimi specification includes the ROTL32 operation, which is defined
to be a left rotation of two copies of the least significant 32 bits of
the source GPR.

The current implementation is incorrect on 64-bit implementations in that
it rotates a single copy of the least significant 32 bits, padding with
zeroes in the most significant bits.

Fix the code to properly implement this ROTL32 operation.

Also fix the special case of MB=31 and ME=0 to copy the entire contents
of the source GPR.

Examples:

R3 FFFFFFFFFFFFFFF0
rlwimi 3,3,29,14,1
R3 expected : 1FFFFFFE3FFFFFFE
R3 actual   : 000000003FFFFFFE (without this patch)

R3 ED7EB4DD824F0853
rlwimi 3,3,10,31,0
R3 expected : 3C214E09024F0853
R3 actual   : 00000000024F0853 (without this patch)

Signed-off-by: Tom Musta <tommusta@gmail.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
2014-09-08 12:50:50 +02:00
..
arch_dump.c target-ppc: Set the correct endianness in ELF dump header 2014-06-16 13:24:36 +02:00
cpu-models.c target-ppc: Remove POWER7+ and POWER8E families 2014-07-08 12:10:36 +02:00
cpu-models.h target-ppc: Add pvr_match() callback 2014-07-08 12:10:36 +02:00
cpu-qom.h spapr: Add support for new NMI interface 2014-08-25 13:25:16 +02:00
cpu.h target-ppc: enable virtio endian ambivalent support 2014-06-29 19:39:43 +03:00
dfp_helper.c target-ppc: Fix compiler warning 2014-06-24 20:01:24 +04:00
excp_helper.c spapr: Add support for new NMI interface 2014-08-25 13:25:16 +02:00
fpu_helper.c powerpc: use float64 for frsqrte 2014-06-16 13:24:46 +02:00
gdbstub.c target-ppc: Fix gdbstub for ppc64le-linux-user 2014-07-08 12:10:36 +02:00
helper_regs.h PPC: Only enter MSR_POW when no interrupts pending 2014-04-08 11:20:05 +02:00
helper.h target-ppc: Add POWER8's TM SPRs 2014-06-16 13:24:45 +02:00
int_helper.c target-ppc: Refactor AES Instructions 2014-06-16 13:24:33 +02:00
kvm_ppc.c PPC: KVM: Compile fix for qemu_notify_event 2013-09-02 10:06:42 +02:00
kvm_ppc.h spapr: add uuid/host details to device tree 2014-09-08 12:50:47 +02:00
kvm-stub.c kvm/openpic: in-kernel mpic support 2013-07-01 01:11:14 +02:00
kvm.c ppc: Add hw breakpoint watchpoint support 2014-09-08 12:50:49 +02:00
machine.c KVM: target-ppc: Enable TM state migration 2014-06-16 13:24:45 +02:00
Makefile.objs target-ppc: Introduce DFP Helper Utilities 2014-06-16 13:24:29 +02:00
mem_helper.c target-ppc: Allow little-endian user mode. 2014-06-16 13:24:40 +02:00
mfrom_table_gen.c
mfrom_table.c
misc_helper.c target-ppc: Add POWER8's TM SPRs 2014-06-16 13:24:45 +02:00
mmu_helper.c PPC: Fix booke206 TLB with phys addrs > 32bit 2014-07-08 12:10:36 +02:00
mmu-hash32.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
mmu-hash32.h target-ppc: Use PowerPCCPU in PowerPCCPUClass::handle_mmu_fault hook 2014-03-13 19:20:48 +01:00
mmu-hash64.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
mmu-hash64.h target-ppc: Use PowerPCCPU in PowerPCCPUClass::handle_mmu_fault hook 2014-03-13 19:20:48 +01:00
STATUS target-ppc: remove powerpc 970gx 2014-03-05 03:06:23 +01:00
timebase_helper.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
translate_init.c target-ppc: Fix number of threads per core limit 2014-07-15 16:11:58 +02:00
translate.c target-ppc: Bug Fix: rlwimi 2014-09-08 12:50:50 +02:00
user_only_helper.c cpu: Move exception_index field from CPU_COMMON to CPUState 2014-03-13 19:20:46 +01:00