[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] powerpc hang
From: |
Jon Nall |
Subject: |
Re: [Qemu-devel] powerpc hang |
Date: |
Fri, 8 Aug 2003 08:13:35 -0500 |
User-agent: |
Mutt/1.5.4i |
On Thu, Aug 07, 2003 at 05:05:45PM -0500, Jon Nall wrote:
> test-i386 -> runs with the 3 exceptions: the func_lret32 and func_iret32
> tests both die with a SIGSEGV. Also i get "Unsupported syscall:
> 252" when the program exits. i'm looking into both of
> these.
>
i've found a little more information:
- Unsupported syscall: 252. grepping through kernel headers, it seems
that i386, cris, and ppc64 are the only architectures that define a
syscall for syscall 252 (__NR_exit_group) in linux 2.4. the 2.5 kernel
seems to have most (all?) architectures supporting this syscall,
although the actual number varies with architecture and syscall_defs.h
should probably be updated with that information.
- the SIGSEGV. this occurs because there are lots of uses of
env->regs[R_ESP] in helper-i386.c. however, on ppc, ESP is
$r17. adding:
env->regs[R_ESP] = ESP;
to the top of helper_ret_protected() allowed func_lret32 and
func_iret32 to succeed. however, the env->regs[R_ESP] usage is
strewn all over the code.
Question: is it safe to replace all of these with ESP since ESP should
default to env->regs[R_ESP] if there is no AREG defined for the
architecture? (or more generally, is it safe to replace env->regs[XXX]
with XXX?)
thanks!
nall.