qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Vince Weaver <vince@csl.cornell.edu>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] linux-user exception handling
Date: Mon, 25 Aug 2008 16:26:06 -0400 (EDT)	[thread overview]
Message-ID: <20080825162105.T45325@stanley.csl.cornell.edu> (raw)

Hello

so I'm tracking down a problem on sparc32plus-linux-user.
SPARC has register windows, and when it tried to save another register 
context, but all available ones are full, it causes a TT_SPILL exception. 
In theory the OS would handle this and move some of the registers to RAM 
somewhere.

In any case, this doesn't seem to be working properly.  I've traced 
through the code, and I find in cpu-exec.c where userspace exceptions are 
handled.

The code involved in listed below.

Am I correct in reading that user-mode exceptions are only implemented for 
x86?  If so that makes me sad, because it means that pretty much any SPARC 
program that has more than 8 nested function calls won't work until a lot 
more code is implemented.

Vince



                } else if (env->user_mode_only) {
                     /* if user mode only, we simulate a fake exception
                        which will be handled outside the cpu execution
                        loop */
#if defined(TARGET_I386)
                     do_interrupt_user(env->exception_index,
                                       env->exception_is_int,
                                       env->error_code,
                                       env->exception_next_eip);
                     /* successfully delivered */
                     env->old_exception = -1;
#endif
                     ret = env->exception_index;
                     break;

             reply	other threads:[~2008-08-25 20:26 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-25 20:26 Vince Weaver [this message]
2008-08-25 20:34 ` [Qemu-devel] linux-user exception handling Blue Swirl
2008-08-27 16:58   ` Vince Weaver
2008-08-27 17:14     ` Blue Swirl
2008-08-27 17:30       ` Vince Weaver
2008-08-27 18:19         ` Blue Swirl
2008-08-27 19:02           ` Vince Weaver
2008-08-27 19:26             ` Blue Swirl

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=20080825162105.T45325@stanley.csl.cornell.edu \
    --to=vince@csl.cornell.edu \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).