See ??? comments here and in cgen, and in libgloss/i960.

Simulator:

Update sim/i960 directory from sim/m32r directory.  sim/i960 dir was created
by copying the sim/m32r in September 1998, and is missing all sim/m32r updates
since then.

Review, clean up, finish, etc simulator files that are not cgen generated.
This includes devices.c, i960-sim.h, mloop.in, sim-if.c, sim-main.h,
tconfig.in, and traps.c.

Some functions do not show up in trace output.  This occasionally happens
for main.

Gdb core dumps if compile without -mka.  Apparently a problem with recognizing
"core" machine type.

Get profiling working.

Add pipelining, execution unit, timing, etc info.

Add support for other models, besides KA.

Add support for newer architectures, e.g. v1.1 instructions.

Compiler:

Running gcc gives nm warning from collect about missing a.out file.
The output file is b.out, not a.out.  Collect is probably looking for
the wrong file name.

Use of -mca gives lots of linker warnings for ka/ca architecture conflicts,
but the two architectures are compatible.

Need 96 bit long double support in fp-bit.c, otherwise any testcase using
long double arithmetic hits an abort and runtime.

Compiler takes far too much time to compile PlumHall testcases at high
optimization levels.

r2 seems to be an available call-clobbered registers, since it isn't used
until a call occurs, and is dead when the call returns.

BSP:

Libgloss does not check for syscall error returns, which means errno never
gets set.

Libgloss does not use the syscall.h file.

Binutils:

Objdump -d fails on 64-bit host, specifically irix6.

Gdb:

Gdb sometimes prints messages about trace/breakpoint trap when hitting a
breakpoint.

Frame, up, down and related commands don't work.

Gdb fails when next'ing over a leaf function compiled with -mleaf-procedure.
Gdb fails when step'ing over a return from such a leaf function.
