From: Fabrice Bellard <fabrice.bellard@free.fr>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Sparc port
Date: Sun, 08 Jun 2003 18:21:58 +0200 [thread overview]
Message-ID: <3EE362A6.6020103@free.fr> (raw)
In-Reply-To: 20030608.041917.21922788.davem@redhat.com
David S. Miller wrote:
> From: Fabrice Bellard <fabrice.bellard@free.fr>
> Date: Sun, 08 Jun 2003 12:52:59 +0200
>
> David S. Miller wrote:
> > It is the only clean way to deal with this sparc issue in the long
> > term.
>
> I still have a problem: if a helper function modifies an x86 register
> which is in a sparc register (say EAX in %l0), then it cannot work
> because save/restore are done at the beginning of the helper.
>
> Then we probably should, as you seem to suggest, generate the helper
> functions just like we generate code to execute x86 instructions.
I made the necessary patches so that test-i386 works as a dynamically
linked program. Unfortunately, I was forced to use -mflat on the file
'helper-i386.c' in order to get correct local variables modifications. I
know this is bad, but I see no other simple solution. If someday a
better code generator is used, the proper solution will be to save the
modified x86 register in the 'env' structure before calling a helper
function from the generated code.
> BTW, another question: how can we know on Sparc if a SIGSEGV or SIGBUS
> was generated because of a read or a write ? The Linux kernel has the
> info but it does not seem to be copied to user space. It may be
> interesting to find a standard way to indicate if it is a read or write
> which caused the fault (using a field in siginfo_t would be nice).
>
> "si_info" is passed into the thread, but unfortunately only when
> an rt signal frame is used.
> I can't change the existing non-rt signal frame layout else I'll break
> a ton of applications, and in particular GCC exception handling.
QEMU uses an rt signal, so there is no problem if it is only available
in that case. It would be logical to add the write info in siginfo_t as
the fault address is already saved in it.
Currently I made the same hack as Falk did on Alpha... it seems to work,
at least on test-i386.
Is there any advantages in using QEMU as a sparc64 executable ? Do you
think it would allow to let the full lower 32 bit address space to the
x86 process ?
Fabrice.
next prev parent reply other threads:[~2003-06-08 16:22 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-06-08 10:10 [Qemu-devel] Sparc port Fabrice Bellard
2003-06-08 10:20 ` David S. Miller
2003-06-08 10:52 ` Fabrice Bellard
2003-06-08 11:19 ` David S. Miller
2003-06-08 16:21 ` Fabrice Bellard [this message]
2003-06-09 5:28 ` David S. Miller
2003-06-08 11:23 ` Falk Hueffner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3EE362A6.6020103@free.fr \
--to=fabrice.bellard@free.fr \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.