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,6 +19,10 @@ ifeq ($(ARCH),ppc)
19 OP_CFLAGS=$(CFLAGS) 19 OP_CFLAGS=$(CFLAGS)
20 endif 20 endif
21 21
  22 +ifeq ($(ARCH),s390)
  23 +OP_CFLAGS=$(CFLAGS)
  24 +endif
  25 +
22 ifeq ($(GCC_MAJOR),3) 26 ifeq ($(GCC_MAJOR),3)
23 # very important to generate a return at the end of every operation 27 # very important to generate a return at the end of every operation
24 OP_CFLAGS+=-fno-reorder-blocks -fno-optimize-sibling-calls 28 OP_CFLAGS+=-fno-reorder-blocks -fno-optimize-sibling-calls
@@ -94,19 +98,20 @@ qemu-doc.html: qemu-doc.texi @@ -94,19 +98,20 @@ qemu-doc.html: qemu-doc.texi
94 texi2html -monolithic -number $< 98 texi2html -monolithic -number $<
95 99
96 FILES= \ 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 Makefile elf.h linux_bin.h segment.h thunk.c\ 103 Makefile elf.h linux_bin.h segment.h thunk.c\
100 elfload.c main.c signal.c thunk.h\ 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 dis-asm.h gen-i386.h op-i386.h syscall.c\ 106 dis-asm.h gen-i386.h op-i386.h syscall.c\
103 dis-buf.c i386-dis.c opreg_template.h syscall_defs.h\ 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 tests/Makefile\ 109 tests/Makefile\
106 tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\ 110 tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\
107 tests/test-i386-muldiv.h tests/test-i386-code16.S\ 111 tests/test-i386-muldiv.h tests/test-i386-code16.S\
108 tests/hello.c tests/hello tests/sha1.c \ 112 tests/hello.c tests/hello tests/sha1.c \
109 tests/testsig.c tests/testclone.c tests/testthread.c \ 113 tests/testsig.c tests/testclone.c tests/testthread.c \
  114 +tests/runcom.c tests/pi_10.com \
110 qemu-doc.texi qemu-doc.html 115 qemu-doc.texi qemu-doc.html
111 116
112 FILE=qemu-$(VERSION) 117 FILE=qemu-$(VERSION)
1 -0.1.3  
2 \ No newline at end of file 1 \ No newline at end of file
  2 +0.1.4
3 \ No newline at end of file 3 \ No newline at end of file
qemu-doc.texi
@@ -12,8 +12,9 @@ @@ -12,8 +12,9 @@
12 QEMU is an x86 processor emulator. Its purpose is to run x86 Linux 12 QEMU is an x86 processor emulator. Its purpose is to run x86 Linux
13 processes on non-x86 Linux architectures such as PowerPC or ARM. By 13 processes on non-x86 Linux architectures such as PowerPC or ARM. By
14 using dynamic translation it achieves a reasonnable speed while being 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 QEMU features: 19 QEMU features:
19 20
@@ -21,12 +22,13 @@ QEMU features: @@ -21,12 +22,13 @@ QEMU features:
21 22
22 @item User space only x86 emulator. 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 @item The virtual x86 CPU supports 16 bit and 32 bit addressing with segmentation. 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 @item Generic Linux system call converter, including most ioctls. 33 @item Generic Linux system call converter, including most ioctls.
32 34
@@ -52,10 +54,6 @@ Current QEMU Limitations: @@ -52,10 +54,6 @@ Current QEMU Limitations:
52 54
53 @item No support for self modifying code (yet). [Very few programs need that, a notable exception is QEMU itself !]. 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 @item No SSE/MMX support (yet). 57 @item No SSE/MMX support (yet).
60 58
61 @item No x86-64 support. 59 @item No x86-64 support.
@@ -123,10 +121,10 @@ able to do: @@ -123,10 +121,10 @@ able to do:
123 qemu /usr/local/qemu-i386/bin/ls-i386 121 qemu /usr/local/qemu-i386/bin/ls-i386
124 @end example 122 @end example
125 123
126 -@item Download the binary x86 wine install 124 +@item Download the binary x86 Wine install
127 (@file{qemu-i386-wine.tar.gz} on the QEMU web page). 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 @file{/usr/local/qemu-i386/bin/wine-conf.sh}. Your previous 128 @file{/usr/local/qemu-i386/bin/wine-conf.sh}. Your previous
131 @code{$@{HOME@}/.wine} directory is saved to @code{$@{HOME@}/.wine.org}. 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,6 +175,13 @@ code, in particular the ELF file loader). EM86 was limited to an alpha
177 host and used a proprietary and slow interpreter (the interpreter part 175 host and used a proprietary and slow interpreter (the interpreter part
178 of the FX!32 Digital Win32 code translator [5]). 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 @section Portable dynamic translation 185 @section Portable dynamic translation
181 186
182 QEMU is a dynamic translator. When it first encounters a piece of code, 187 QEMU is a dynamic translator. When it first encounters a piece of code,
@@ -218,7 +223,7 @@ doing complicated register allocation. @@ -218,7 +223,7 @@ doing complicated register allocation.
218 Good CPU condition codes emulation (@code{EFLAGS} register on x86) is a 223 Good CPU condition codes emulation (@code{EFLAGS} register on x86) is a
219 critical point to get good performances. QEMU uses lazy condition code 224 critical point to get good performances. QEMU uses lazy condition code
220 evaluation: instead of computing the condition codes after each x86 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 result (called @code{CC_DST}) and the type of operation (called 227 result (called @code{CC_DST}) and the type of operation (called
223 @code{CC_OP}). 228 @code{CC_OP}).
224 229
@@ -231,7 +236,7 @@ generated simple instructions (see @@ -231,7 +236,7 @@ generated simple instructions (see
231 the condition codes are not needed by the next instructions, no 236 the condition codes are not needed by the next instructions, no
232 condition codes are computed at all. 237 condition codes are computed at all.
233 238
234 -@section Translation CPU state optimisations 239 +@section CPU state optimisations
235 240
236 The x86 CPU has many internal states which change the way it evaluates 241 The x86 CPU has many internal states which change the way it evaluates
237 instructions. In order to achieve a good speed, the translation phase 242 instructions. In order to achieve a good speed, the translation phase
@@ -323,6 +328,10 @@ x86 emulator on Alpha-Linux. @@ -323,6 +328,10 @@ x86 emulator on Alpha-Linux.
323 DIGITAL FX!32: Running 32-Bit x86 Applications on Alpha NT, by Anton 328 DIGITAL FX!32: Running 32-Bit x86 Applications on Alpha NT, by Anton
324 Chernoff and Ray Hookway. 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 @end table 335 @end table
327 336
328 @chapter Regression Tests 337 @chapter Regression Tests
@@ -365,3 +374,9 @@ It is a simple benchmark. Care must be taken to interpret the results @@ -365,3 +374,9 @@ It is a simple benchmark. Care must be taken to interpret the results
365 because it mostly tests the ability of the virtual CPU to optimize the 374 because it mostly tests the ability of the virtual CPU to optimize the
366 @code{rol} x86 instruction and the condition code computations. 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}).