* Monster bug fixes & improvements from the last two days' demo-testing work.
authorFrank Ch. Eigler <fche@redhat.com>
Fri, 20 Mar 1998 22:12:06 +0000 (22:12 +0000)
committerFrank Ch. Eigler <fche@redhat.com>
Fri, 20 Mar 1998 22:12:06 +0000 (22:12 +0000)
commit121d6745bc73a2e3f33e51a5c07db966eb9a5fbe
tree1eb12ba14eeaf1bc386ce20a5421c8b2fcdad713
parenta748b374f588c3700dbe4ceaa8c987574ad184e4
* Monster bug fixes & improvements from the last two days' demo-testing work.

* sky-pke.h (pke_fifo*): Exported these formerly private functions.
(pke_device): Added FIFO cache fields.

* sky-pke.c (pke_fifo_reset): New function for GPUIF client -
  clear FIFO contents.
(pke_pcrel_fifo): Added caching facility to prevent O(n^2) cost for
searching for consecutive operand words.

* sky-libvpe.c (MEM, uMEM): New/changed macros that perform modulo
  calculations to handle out-of-range VU memory addresses.
(*): Replaced many previous uses of MEM[] and state->uMEM[] with
calls to above macros.

* sky-vu.h (struct VectorUnitState): Added qw/dw size fields for
MEM/uMEM buffers, for overflow prevention.  Renamed MEM/uMEM fields
to catch all their prior users.

* sky-vu0.c (vu0_attach): Manually align MEM0/MEM1 buffers to force
16-byte alignment.  (zalloc is not enough.)

* sky-vu1.c (vu1_attach): Ditto.
(init_vu): Store buffer sizes from allocation into VectorUnitState.

* sky-gpuif.h (GifPath): Use a pke_fifo strucf instead of
  temporary fixed-size array for flexible FIFO sizing.

* sky-gpuif.c (SKY_GPU2_REFRESH): This is now an integer value to be
used as a modulus for periodic refresh.
(refresh): New function to send GPU2 refresh code periodically.
(*): Use pke_fifo calls to en/dequeue GPUIF tags & operands.

* sky-pke.h (struct pke_device): Added fields to allow caching of
  results from recent FIFO searches.
sim/mips/sky-pke.c
sim/mips/sky-pke.h
sim/mips/sky-vu0.c
sim/mips/sky-vu1.c