aboutsummaryrefslogtreecommitdiffhomepage
path: root/problems/13-Mod-3/07.vsm
blob: 6d9783d78b82f93a5dc08ac362906856ad8af955 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# (32 / 8).times do |i|
#   j = i * 8
#   # itof (1)
#   puts "ior $lm#{j}v $lr0 $nowrite"
# end
# puts
# (32 / 8).times do |i|
#   j = i * 8
#   # itof (2)
#   puts "fvadd $aluf -$lr0 $ls#{j}v"
# end
# puts
# (32 / 8).times do |i|
#   j = i * 8
#   # /3
#   puts "fvmul $ls#{j}v $lr4 $nowrite"
# end
# puts
# (32 / 8).times do |i|
#   j = i * 8
#   # ftoi
#   puts "fftoi $mauf $ls#{j+32}v"
# end
# puts
# (32 / 8).times do |i|
#   j = i * 8
#   # x3
#   puts "ipackbit $ls#{j+32}v $lr8 $nowrite"
#   puts "iadd $ls#{j+32}v $aluf $nowrite"
#   # %3
#   puts "isub $lm#{j}v $aluf $ln#{j}v"
#   puts
# end

imm f"8388608" $r0v
imm f"0.3333333333333333333333" $r4v

ior $lm0v $lr0 $nowrite
ior $lm8v $lr0 $nowrite; fvadd $aluf -$lr0 $ls0v
ior $lm16v $lr0 $nowrite; fvadd $aluf -$lr0 $ls8v
ior $lm24v $lr0 $nowrite; fvadd $aluf -$lr0 $ls16v
fvadd $aluf -$lr0 $ls24v

fvmul $ls0v $lr4 $nowrite
fvmul $ls8v $lr4 $nowrite; fftoi $mauf $ls32v
fvmul $ls16v $lr4 $nowrite; fftoi $mauf $ls40v
fvmul $ls24v $lr4 $nowrite; fftoi $mauf $ls48v
fftoi $mauf $ls56v

ipackbit $ls32v $lr8 $nowrite
iadd $ls32v $aluf $nowrite
isub $lm0v $aluf $ln0v

ipackbit $ls40v $lr8 $nowrite
iadd $ls40v $aluf $nowrite
isub $lm8v $aluf $ln8v

ipackbit $ls48v $lr8 $nowrite
iadd $ls48v $aluf $nowrite
isub $lm16v $aluf $ln16v

ipackbit $ls56v $lr8 $nowrite
iadd $ls56v $aluf $nowrite
isub $lm24v $aluf $ln24v