aboutsummaryrefslogtreecommitdiff
path: root/target/hppa/gdbstub.c
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2017-10-09 12:35:48 -0700
committerRichard Henderson <richard.henderson@linaro.org>2018-01-30 10:08:18 -0800
commiteaa3783b687491bb2430951d1be1d849b6be6719 (patch)
tree5b6aa1a3a3dd5b73e02e24d178d9433e5b817031 /target/hppa/gdbstub.c
parent2986721df7d5d6528d17ddc1d25d261e720fd06d (diff)
downloadqemu-eaa3783b687491bb2430951d1be1d849b6be6719.zip
qemu-eaa3783b687491bb2430951d1be1d849b6be6719.tar.gz
qemu-eaa3783b687491bb2430951d1be1d849b6be6719.tar.bz2
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>
Diffstat (limited to 'target/hppa/gdbstub.c')
-rw-r--r--target/hppa/gdbstub.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/target/hppa/gdbstub.c b/target/hppa/gdbstub.c
index c37a56f..228d282 100644
--- a/target/hppa/gdbstub.c
+++ b/target/hppa/gdbstub.c
@@ -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);
}