All of lore.kernel.org
 help / color / mirror / Atom feed
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.

  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.