This patchset is v5 of the "preparation patchset" that started off with Alex, was passed to John Rigby and now to me.
Things I've done to it: * various bits of cleanup for style and other minor things * a little shuffling and splitting of patches * made the 32 bit CPUs work in aarch64-softmmu * given aarch64 its own cpu_loop() in linux-user/main.c * made sure NWFPE doesn't sneak into aarch64-linux-user * let aarch64 have a nearly clean slate for tb_flags Individual patches have a summary of my changes in the commit. I've left the 'global cpu_env variable' patch alone since there wasn't any consensus about what the best approach was; it's a pretty minor (and textually localized) thing anyway so easy to fix in future if it becomes an actual problem. With these patches: * new target aarch64-linux-user, which will run but SIGILL on all instructions * new target aarch64-softmmu, which will run all the 32 bit CPUs and board models; however there is no 64 bit CPU defined so it's a bit pointless except as a demonstration that we haven't broken the 32 bit code. I'm generally happy with the patchset and think it could be committed (except for the last two default-configs patchs which actually enable the new targets), apart from the fact that it's not actually terribly useful yet. There's one patch in here which is obviously going to clash with my "move cpu_set_tls and cpu_clone_regs to linux-user" patch, but it will be easy enough to fix when that goes in. Note that in general the 'signed-off-by:' lines from people other than me should be taken to indicate credit/authorship rather than "I'm happy with this patchset", given that I've changed the patches as they passed through my hands. Alexander Graf (14): target-arm: Extract the disas struct to a header file target-arm: Export cpu_env target-arm: Fix target_ulong/uint32_t confusions target-arm: Prepare translation for AArch64 code target-arm: Add AArch64 translation stub gdbstub: Add AArch64 support linux-user: Don't treat AArch64 cpu names specially linux-user: Add syscall number definitions for AArch64 linux-user: Fix up AArch64 syscall handlers target-arm: Implement cpu_set_tls() and cpu_clone_regs() for AArch64 linux-user: Add AArch64 termbits.h definitions linux-user: Add AArch64 support linux-user: AArch64 requires at least 3.8.0 configure: Add handling code for AArch64 targets Andreas Schwab (1): linux-user: Add signal handling for AArch64 Peter Maydell (6): target-arm: Abstract out load/store from a vaddr in AArch32 target-arm: Pass DisasContext* to gen_set_pc_im() linux-user: Add cpu loop for AArch64 linux-user: Make sure NWFPE code is 32 bit ARM only default-configs: Add config for aarch64-linux-user default-configs: Add config for aarch64-softmmu configure | 9 +- default-configs/aarch64-linux-user.mak | 3 + default-configs/aarch64-softmmu.mak | 82 ++++++ gdb-xml/aarch64-core.xml | 46 ++++ gdb-xml/aarch64-fpu.xml | 86 +++++++ gdbstub.c | 53 ++++ linux-user/aarch64/syscall.h | 8 + linux-user/aarch64/syscall_nr.h | 323 ++++++++++++++++++++++++ linux-user/aarch64/target_signal.h | 29 +++ linux-user/aarch64/termbits.h | 220 +++++++++++++++++ linux-user/cpu-uname.c | 3 +- linux-user/elfload.c | 15 +- linux-user/main.c | 98 ++++++++ linux-user/qemu.h | 4 +- linux-user/signal.c | 254 +++++++++++++++++++ linux-user/syscall.c | 10 +- linux-user/syscall_defs.h | 28 ++- target-arm/Makefile.objs | 1 + target-arm/cpu.c | 8 + target-arm/cpu.h | 152 +++++++++--- target-arm/machine.c | 8 +- target-arm/translate-a64.c | 137 ++++++++++ target-arm/translate.c | 426 ++++++++++++++++++++------------ target-arm/translate.h | 55 +++++ 24 files changed, 1853 insertions(+), 205 deletions(-) create mode 100644 default-configs/aarch64-linux-user.mak create mode 100644 default-configs/aarch64-softmmu.mak create mode 100644 gdb-xml/aarch64-core.xml create mode 100644 gdb-xml/aarch64-fpu.xml create mode 100644 linux-user/aarch64/syscall.h create mode 100644 linux-user/aarch64/syscall_nr.h create mode 100644 linux-user/aarch64/target_signal.h create mode 100644 linux-user/aarch64/termbits.h create mode 100644 target-arm/translate-a64.c create mode 100644 target-arm/translate.h -- 1.7.9.5