mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
target/hppa: Split address size from register size
For system mode, we will need 64-bit virtual addresses even when we have 32-bit register sizes. Since the rest of QEMU equates TARGET_LONG_BITS with the address size, redefine everything related to register size in terms of a new TARGET_REGISTER_BITS. Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
2986721df7
commit
eaa3783b68
6 changed files with 683 additions and 414 deletions
|
@ -26,7 +26,7 @@ int hppa_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n)
|
|||
{
|
||||
HPPACPU *cpu = HPPA_CPU(cs);
|
||||
CPUHPPAState *env = &cpu->env;
|
||||
target_ulong val;
|
||||
target_ureg val;
|
||||
|
||||
switch (n) {
|
||||
case 0:
|
||||
|
@ -61,14 +61,25 @@ int hppa_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n)
|
|||
}
|
||||
break;
|
||||
}
|
||||
return gdb_get_regl(mem_buf, val);
|
||||
|
||||
if (TARGET_REGISTER_BITS == 64) {
|
||||
return gdb_get_reg64(mem_buf, val);
|
||||
} else {
|
||||
return gdb_get_reg32(mem_buf, val);
|
||||
}
|
||||
}
|
||||
|
||||
int hppa_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
|
||||
{
|
||||
HPPACPU *cpu = HPPA_CPU(cs);
|
||||
CPUHPPAState *env = &cpu->env;
|
||||
target_ulong val = ldtul_p(mem_buf);
|
||||
target_ureg val;
|
||||
|
||||
if (TARGET_REGISTER_BITS == 64) {
|
||||
val = ldq_p(mem_buf);
|
||||
} else {
|
||||
val = ldl_p(mem_buf);
|
||||
}
|
||||
|
||||
switch (n) {
|
||||
case 0:
|
||||
|
@ -108,5 +119,5 @@ int hppa_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
|
|||
}
|
||||
break;
|
||||
}
|
||||
return sizeof(target_ulong);
|
||||
return sizeof(target_ureg);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue