Commit fd429f2f6cbc77dc5440725ede80df614787ece3

Authored by bellard
1 parent fb3e5849

update


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@66 c046a42c-6fe2-441c-8c8c-71466251a162
Makefile
... ... @@ -19,6 +19,10 @@ ifeq ($(ARCH),ppc)
19 19 OP_CFLAGS=$(CFLAGS)
20 20 endif
21 21  
  22 +ifeq ($(ARCH),s390)
  23 +OP_CFLAGS=$(CFLAGS)
  24 +endif
  25 +
22 26 ifeq ($(GCC_MAJOR),3)
23 27 # very important to generate a return at the end of every operation
24 28 OP_CFLAGS+=-fno-reorder-blocks -fno-optimize-sibling-calls
... ... @@ -94,19 +98,20 @@ qemu-doc.html: qemu-doc.texi
94 98 texi2html -monolithic -number $<
95 99  
96 100 FILES= \
97   -README COPYING COPYING.LIB TODO Changelog VERSION \
98   -dyngen.c ioctls.h ops_template.h syscall_types.h\
  101 +README README.distrib COPYING COPYING.LIB TODO Changelog VERSION \
  102 +dyngen.c ioctls.h ops_template.h op_string.h syscall_types.h\
99 103 Makefile elf.h linux_bin.h segment.h thunk.c\
100 104 elfload.c main.c signal.c thunk.h\
101   -cpu-i386.h qemu.h op-i386.c opc-i386.h syscall-i386.h translate-i386.c\
  105 +cpu-i386.h qemu.h op-i386.c opc-i386.h syscall-i386.h translate-i386.c\
102 106 dis-asm.h gen-i386.h op-i386.h syscall.c\
103 107 dis-buf.c i386-dis.c opreg_template.h syscall_defs.h\
104   -i386.ld ppc.ld exec-i386.h exec-i386.c configure \
  108 +i386.ld ppc.ld s390.ld exec-i386.h exec-i386.c configure \
105 109 tests/Makefile\
106 110 tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\
107 111 tests/test-i386-muldiv.h tests/test-i386-code16.S\
108 112 tests/hello.c tests/hello tests/sha1.c \
109 113 tests/testsig.c tests/testclone.c tests/testthread.c \
  114 +tests/runcom.c tests/pi_10.com \
110 115 qemu-doc.texi qemu-doc.html
111 116  
112 117 FILE=qemu-$(VERSION)
... ...
1   -0.1.3
2 1 \ No newline at end of file
  2 +0.1.4
