Matrix Computation Example (cont.)
***************** add up the running sums ***
MV .D1 sum0,temp1 ; temp1 = sum0
ADDSP .L1 sum0,temp1,temp2 ; temp2 = temp1 + sum0 (2nd sum0)
MV .D1 sum0,temp1 ; temp1 = sum0 (the 3rd sum0)
ADDSP .L1 sum0,temp1,temp3 ; temp3 = temp1 + sum0 (4th sum0)
[ocntr] B .S2 oloop ; if(ocntr) branch to oloop
ADDSP .L1 temp2,temp3,sum0 ; sum0 = temp2 + temp3
[ocntr] MV .D2 bptr,btmp ; reset *b to beginning of b
SUB .S1 colms,2,icntr ; inner cntr = columns - 2
|| SUB .S2X colms,1,lcntr ; load cntr = comumns - 1
LDW .D1T1 *aptr++(4),aa0 ;1 load a[i] from memory
|| LDW .D2T2 *btmp++(4),bb0 ;1 load b[i] from memory
STW .D1 sum0,*cptr++(4) ; c[i] = sum0
|| [ocntr] SUB .L1 ocntr,1,ocntr ; if(ocntr) ocntr -= 1