diff options
author | j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-04-06 08:56:50 +0000 |
---|---|---|
committer | j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-04-06 08:56:50 +0000 |
commit | 84409ddbda9b4d8f2d2ad4f580e987800b8e7c4e (patch) | |
tree | 72e2fd0d27817fb60a24b88a1d7b3b25dd5a111d /linux-user/signal.c | |
parent | 9ead1a126356a05b61eb4388ef0729f08454a78c (diff) |
Code provision for x86_64 and PowerPC 64 linux user mode support.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2619 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'linux-user/signal.c')
-rw-r--r-- | linux-user/signal.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/linux-user/signal.c b/linux-user/signal.c index 1e29c2c502..5a99e610dc 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -690,7 +690,11 @@ static void setup_frame(int sig, struct emulated_sigaction *ka, err |= __put_user(frame->retcode, &frame->pretcode); /* This is popl %eax ; movl $,%eax ; int $0x80 */ err |= __put_user(0xb858, (short *)(frame->retcode+0)); +#if defined(TARGET_X86_64) +#warning "Fix this !" +#else err |= __put_user(TARGET_NR_sigreturn, (int *)(frame->retcode+2)); +#endif err |= __put_user(0x80cd, (short *)(frame->retcode+6)); } @@ -2048,7 +2052,7 @@ void process_pending_signals(void *cpu_env) host_to_target_sigset_internal(&target_old_set, &old_set); /* if the CPU is in VM86 mode, we restore the 32 bit values */ -#ifdef TARGET_I386 +#if defined(TARGET_I386) && !defined(TARGET_X86_64) { CPUX86State *env = cpu_env; if (env->eflags & VM_MASK) |