1 |
.\" $Id: gxemul.1,v 1.33 2005/10/07 22:45:34 debug Exp $ |
.\" $Id: gxemul.1,v 1.39 2005/11/23 22:03:25 debug Exp $ |
2 |
.\" |
.\" |
3 |
.\" Copyright (C) 2004-2005 Anders Gavare. All rights reserved. |
.\" Copyright (C) 2004-2005 Anders Gavare. All rights reserved. |
4 |
.\" |
.\" |
29 |
.\" This is a minimal man page for GXemul. Process this file with |
.\" This is a minimal man page for GXemul. Process this file with |
30 |
.\" groff -man -Tascii gxemul.1 or nroff -man gxemul.1 |
.\" groff -man -Tascii gxemul.1 or nroff -man gxemul.1 |
31 |
.\" |
.\" |
32 |
.Dd OCTOBER 2005 |
.Dd NOVEMBER 2005 |
33 |
.Dt GXEMUL 1 |
.Dt GXEMUL 1 |
34 |
.Os |
.Os |
35 |
.Sh NAME |
.Sh NAME |
50 |
is an experimental instruction-level machine emulator. Several |
is an experimental instruction-level machine emulator. Several |
51 |
emulation modes are available. In some modes, processors and surrounding |
emulation modes are available. In some modes, processors and surrounding |
52 |
hardware components are emulated well enough to let unmodified operating |
hardware components are emulated well enough to let unmodified operating |
53 |
systems (e.g. NetBSD) run as if they were running on a real machine. |
systems (e.g. NetBSD) run inside the emulator as if they were running on a |
54 |
|
real machine. |
55 |
.Pp |
.Pp |
56 |
The processor architecture best emulated by GXemul is MIPS, but other |
The processor architecture best emulated by GXemul is MIPS, but other |
57 |
architectures are also partially emulated. |
architectures (ARM and PowerPC) are also partially emulated. |
58 |
|
.Pp |
59 |
|
MIPS processors are emulated either using a simple type of binary |
60 |
|
translator (on Alpha and i386 hosts), or using traditional slow |
61 |
|
interpretation (all other hosts, including amd64 machines running in |
62 |
|
64-bit mode). |
63 |
|
.Pp |
64 |
|
Non-MIPS processors are emulated using a newer dynamic |
65 |
|
translation system (called dyntrans in the rest of this man page); |
66 |
|
dyntrans does not require any host-specific code, so it should work on any |
67 |
|
platform. Performance is somewhere between binary translation and |
68 |
|
traditional interpretation. |
69 |
.Pp |
.Pp |
70 |
There are three ways to invoke the emulator: |
There are three ways to invoke the emulator: |
71 |
.Pp |
.Pp |
133 |
.It Fl A |
.It Fl A |
134 |
Disable load/store alignment checks in some cases. This might give a small |
Disable load/store alignment checks in some cases. This might give a small |
135 |
increase in performance, but the emulator will not run correctly if the |
increase in performance, but the emulator will not run correctly if the |
136 |
emulated code actually tries to do unaligned loads or stores. |
emulated code actually tries to do unaligned loads or stores. (This option |
137 |
|
is only meaningful when emulating MIPS CPUs, when the host architecture is |
138 |
|
Alpha or i386, and binary translation is enabled.) |
139 |
.It Fl B |
.It Fl B |
140 |
Disable dynamic binary translation. By default, bintrans |
Disable dynamic binary translation. By default, bintrans |
141 |
will be turned on if the host+target architecture combination is |
will be turned on if the host+target architecture combination is |
142 |
supported. |
supported. Currently, the only supported target architecture for bintrans |
143 |
|
is MIPS, and the supported host architectures are Alpha and i386. |
144 |
.It Fl C Ar x |
.It Fl C Ar x |
145 |
Try to emulate a specific CPU type, |
Try to emulate a specific CPU type, |
146 |
.Ar "x". |
.Ar "x". |
199 |
.It Fl i |
.It Fl i |
200 |
Display each instruction as it is being executed. |
Display each instruction as it is being executed. |
201 |
.It Fl J |
.It Fl J |
202 |
Disable some speed tricks. |
Disable some speed tricks. For MIPS emulation, these are mostly |
203 |
|
timing-related. For non-MIPS emulation (i.e. those modes using dyntrans), |
204 |
|
this flag disables the use of "instruction combinations". |
205 |
.It Fl j Ar n |
.It Fl j Ar n |
206 |
Set the name of the kernel to |
Set the name of the kernel to |
207 |
.Ar "n". |
.Ar "n". |
226 |
Force a "netboot" (tftp instead of disk), even when a disk image is |
Force a "netboot" (tftp instead of disk), even when a disk image is |
227 |
present (for DECstation, SGI, and ARC emulation). |
present (for DECstation, SGI, and ARC emulation). |
228 |
.It Fl o Ar arg |
.It Fl o Ar arg |
229 |
Set the boot argument (for DEC, ARC, or SGI emulation). |
Set the boot argument (mostly useful for DEC, ARC, or SGI emulation). |
230 |
Default |
Default |
231 |
.Ar arg |
.Ar arg |
232 |
for DEC is "-a", for ARC "-aN". |
for DEC is "-a", for ARC/SGI it is "-aN", and for CATS it is "-A". |
233 |
.It Fl p Ar pc |
.It Fl p Ar pc |
234 |
Add a breakpoint. (Remember to use the "0x" prefix for hex.) |
Add a breakpoint. (Remember to use the "0x" prefix for hex.) |
235 |
.It Fl Q |
.It Fl Q |
258 |
.Ar n |
.Ar n |
259 |
x |
x |
260 |
.Ar n |
.Ar n |
261 |
times. |
times. This option is useful when emulating a very large framebuffer, and |
262 |
|
the actual display is of lower resolution. If |
263 |
|
.Ar n |
264 |
|
is negative, then there will be no scaledown, but emulation of certain |
265 |
|
graphic controllers will be scaled up |
266 |
|
by |
267 |
|
.Ar -n |
268 |
|
times instead. E.g. Using |
269 |
|
.Ar -2 |
270 |
|
with VGA text mode emulation will result in 80x25 character cells rendered |
271 |
|
in a 1280x800 window, instead of the normal resolution of 640x400. |
272 |
.It Fl y Ar x |
.It Fl y Ar x |
273 |
Set max_random_cycles_per_chunk to |
Set max_random_cycles_per_chunk to |
274 |
.Ar x |
.Ar x |
317 |
.It Fl q |
.It Fl q |
318 |
Quiet mode; this suppresses startup messages. |
Quiet mode; this suppresses startup messages. |
319 |
.It Fl s |
.It Fl s |
320 |
Show opcode usage statistics after the simulation. |
For MIPS emulation: Show opcode usage statistics after the simulation. |
321 |
|
For non-MIPS emulation (i.e. using dyntrans): Save statistics to a file at |
322 |
|
regular intervals of which physical addresses that were executed. |
323 |
.It Fl V |
.It Fl V |
324 |
Start up in the single-step debugger, paused. |
Start up in the single-step debugger, paused. |
325 |
.It Fl v |
.It Fl v |
375 |
.Pp |
.Pp |
376 |
Userland (syscall-only) emulation doesn't really work yet. |
Userland (syscall-only) emulation doesn't really work yet. |
377 |
.Pp |
.Pp |
378 |
|
Emulation of MIPS CPUs is done differently from other emulation modes; the |
379 |
|
documentation sometimes only reflects the way things work with MIPS |
380 |
|
emulation, and it is incorrect when applied to e.g. ARM emulation. |
381 |
|
.Pp |
382 |
.Nm |
.Nm |
383 |
does not simulate individual pipe-line stages or penalties caused by |
does not simulate individual pipe-line stages or penalties caused by |
384 |
branch-prediction misses or cache misses, so it cannot be used for |
branch-prediction misses or cache misses, so it cannot be used for |