diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2013-05-20 14:39:41 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2013-05-20 19:13:22 +0100 |
commit | 5efb0993b82177b96dd07549a342dfe28b88f260 (patch) | |
tree | 3fa887e5ab8f48a3854590fb6e51c44c224a15e8 | |
parent | ff404779ecdfe7399e495a5c21c85274efe84238 (diff) |
random build hacksaarch64-busted
-rw-r--r-- | default-configs/aarch64-softmmu.mak | 0 | ||||
-rw-r--r-- | linux-user/main.c | 9 | ||||
-rw-r--r-- | linux-user/qemu.h | 4 | ||||
-rw-r--r-- | qapi-schema.json | 3 | ||||
-rw-r--r-- | target-arm/translate.c | 2 |
5 files changed, 16 insertions, 2 deletions
diff --git a/default-configs/aarch64-softmmu.mak b/default-configs/aarch64-softmmu.mak new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/default-configs/aarch64-softmmu.mak diff --git a/linux-user/main.c b/linux-user/main.c index 539d45b7b2..4fbc6fb644 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -713,6 +713,14 @@ void cpu_loop(CPUARMState *env) switch(trapnr) { case EXCP_UDEF: { +#ifdef TARGET_AARCH64 + /* obvious rubbish. aarch64 probably needs its own top loop */ + info.si_signo = SIGILL; + info.si_errno = 0; + info.si_code = TARGET_ILL_ILLOPN; + info._sifields._sigfault._addr = env->regs[15]; + queue_signal(env, info.si_signo, &info); +#else TaskState *ts = env->opaque; uint32_t opcode; int rc; @@ -780,6 +788,7 @@ void cpu_loop(CPUARMState *env) /* increment PC */ env->regs[15] += 4; } +#endif /* not AArch64 */ } break; case EXCP_SWI: diff --git a/linux-user/qemu.h b/linux-user/qemu.h index b10e9572a9..d51d82704b 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h @@ -79,7 +79,7 @@ struct vm86_saved_state { }; #endif -#ifdef TARGET_ARM +#if defined(TARGET_ARM) && defined(TARGET_ABI32) /* FPU emulator */ #include "nwfpe/fpa11.h" #endif @@ -103,8 +103,10 @@ struct emulated_sigtable { typedef struct TaskState { pid_t ts_tid; /* tid (or pid) of this task */ #ifdef TARGET_ARM +# ifdef TARGET_ABI32 /* FPA state */ FPA11 fpa; +# endif int swi_errno; #endif #ifdef TARGET_UNICORE32 diff --git a/qapi-schema.json b/qapi-schema.json index a8d361e262..272948f28c 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -3018,7 +3018,8 @@ # Since: 1.2.0 ## { 'enum': 'TargetType', - 'data': [ 'alpha', + 'data': [ 'aarch64', + 'alpha', 'arm', 'cris', 'i386', diff --git a/target-arm/translate.c b/target-arm/translate.c index bb139e79bd..75abab9ea9 100644 --- a/target-arm/translate.c +++ b/target-arm/translate.c @@ -10086,10 +10086,12 @@ void cpu_dump_state(CPUARMState *env, FILE *f, fprintf_function cpu_fprintf, int i; uint32_t psr; +#if 0 if (is_a64(env)) { cpu_dump_state_a64(env, f, cpu_fprintf, flags); return; } +#endif for(i=0;i<16;i++) { cpu_fprintf(f, "R%02d=%08x", i, env->regs[i]); |