This is a linux-user only port, emulating a 32-bit only version of a pa-2.0 cpu. This is good enough to do well with both the gcc and glibc testsuites. Helge Deller has provided invaluable assistance testing with a more complete debian chroot.
What's missing: * Space registers. Since Linux sets them all equal (for a flat address space) and uses them like address-space identifiers, we can simply set them all to 0 and ignore them. * Architecture subsets. There's no markup for running a pure pa1.0 or pa1.1 cpu. I happily accept everything up to pa2.0 at the moment. * Wide mode. While I have pa2.0 instructions, I don't support running in 64-bit mode. Since neither the linux kernel nor glibc support a 64-bit userland, it would be a lot more work than just adding the insns. * Multimedia instructions. These are tied to wide mode, so... When squashing the patches down from my development tree, I wanted to preserve Helge's contributions, so the linux-user part is more patches than I would normally have preserved. r~ Helge Deller (3): linux-user: Handle TIOCSTART and TIOCSTOP linux-user: Add SIOCGPGRP, SIOCGSTAMP, SIOCGSTAMPNS linux-user: Add some hppa ioctls Richard Henderson (23): Revert "Remove remainders of HPPA backend" linux-user: Support stack-grows-up in elfload.c linux-user: Handle ERFKILL and EHWPOISON linux-user: Handle more IPV6 sockopts linux-user: Add HPPA socket.h definitions linux-user: Add HPPA syscall numbers linux-user: Add HPPA termbits.h linux-user: Add HPPA target_syscall.h linux-user: Add HPPA definitions to syscall_defs.h linux-user: Add HPPA target_structs.h linux-user: Add HPPA target_signal.h and target_cpu.h linux-user: Add HPPA signal handling linux-user: Add HPPA startup and main loop target-hppa: Add softfloat specializations target-hppa: Add framework and enable compilation target-hppa: Add nullification framework target-hppa: Implement basic arithmetic target-hppa: Implement branches target-hppa: Implement linux-user gateway page target-hppa: Implement shifts and deposits target-hppa: Implement loads and stores target-hppa: Implement system and memory-management insns target-hppa: Implement floating-point insns configure | 7 +- default-configs/hppa-linux-user.mak | 1 + disas.c | 2 + disas/Makefile.objs | 1 + disas/hppa.c | 2832 +++++++++++++++++++++++++ fpu/softfloat-specialize.h | 20 +- linux-user/alpha/target_syscall.h | 2 + linux-user/elfload.c | 259 ++- linux-user/errno_defs.h | 3 + linux-user/hppa/sockbits.h | 97 + linux-user/hppa/syscall_nr.h | 353 ++++ linux-user/hppa/target_cpu.h | 35 + linux-user/hppa/target_signal.h | 29 + linux-user/hppa/target_structs.h | 54 + linux-user/hppa/target_syscall.h | 237 +++ linux-user/hppa/termbits.h | 219 ++ linux-user/ioctls.h | 8 + linux-user/main.c | 185 +- linux-user/mips/target_syscall.h | 5 + linux-user/mips64/target_syscall.h | 5 + linux-user/qemu.h | 3 + linux-user/signal.c | 191 +- linux-user/socket.h | 2 + linux-user/syscall.c | 41 +- linux-user/syscall_defs.h | 154 +- linux-user/syscall_types.h | 6 + target-hppa/Makefile.objs | 1 + target-hppa/cpu-qom.h | 52 + target-hppa/cpu.c | 165 ++ target-hppa/cpu.h | 144 ++ target-hppa/gdbstub.c | 111 + target-hppa/helper.c | 137 ++ target-hppa/helper.h | 66 + target-hppa/op_helper.c | 570 +++++ target-hppa/translate.c | 3946 +++++++++++++++++++++++++++++++++++ 35 files changed, 9864 insertions(+), 79 deletions(-) create mode 100644 default-configs/hppa-linux-user.mak create mode 100644 disas/hppa.c create mode 100644 linux-user/hppa/sockbits.h create mode 100644 linux-user/hppa/syscall_nr.h create mode 100644 linux-user/hppa/target_cpu.h create mode 100644 linux-user/hppa/target_signal.h create mode 100644 linux-user/hppa/target_structs.h create mode 100644 linux-user/hppa/target_syscall.h create mode 100644 linux-user/hppa/termbits.h create mode 100644 target-hppa/Makefile.objs create mode 100644 target-hppa/cpu-qom.h create mode 100644 target-hppa/cpu.c create mode 100644 target-hppa/cpu.h create mode 100644 target-hppa/gdbstub.c create mode 100644 target-hppa/helper.c create mode 100644 target-hppa/helper.h create mode 100644 target-hppa/op_helper.c create mode 100644 target-hppa/translate.c -- 2.9.3