5e – user-mode ARM emulation
simulates the execution of an ARM binary in a Plan 9 environment.
Unlike its predecessor
it supports, among others, the syscalls
which allows for the execution of threaded programs (e.g.,
or catclock (see
executes the specified binary
which is prepended by
if it does not begin with a slash, dot or hash sign.
is replaced by the union of
does not provide built-in debugging facilities.
provide emulation of the
directory, if the
flag is specified, to attach a proper debugger like
There is no equivalent of the profiling facilities, no caches or TLBs are simulated, either.
currently has three options.
as mentioned above and also sets the variables
option suppresses this behaviour.
option activates emulation of a
file system, which is mounted at
and also posted as
causes failing processes to call
Disable emulation of VFP floating point instructions.
The host is required to be little endian and is assumed to have a floating point implementation conforming to IEEE 754.
Broken processes are simulated in a rather unsatisfactory manner.
option leaks memory.
The emulator does not post
Obscure opcodes, in particular uncommon operations on R15, are not implemented.
Accesses spanning segment boundaries will be treated as page faults.
Many syscalls such as pread (see
will shuffle data around (in most cases unnecessarily) if invoked on potentially shared segments of variable length, in particular the bss segment.
FPA emulation leaves much to be desired, rounding modes are ignored, all calculations are performed at extended precision.
Floating point exceptions crash the emulator.
Several syscalls, most notably the
family, are not implemented (this should not be hard to fix).
The emulator notes the value of
only under obvious circumstances; with most syscalls only if the return value is negative.
emulation is more than unsatisfactory.
argument should behave more like it would if it had been entered as an argument to
first appeared in 9front (June, 2011).