Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Q
Qemu
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
BayLibre
Qemu
Commits
fd429f2f
Commit
fd429f2f
authored
22 years ago
by
Fabrice Bellard
Browse files
Options
Downloads
Patches
Plain Diff
update
git-svn-id:
svn://svn.savannah.nongnu.org/qemu/trunk@66
c046a42c-6fe2-441c-8c8c-71466251a162
parent
fb3e5849
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
Makefile
+9
-4
9 additions, 4 deletions
Makefile
VERSION
+1
-1
1 addition, 1 deletion
VERSION
qemu-doc.texi
+28
-13
28 additions, 13 deletions
qemu-doc.texi
with
38 additions
and
18 deletions
Makefile
+
9
−
4
View file @
fd429f2f
...
...
@@ -19,6 +19,10 @@ ifeq ($(ARCH),ppc)
OP_CFLAGS
=
$(
CFLAGS
)
endif
ifeq
($(ARCH),s390)
OP_CFLAGS
=
$(
CFLAGS
)
endif
ifeq
($(GCC_MAJOR),3)
# very important to generate a return at the end of every operation
OP_CFLAGS
+=
-fno-reorder-blocks
-fno-optimize-sibling-calls
...
...
@@ -94,19 +98,20 @@ qemu-doc.html: qemu-doc.texi
texi2html
-monolithic
-number
$<
FILES
=
\
README COPYING COPYING.LIB TODO Changelog VERSION
\
dyngen.c ioctls.h ops_template.h syscall_types.h
\
README
README.distrib
COPYING COPYING.LIB TODO Changelog VERSION
\
dyngen.c ioctls.h ops_template.h
op_string.h
syscall_types.h
\
Makefile elf.h linux_bin.h segment.h thunk.c
\
elfload.c main.c signal.c thunk.h
\
cpu-i386.h
qemu.h
op-i386.c opc-i386.h syscall-i386.h translate-i386.c
\
cpu-i386.h qemu.h op-i386.c opc-i386.h syscall-i386.h translate-i386.c
\
dis-asm.h gen-i386.h op-i386.h syscall.c
\
dis-buf.c i386-dis.c opreg_template.h syscall_defs.h
\
i386.ld ppc.ld exec-i386.h exec-i386.c configure
\
i386.ld ppc.ld
s390.ld
exec-i386.h exec-i386.c configure
\
tests/Makefile
\
tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h
\
tests/test-i386-muldiv.h tests/test-i386-code16.S
\
tests/hello.c tests/hello tests/sha1.c
\
tests/testsig.c tests/testclone.c tests/testthread.c
\
tests/runcom.c tests/pi_10.com
\
qemu-doc.texi qemu-doc.html
FILE
=
qemu-
$(
VERSION
)
...
...
This diff is collapsed.
Click to expand it.
VERSION
+
1
−
1
View file @
fd429f2f
0.1.3
\ No newline at end of file
0.1.4
\ No newline at end of file
This diff is collapsed.
Click to expand it.
qemu-doc.texi
+
28
−
13
View file @
fd429f2f
...
...
@@ -12,8 +12,9 @@
QEMU is an x86 processor emulator. Its purpose is to run x86 Linux
processes on non-x86 Linux architectures such as PowerPC or ARM. By
using dynamic translation it achieves a reasonnable speed while being
easy to port on new host CPUs. An obviously interesting x86 only process
is 'wine' (Windows emulation).
easy to port on new host CPUs. Its main goal is to be able to launch the
@code
{
Wine
}
Windows API emulator (@url
{
http://www.winehq.org
}
) on
non-x86 CPUs.
QEMU features:
...
...
@@ -21,12 +22,13 @@ QEMU features:
@item User space only x86 emulator.
@item Currently ported on i386
and
PowerPC.
@item Currently ported on i386
,
PowerPC
and S390
.
@item Using dynamic translation for reasonnable speed.
@item Using dynamic translation
to native code
for reasonnable speed.
@item The virtual x86 CPU supports 16 bit and 32 bit addressing with segmentation.
User space LDT and GDT are emulated.
User space LDT and GDT are emulated. VM86 mode is also supported
(experimental).
@item Generic Linux system call converter, including most ioctls.
...
...
@@ -52,10 +54,6 @@ Current QEMU Limitations:
@item No support for self modifying code (yet). [Very few programs need that, a notable exception is QEMU itself !].
@item No VM86 mode (yet), althought the virtual
CPU has support for most of it. [VM86 support is useful to launch old 16
bit DOS programs with dosemu or wine].
@item No SSE/MMX support (yet).
@item No x86-64 support.
...
...
@@ -123,10 +121,10 @@ able to do:
qemu /usr/local/qemu-i386/bin/ls-i386
@end example
@item Download the binary x86
w
ine install
@item Download the binary x86
W
ine install
(@file
{
qemu-i386-wine.tar.gz
}
on the QEMU web page).
@item Configure
w
ine on your account. Look at the provided script
@item Configure
W
ine on your account. Look at the provided script
@file
{
/usr/local/qemu-i386/bin/wine-conf.sh
}
. Your previous
@code
{$
@
{
HOME@
}
/
.wine
}
directory is saved to @code
{$
@
{
HOME@
}
/.wine.org
}
.
...
...
@@ -177,6 +175,13 @@ code, in particular the ELF file loader). EM86 was limited to an alpha
host and used a proprietary and slow interpreter (the interpreter part
of the FX!32 Digital Win32 code translator [5]).
TWIN [6] is a Windows API emulator like Wine. It is less accurate than
Wine but includes a protected mode x86 interpreter to launch x86 Windows
executables. Such an approach as greater potential because most of the
Windows API is executed natively but it is far more difficult to develop
because all the data structures and function parameters exchanged
between the API and the x86 code must be converted.
@section Portable dynamic translation
QEMU is a dynamic translator. When it first encounters a piece of code,
...
...
@@ -218,7 +223,7 @@ doing complicated register allocation.
Good CPU condition codes emulation (@code
{
EFLAGS
}
register on x86) is a
critical point to get good performances. QEMU uses lazy condition code
evaluation: instead of computing the condition codes after each x86
instruction, it store
just
s one operand (called @code
{
CC
_
C
RC
}
), the
instruction, it
just
stores one operand (called @code
{
CC
_
S
RC
}
), the
result (called @code
{
CC
_
DST
}
) and the type of operation (called
@code
{
CC
_
OP
}
).
...
...
@@ -231,7 +236,7 @@ generated simple instructions (see
the condition codes are not needed by the next instructions, no
condition codes are computed at all.
@section
Translation
CPU state optimisations
@section CPU state optimisations
The x86 CPU has many internal states which change the way it evaluates
instructions. In order to achieve a good speed, the translation phase
...
...
@@ -323,6 +328,10 @@ x86 emulator on Alpha-Linux.
DIGITAL FX!32: Running 32-Bit x86 Applications on Alpha NT, by Anton
Chernoff and Ray Hookway.
@item [6]
@url
{
http://www.willows.com/
}
, Windows API library emulation from
Willows Software.
@end table
@chapter Regression Tests
...
...
@@ -365,3 +374,9 @@ It is a simple benchmark. Care must be taken to interpret the results
because it mostly tests the ability of the virtual CPU to optimize the
@code
{
rol
}
x86 instruction and the condition code computations.
@section @file
{
runcom
}
A very simple MSDOS emulator to test the Linux vm86() system call
emulation. The excellent 54 byte @file
{
pi
_
10.com
}
PI number calculator
can be launched with it. @file
{
pi
_
10.com
}
was written by Bertram
Felgenhauer (more information at @url
{
http://www.boo.net/~jasonp/pipage.html
}
).
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment