qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH] Updated Sparc support


From: Fabrice Bellard
Subject: [Qemu-devel] Re: [PATCH] Updated Sparc support
Date: Tue, 13 May 2003 14:31:22 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020828

David S. Miller wrote:
Fabrice, here are updated patches for Sparc support.
With the mmap changes you installed today, things work
quite well :-)

Thanx! I'll commit them tonight.

The current state is that for 32-bit Sparc static binaries seem to
work and test-i386 passes except for 2 or 3 float tests which I will
fix shortly.  My plan is to fix the float tests, make sure 64-bit
sparc is working properly, then move on to playing with dynamically
loaded libraries and making other improvements.

OK. There seem to be a bug in mmap.c when using 'qemu -p 16384 /bin/ls' on i386 (although -p 8192 and -p 32768 work !). I will investigate.

My next patches will mainly add support for code invalidation (when unloading dlls for example) and self-modifying code (by using mprotect to protect host pages containing writable translated code - that's why unlike em86 I chose to maintain mapping of the target pages instead of the host ones). It is a vital feature to have good performances in dosemu. The support for the custom signal handler for SIGSEGV and SIGBUS in exec-i386.c will become mandatory for all host CPUs.

I also plan to add direct block chaining. I will try to make it portable by using the 'goto *' gcc extension, but I don't know yet if it will work on every CPU. The direct block chaining will generate something like:

 'goto *addr'

at the end of some translated blocks to jump either to the CPU core or directly to the next translated block. 'addr' will be a global 'void *' variable. Since no code will be patched to change block chaining, it will simplify the instruction cache invalidation issues and the threading issues.

Another subject: as you may have seen, most of the qemu code is designed to be independent of the target CPU. I hope that someone will have the time to add support for some other target CPUs such as PowerPC, ARM, MIPS or Sparc :-)

It would be an useful tool for embedded Linux software development or for automatic testing of Linux software without bothering to have accounts on every possible Linux host (it would ease the testing of qemu itself :-)).

Fabrice.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]