VLIW Programming Assignment (due 9/16)
Write code that will perform a [1x4] X [4x4] matrix operation. The [4x4] matrix is T00 T01 T02 T03 T10 T11 T12 T13 T20 T21 T22 T23 T30 T31 T32 T33
The [1x4] matrix has values [x y z w]. The result of the multiplication is a 1x4 matrix [x’ y’ z’ w’] where: x’ = x*T00 + y*T10 + z*T20 + w*T30 y’ = x*T01 + y*T11 + z*T21 + w*T31
These values are contained in registers R1-R16, stored in row major order (R1 = T00, R2 = T01, R3 = T02, R4=T03, R5=T10, …). Assume that your code will be called as a subroutine, with R17 containing the base address of the [1x4] input matrix (Mem[r4+0] = x, Mem[r4+1] = y, etc). The [1x4] matrix should be stored beginning at the memory location pointed to by R18 (M[r18+0] = x’, M[r18+1] = y’, etc).
Your code must leave registers R1 - R16 intact, all other register contents can be destroyed (the VLIW AbM has 32 registers total).