3 3 \ No newline at end of file
... ...
qemu-doc.texi
... ... @@ -12,8 +12,9 @@
12 12 QEMU is an x86 processor emulator. Its purpose is to run x86 Linux
13 13 processes on non-x86 Linux architectures such as PowerPC or ARM. By
14 14 using dynamic translation it achieves a reasonnable speed while being
15   -easy to port on new host CPUs. An obviously interesting x86 only process
16   -is 'wine' (Windows emulation).
  15 +easy to port on new host CPUs. Its main goal is to be able to launch the
  16 +@code{Wine} Windows API emulator (@url{http://www.winehq.org}) on
  17 +non-x86 CPUs.
17 18  
18 19 QEMU features:
19 20  
... ... @@ -21,12 +22,13 @@ QEMU features:
21 22  
22 23 @item User space only x86 emulator.
23 24  
24   -@item Currently ported on i386 and PowerPC.
  25 +@item Currently ported on i386, PowerPC and S390.
25 26  
26   -@item Using dynamic translation for reasonnable speed.
  27 +@item Using dynamic translation to native code for reasonnable speed.
27 28  
28 29 @item The virtual x86 CPU supports 16 bit and 32 bit addressing with segmentation.
29   -User space LDT and GDT are emulated.
  30 +User space LDT and GDT are emulated. VM86 mode is also supported
  31 +(experimental).
30 32  
31 33 @item Generic Linux system call converter, including most ioctls.
32 34  
... ... @@ -52,10 +54,6 @@ Current QEMU Limitations:
52 54  
53 55 @item No support for self modifying code (yet). [Very few programs need that, a notable exception is QEMU itself !].
54 56  
55   -@item No VM86 mode (yet), althought the virtual
56   -CPU has support for most of it. [VM86 support is useful to launch old 16
57   -bit DOS programs with dosemu or wine].
58   -
59 57 @item No SSE/MMX support (yet).
60 58  
61 59 @item No x86-64 support.
... ... @@ -123,10 +121,10 @@ able to do:
123 121 qemu /usr/local/qemu-i386/bin/ls-i386
124 122 @end example
125 123  
126   -@item Download the binary x86 wine install
  124 +@item Download the binary x86 Wine install
127 125 (@file{qemu-i386-wine.tar.gz} on the QEMU web page).
128 126  
129   -@item Configure wine on your account. Look at the provided script
  127 +@item Configure Wine on your account. Look at the provided script
130 128 @file{/usr/local/qemu-i386/bin/wine-conf.sh}. Your previous
131 129 @code{$@{HOME@}/.wine} directory is saved to @code{$@{HOME@}/.wine.org}.
132 130  
... ... @@ -177,6 +175,13 @@ code, in particular the ELF file loader). EM86 was limited to an alpha
177 175 host and used a proprietary and slow interpreter (the interpreter part
178 176 of the FX!32 Digital Win32 code translator [5]).
179 177  
  178 +TWIN [6] is a Windows API emulator like Wine. It is less accurate than
  179 +Wine but includes a protected mode x86 interpreter to launch x86 Windows
  180 +executables. Such an approach as greater potential because most of the
  181 +Windows API is executed natively but it is far more difficult to develop
  182 +because all the data structures and function parameters exchanged
  183 +between the API and the x86 code must be converted.
  184 +
180 185 @section Portable dynamic translation
181 186  
182 187 QEMU is a dynamic translator. When it first encounters a piece of code,
... ... @@ -218,7 +223,7 @@ doing complicated register allocation.
218 223 Good CPU condition codes emulation (@code{EFLAGS} register on x86) is a
219 224 critical point to get good performances. QEMU uses lazy condition code
220 225 evaluation: instead of computing the condition codes after each x86
221   -instruction, it store justs one operand (called @code{CC_CRC}), the
  226 +instruction, it just stores one operand (called @code{CC_SRC}), the
222 227 result (called @code{CC_DST}) and the type of operation (called
223 228 @code{CC_OP}).
224 229  
... ... @@ -231,7 +236,7 @@ generated simple instructions (see
231 236 the condition codes are not needed by the next instructions, no
232 237 condition codes are computed at all.
233 238  
234   -@section Translation CPU state optimisations
  239 +@section CPU state optimisations
235 240  
236 241 The x86 CPU has many internal states which change the way it evaluates
237 242 instructions. In order to achieve a good speed, the translation phase
... ... @@ -323,6 +328,10 @@ x86 emulator on Alpha-Linux.
323 328 DIGITAL FX!32: Running 32-Bit x86 Applications on Alpha NT, by Anton
324 329 Chernoff and Ray Hookway.
325 330  
  331 +@item [6]
  332 +@url{http://www.willows.com/}, Windows API library emulation from
  333 +Willows Software.
  334 +
326 335 @end table
327 336  
328 337 @chapter Regression Tests
... ... @@ -365,3 +374,9 @@ It is a simple benchmark. Care must be taken to interpret the results
365 374 because it mostly tests the ability of the virtual CPU to optimize the
366 375 @code{rol} x86 instruction and the condition code computations.
367 376  
  377 +@section @file{runcom}
  378 +
  379 +A very simple MSDOS emulator to test the Linux vm86() system call
  380 +emulation. The excellent 54 byte @file{pi_10.com} PI number calculator
  381 +can be launched with it. @file{pi_10.com} was written by Bertram
  382 +Felgenhauer (more information at @url{http://www.boo.net/~jasonp/pipage.html}).
... ...