;;; -*- Mode:LISP; Package:NEW-MATH; Base:10; Readtable:ZL -*-

(defafun short-status (short)
  (ALU-FIELD EXTRACT-BIT-RIGHT NOP IGNORE A0 hw:%%short-float-sign PW-II)
  (ALU-FIELD ALIGNED-FIELD-XOR NOP gr:*ALL-ZERO* A0 hw:%%short-float-exponent-and-mantissa PW-II BR-ZERO)
  (BRANCH positive (MOVE A1 gr:*ZERO* BOXED-RIGHT BR-NOT-EQUAL))
  (BRANCH negative-non-zero ())
 negative-zero
  (movei return hw:$$alu-status-negative-zero-and-others ch-return next-pc-return)
 negative-non-zero
  (movei return hw:$$alu-status-negative-and-others ch-return next-pc-return)
 positive
  (BRANCH positive-non-zero ())
 positive-zero
  (movei return hw:$$alu-status-zero-and-others ch-return next-pc-return)
 positive-non-zero
  (movei return hw:$$alu-status-positive ch-return next-pc-return)
  )