/sys$common/syshlp/helplib.hlb MACRO, VAX MACRO Assembler, Vector Instructions, VSUB *Conan The Librarian (sorry for the slow response - running on an old VAX) |
Vector Floating Subtract Format: vector - vector: { VVSUBF } { VVSUBD } [/U[0|1]] Va, Vb, Vc { VVSUBG } { } scalar - vector: { VSSUBF } { VSSUBD } [/U[0|1]] scalar, Vb, Vc { VSSUBG } { } Architecture Format vector - vector: opcode cntrl.rw scalar - vector (F_floating): opcode cntrl.rw, min.rl scalar - vector (D_ and G_floating): opcode cntrl.rw, min.rq opcodes 8CFD VVSUBF Vector Vector Subtract F_floating 8DFD VSSUBF Vector Scalar Subtract F_floating 8EFD VVSUBD Vector Vector Subtract D_floating 8FFD VSSUBD Vector Scalar Subtract D_floating 8AFD VVSUBG Vector Vector Subtract G_floating 8BFD VSSUBG Vector Scalar Subtract G_floating vector_control_word 1 1 1 1 1 5 4 3 2 1 8 7 4 3 0 +-+-+-+-+-------+-------+-------+ |M|M|E| | Va | | | |O|T|X|0| or | Vb | Vc | |E|F|C| | 0 | | | +-+-+-+-+-------+-------+-------+ exceptions floating overflow floating reserved operand floating underflow operation FOR i <- 0 TO VLR-1 IF {{MOE EQL 0} OR {{MOE EQL 1} AND {VMR<i> EQL MTF}}} THEN BEGIN IF VVSUBF THEN Vc[i]<31:0> <- Va[i]<31:0> - Vb[i]<31:0> IF VSSUBF THEN Vc[i]<31:0> <- min - Vb[i]<31:0> IF VVSUBD OR VVSUBG THEN Vc[i] <- Va[i] - Vb[i] IF VSSUBD OR VSSUBG THEN Vc[i] <- min - Vb[i] END
|