English
Language : 

AN2407 Datasheet, PDF (27/48 Pages) Freescale Semiconductor, Inc – Reed Solomon Encoder/Decoder on the StarCore SC140/SC1400 Cores, With Extended Examples
References
[ add d14,d5,d2
>d2,d3
]
add d14,d7,d3
; 1-st,3-rd table index -
; d2,d3 are now initialized for the inner loop
[ clr d7
clr d13
clr d5
clr d6
move.2l (r10)+,d10:d11
d10:d11
]
; results[-3,-2,-1,0]=0
; vector terms [5,6,7,8]->
; Main loop. Here the MACs over GF(256) are done."i" is the index of the
iteration,
; ranging from 0 to #N/4-1.Results with indices -3 ... 0 -> results were
initialized ; to zero.
loopstart3
LOOP_ON_BLOCK_POLY
[ add d14,d4,d4
eor d7,d15
tfr d1,d7
min d8,d12
move.l d3,r4
move.2l (r2)+,d8:d9
]
; table index[2+i] -> d4 result[1+4(i-1)] is added to accumulator
; copy 511 into d7
offset[4+i] -> d12
; table entries[5+i..8+i]->d8:d9table index[3+i] -> r4
[ add2 d8,d10
add d14,d12,d5
move.l d4,r3
]
eor d5,d15
add2 d9,d11
move.l d2,r6
; sum of exponents[5,6+i] -> d10
; table index[4+i] -> d5
; table index[2+i] -> r3
result[1+4(i-1)] is added to accumulator
sum of exponents[7,8+i] -> d11
table index[1+i] -> r6
[ zxt.w d10,d5
zxt.w d11,d3
move.l d5,r5
]
eor d6,d15
asrw d10,d4
moveu.b (r4),d6
; sum of exponents [5+i] -> d5
; sum of exponents [6+i]-> d4
; table index[4+i] -> r5
result[3+4(i-1)] is added to accumulator
sum of exponents [7+i] -> d3
result[3+i] -> d6
[ min d1,d5
min d3,d7
moveu.b (r3),d13
]
eor d13,d15
asrw d11,d8
move.2l (r10)+,d10:d11
; offset[5+i] -> d5
; offset[7+i] -> d7
; result[2+i] -> d13
result[2+4(i-1)] is added to accumulator
sum of exponents[8+i] -> d8
vector terms [9+i..12+i]-> d10:d11
[ add d14,d5,d2
add d14,d7,d3
moveu.b (r6),d7
]
min d0,d4
tfr d1,d12
moveu.b (r5),d5
; table index[5+i] -> d2
; table index[4+i] -> d3
; result[1+i] -> d7
offset[6+i] -> d4
copy 511 into d12
result[4+i] -> d5
loopend3
Reed Solomon Encoder/Decoder on the StarCore™ SC140/SC1400 Cores, With Extended Examples, Rev. 1
Freescale Semiconductor
27