mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 23:03:54 -06:00
HPPA (PA-RISC) host support
(Stuart Brady) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4199 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
339dea2774
commit
f54b3f920f
17 changed files with 4505 additions and 13 deletions
29
cpu-exec.c
29
cpu-exec.c
|
@ -657,6 +657,17 @@ int cpu_exec(CPUState *env1)
|
|||
"o0", "o1", "o2", "o3", "o4", "o5",
|
||||
"l0", "l1", "l2", "l3", "l4", "l5",
|
||||
"l6", "l7");
|
||||
#elif defined(__hppa__)
|
||||
asm volatile ("ble 0(%%sr4,%1)\n"
|
||||
"copy %%r31,%%r18\n"
|
||||
"copy %%r28,%0\n"
|
||||
: "=r" (T0)
|
||||
: "r" (gen_func)
|
||||
: "r1", "r2", "r3", "r4", "r5", "r6", "r7",
|
||||
"r8", "r9", "r10", "r11", "r12", "r13",
|
||||
"r18", "r19", "r20", "r21", "r22", "r23",
|
||||
"r24", "r25", "r26", "r27", "r28", "r29",
|
||||
"r30", "r31");
|
||||
#elif defined(__arm__)
|
||||
asm volatile ("mov pc, %0\n\t"
|
||||
".global exec_loop\n\t"
|
||||
|
@ -1488,6 +1499,24 @@ int cpu_signal_handler(int host_signum, void *pinfo,
|
|||
is_write, &uc->uc_sigmask, puc);
|
||||
}
|
||||
|
||||
#elif defined(__hppa__)
|
||||
|
||||
int cpu_signal_handler(int host_signum, void *pinfo,
|
||||
void *puc)
|
||||
{
|
||||
struct siginfo *info = pinfo;
|
||||
struct ucontext *uc = puc;
|
||||
unsigned long pc;
|
||||
int is_write;
|
||||
|
||||
pc = uc->uc_mcontext.sc_iaoq[0];
|
||||
/* FIXME: compute is_write */
|
||||
is_write = 0;
|
||||
return handle_cpu_signal(pc, (unsigned long)info->si_addr,
|
||||
is_write,
|
||||
&uc->uc_sigmask, puc);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#error host CPU specific signal handler needed
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue