/sys$common/syshlp/helplib.hlb MACRO, VAX MACRO Assembler, Vector Instructions, VADD *Conan The Librarian (sorry for the slow response - running on an old VAX) |
Vector Floating Add Format: vector + vector: { VVADDF } { VVADDD } [/U[0|1]] Va, Vb, Vc { VVADDG } { } scalar + vector: { VSADDF } { VSADDD } [/U[0|1]] scalar, Vb, Vc { VSADDG } { } Architecture Format vector + vector: opcode cntrl.rw scalar + vector (F_floating): opcode cntrl.rw, addend.rl scalar + vector (D_ and G_floating): opcode cntrl.rw, addend.rq opcodes 84FD VVADDF Vector Vector Add F_Floating 85FD VSADDF Vector Scalar Add F_Floating 86FD VVADDD Vector Vector Add D_Floating 87FD VSADDD Vector Scalar Add D_Floating 82FD VVADDG Vector Vector Add G_Floating 83FD VSADDG Vector Scalar Add 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 BEGIN IF VVADDF THEN Vc[i]<31:0> <- Va[i]<31:0> + Vb[i]<31:0> IF VSADDF THEN Vc[i]<31:0> <- addend + Vb[i]<31:0> IF VVADDD OR VVADDG THEN Vc[i] <- Va[i] + Vb[i] IF VSADDD OR VSADDG THEN Vc[i] <- addend + Vb[i] END
|