qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] linux-user exception handling
@ 2008-08-25 20:26 Vince Weaver
  2008-08-25 20:34 ` Blue Swirl
  0 siblings, 1 reply; 8+ messages in thread
From: Vince Weaver @ 2008-08-25 20:26 UTC (permalink / raw)
  To: qemu-devel

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;

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-08-27 19:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-25 20:26 [Qemu-devel] linux-user exception handling Vince Weaver
2008-08-25 20:34 ` 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

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).