All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] Sparc port
@ 2003-06-08 10:10 Fabrice Bellard
  2003-06-08 10:20 ` David S. Miller
  0 siblings, 1 reply; 7+ messages in thread
From: Fabrice Bellard @ 2003-06-08 10:10 UTC (permalink / raw)
  To: qemu-devel


I am now trying to make the Sparc port work again. I added a sparc 
disassembler so that debugging is easier.

In order to support direct block chaining, it is necessary that no 
prologue or epilogue are added in the generated code. It should be easy 
to do by moving the add/sub sp/fp in the call code in exec-i386.c.

Moreover, the 'restore' used in exec-i386.c in cpu_loop_exit() is not 
safe because we cannot be sure that there was exactly one call level.

I have two ideas :

1) We use -mflat for exec-i386.c and helper-i386.c but not for op-i386.c 
to avoid gcc bugs. Now that op-i386.c only contains opcodes, the code 
inside should almost look like '-mflat' code.

2) We can patch cpu_exit_loop() by doing the right number of restores 
(maybe a single longjmp would suffice as l0...l7 are still saved.


Another more general idea for all archs is to call the generated code 
with a 'jump' instead of doing a call. It would be marginaly more 
complicated and would permit more optimisation (currently, on PowerPC 
and Alpha the code is very inefficient if a helper is called because the 
return address must be saved in a new generated stack frame).

Fabrice.

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

end of thread, other threads:[~2003-06-09  7:01 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2003-06-09  5:28         ` David S. Miller
2003-06-08 11:23     ` Falk Hueffner

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.