version 2009-08-15

UMAX : Unsigned MAXimum

The unsigned value of the source register (snd) is compared with the unsigned value of the other operand (si4, Imm4 or Imm16). If si4>snd, then si4 is written to

Note : the early implementation works by comparing the values (with a substraction) then conditionally aborting the write of si4, so long forms and extended forms may not work as expected in the first versions.

The Unsigned MINimum instruction is identical but with a reversed condition.

The Signed MAXimum instruction is identical but compares signed values.

The SMAX, SMIN, UMAX and UMIN instructions are useful when clipping coordinates or samples.

; Signed version :
 SMAX R1 R2       ; If R1>R2    then R1->R2
 SMAX 1234h R1 R2 ; If R1>1234h then R1->R2 else 1234h->R2
 SMIN R1 R2       ; If R1<R2    then R1->R2
 SMIN 1234h R1 R2 ; If R1<1234h then R1->R2 else 1234h->R2
; Unsigned version :
 UMAX R1 R2       ; If R1>R2    then R1->R2
 UMAX 1234h R1 R2 ; If R1>1234h then R1->R2 else 1234h->R2
 UMIN R1 R2       ; If R1<R2    then R1->R2
 UMIN 1234h R1 R2 ; If R1<1234h then R1->R2 else 1234h->R2