mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
target-ppc: rename and export maybe_bswap_register()
This helper will be used to support FP, Altivec and VSX registers when the guest is little-endian. Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
3a4b791b4c
commit
376dbce0e3
2 changed files with 6 additions and 5 deletions
|
@ -2355,4 +2355,5 @@ int ppc_get_vcpu_dt_id(PowerPCCPU *cpu);
|
||||||
*/
|
*/
|
||||||
PowerPCCPU *ppc_get_vcpu_by_dt_id(int cpu_dt_id);
|
PowerPCCPU *ppc_get_vcpu_by_dt_id(int cpu_dt_id);
|
||||||
|
|
||||||
|
void ppc_maybe_bswap_register(CPUPPCState *env, uint8_t *mem_buf, int len);
|
||||||
#endif /* !defined (__CPU_PPC_H__) */
|
#endif /* !defined (__CPU_PPC_H__) */
|
||||||
|
|
|
@ -88,7 +88,7 @@ static int ppc_gdb_register_len(int n)
|
||||||
the proper ordering for the binary, and cannot be changed.
|
the proper ordering for the binary, and cannot be changed.
|
||||||
For system mode, TARGET_WORDS_BIGENDIAN is always set, and we must check
|
For system mode, TARGET_WORDS_BIGENDIAN is always set, and we must check
|
||||||
the current mode of the chip to see if we're running in little-endian. */
|
the current mode of the chip to see if we're running in little-endian. */
|
||||||
static void maybe_bswap_register(CPUPPCState *env, uint8_t *mem_buf, int len)
|
void ppc_maybe_bswap_register(CPUPPCState *env, uint8_t *mem_buf, int len)
|
||||||
{
|
{
|
||||||
#ifndef CONFIG_USER_ONLY
|
#ifndef CONFIG_USER_ONLY
|
||||||
if (!msr_le) {
|
if (!msr_le) {
|
||||||
|
@ -158,7 +158,7 @@ int ppc_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
maybe_bswap_register(env, mem_buf, r);
|
ppc_maybe_bswap_register(env, mem_buf, r);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,7 +214,7 @@ int ppc_cpu_gdb_read_register_apple(CPUState *cs, uint8_t *mem_buf, int n)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
maybe_bswap_register(env, mem_buf, r);
|
ppc_maybe_bswap_register(env, mem_buf, r);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,7 +227,7 @@ int ppc_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
|
||||||
if (!r) {
|
if (!r) {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
maybe_bswap_register(env, mem_buf, r);
|
ppc_maybe_bswap_register(env, mem_buf, r);
|
||||||
if (n < 32) {
|
if (n < 32) {
|
||||||
/* gprs */
|
/* gprs */
|
||||||
env->gpr[n] = ldtul_p(mem_buf);
|
env->gpr[n] = ldtul_p(mem_buf);
|
||||||
|
@ -277,7 +277,7 @@ int ppc_cpu_gdb_write_register_apple(CPUState *cs, uint8_t *mem_buf, int n)
|
||||||
if (!r) {
|
if (!r) {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
maybe_bswap_register(env, mem_buf, r);
|
ppc_maybe_bswap_register(env, mem_buf, r);
|
||||||
if (n < 32) {
|
if (n < 32) {
|
||||||
/* gprs */
|
/* gprs */
|
||||||
env->gpr[n] = ldq_p(mem_buf);
|
env->gpr[n] = ldq_p(mem_buf);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue