mirror of
https://github.com/mii443/qemu.git
synced 2025-12-16 17:18:49 +00:00
target-ppc: Allow little-endian user mode.
This allows running PPC64 little-endian in user mode if target is configured that way. In PPC64 LE user mode we set MSR.LE during initialization. Signed-off-by: Doug Kwan <dougkwan@google.com> Signed-off-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
committed by
Alexander Graf
parent
d90b94cd78
commit
e22c357b3e
@@ -1484,7 +1484,7 @@ static int do_store_exclusive(CPUPPCState *env)
|
||||
{
|
||||
target_ulong addr;
|
||||
target_ulong page_addr;
|
||||
target_ulong val, val2 __attribute__((unused));
|
||||
target_ulong val, val2 __attribute__((unused)) = 0;
|
||||
int flags;
|
||||
int segv = 0;
|
||||
|
||||
@@ -1527,6 +1527,12 @@ static int do_store_exclusive(CPUPPCState *env)
|
||||
case 8: segv = put_user_u64(val, addr); break;
|
||||
case 16: {
|
||||
if (val2 == env->reserve_val2) {
|
||||
if (msr_le) {
|
||||
val2 = val;
|
||||
val = env->gpr[reg+1];
|
||||
} else {
|
||||
val2 = env->gpr[reg+1];
|
||||
}
|
||||
segv = put_user_u64(val, addr);
|
||||
if (!segv) {
|
||||
segv = put_user_u64(val2, addr + 8);
|
||||
|
||||
Reference in New Issue
Block a user