addi p, buf, 64 # p = synth_buf+16
# SUM8(MACS, sum, w, p)
- sv.lfs/els fv0.v, 256(win)
- sv.lfs/els fv1.v, 256(p)
- # TOO ACCURATE! hilarious sv.fmadds/mr sum, fv0.v, fv1.v, sum
- sv.fmuls fv0.v, fv0.v, fv1.v
- sv.fadds/mr sum, fv0.v, sum
+ sv.lfs/els *fv0, 256(win)
+ sv.lfs/els *fv1, 256(p)
+ # TOO ACCURATE! hilarious sv.fmadds/mr sum, *fv0, *fv1, sum
+ sv.fmuls *fv0, *fv0, *fv1
+ sv.fadds/mr sum, *fv0, sum
addi p, buf, 192 # p = synth_buf + 48;
addi win, win, 128 # w = w + 32
# SUM8(MLSS, sum, w + 32, p)
- sv.lfs/els fv0.v, 256(win)
- sv.lfs/els fv1.v, 256(p)
- # TOO ACCURATE! hilarious sv.fnmsubs/mr sum, fv0.v, fv1.v, sum
- sv.fmuls fv0.v, fv0.v, fv1.v
- sv.fsubs/mr sum, sum, fv0.v
+ sv.lfs/els *fv0, 256(win)
+ sv.lfs/els *fv1, 256(p)
+ # TOO ACCURATE! hilarious sv.fnmsubs/mr sum, *fv0, *fv1, sum
+ sv.fmuls *fv0, *fv0, *fv1
+ sv.fsubs/mr sum, sum, *fv0
addi win, win, -128 # w = w - 32
stfs sum, 0(out) # *samples = &sum
add p, p, i
# SUM8P2(sum, MACS, sum2, MLSS, w, w2, p)
- sv.lfs/els fv0.v, 256(p)
- sv.lfs/els fv1.v, 256(win)
- sv.lfs/els fv2.v, 256(win2)
- # TOO ACCURATE! hilarious sv.fmadds/mr sum, fv0.v, fv1.v, sum
- # TOO ACCURATE! hilarious sv.fnmsubs/mr sum2, fv0.v, fv2.v, sum2
- sv.fmuls fv1.v, fv0.v, fv1.v
- sv.fadds/mr sum, sum, fv1.v
- sv.fmuls fv0.v, fv0.v, fv2.v
- sv.fsubs/mr sum2, sum2, fv0.v
+ sv.lfs/els *fv0, 256(p)
+ sv.lfs/els *fv1, 256(win)
+ sv.lfs/els *fv2, 256(win2)
+ # TOO ACCURATE! hilarious sv.fmadds/mr sum, *fv0, *fv1, sum
+ # TOO ACCURATE! hilarious sv.fnmsubs/mr sum2, *fv0, *fv2, sum2
+ sv.fmuls *fv1, *fv0, *fv1
+ sv.fadds/mr sum, sum, *fv1
+ sv.fmuls *fv0, *fv0, *fv2
+ sv.fsubs/mr sum2, sum2, *fv0
# p = synth_buf + 48 - j
addi p, buf, 192
addi win2, win2, 128
# SUM8P2(sum, MLSS, sum2, MLSS, w + 32, w2 + 32, p)
- sv.lfs/els fv0.v, 256(p)
- sv.lfs/els fv1.v, 256(win)
- sv.lfs/els fv2.v, 256(win2)
- # TOO ACCURATE! hilarious sv.fnmsubs/mr sum, fv0.v, fv1.v, sum
- # TOO ACCURATE! hilarious sv.fnmsubs/mr sum2, fv0.v, fv2.v, sum2
- sv.fmuls fv1.v, fv0.v, fv1.v
- sv.fsubs/mr sum, sum, fv1.v
- sv.fmuls fv0.v, fv0.v, fv2.v
- sv.fsubs/mr sum2, sum2, fv0.v
+ sv.lfs/els *fv0, 256(p)
+ sv.lfs/els *fv1, 256(win)
+ sv.lfs/els *fv2, 256(win2)
+ # TOO ACCURATE! hilarious sv.fnmsubs/mr sum, *fv0, *fv1, sum
+ # TOO ACCURATE! hilarious sv.fnmsubs/mr sum2, *fv0, *fv2, sum2
+ sv.fmuls *fv1, *fv0, *fv1
+ sv.fsubs/mr sum, sum, *fv1
+ sv.fmuls *fv0, *fv0, *fv2
+ sv.fsubs/mr sum2, sum2, *fv0
# win and win2 -= 32
addi win, win, -128
addi win, win, 128 # w += 32
lfiwax sum, 0, 9 # zero it
# SUM8(MLSS, sum, w + 32, p)
- sv.lfs/els fv0.v, 256(win)
- sv.lfs/els fv1.v, 256(p)
- # TOO ACCURATE! hilarious sv.fnmsubs/mr sum, fv0.v, fv1.v, sum
- sv.fmuls fv0.v, fv0.v, fv1.v
- sv.fsubs/mr sum, sum, fv0.v
+ sv.lfs/els *fv0, 256(win)
+ sv.lfs/els *fv1, 256(p)
+ # TOO ACCURATE! hilarious sv.fnmsubs/mr sum, *fv0, *fv1, sum
+ sv.fmuls *fv0, *fv0, *fv1
+ sv.fsubs/mr sum, sum, *fv0
stfs sum, 0(out)