[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: OS calls.

  > Line F is used on 030 machines for floating point, I think; and it's used
  > by early TOS versions (the ones that don't run on 030's :-)) internally
  > by the AES to call the VDI.
  > I would be quite surprised if the actual calling mechanism (trap vs.
  > line A or line F) turned out to be a significant factor in system call
  > timings. I would think that the context save/restore code would be the
  > most significant part (at least for MiNT). Anything that we could do
  > to speed those up, and/or to generally speed up the kernel's handling
  > of system calls once control reaches the kernel, would be a big win.

  Well, yes. We jammed the context save/restore code on the RTU down into
  about 20 opcodes. If we generated hardware specific kernels (68000 only,
  68030 only, with fpu, without fpu), we could save ourselves a chunk of
  code, and save a LOT of cycles on the Context-Switcher From Hell.

  But, yes. The use of the Line-A trap _does_ make a significant difference.
  That's why it _is_ used for the low-level graphics primitives, rather than
  using a spare trap.

OK. As for hardware-specific kernels - how about just jumping through a
function pointer? Initialize the table when mint.prg starts up.