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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
VERT
DCL IN[0]
DCL OUT[0], POSITION
DCL OUT[1], GENERIC[9]
DCL OUT[2], GENERIC[10]
DCL OUT[3], GENERIC[11]
DCL OUT[4], GENERIC[12]
DCL OUT[5], GENERIC[13]
DCL OUT[6], GENERIC[14]
DCL OUT[7], GENERIC[15]
DCL OUT[8], GENERIC[16]
DCL OUT[9], GENERIC[17]
DCL OUT[10], GENERIC[18]
DCL OUT[11], GENERIC[19]
DCL OUT[12], GENERIC[20]
DCL OUT[13], GENERIC[21]
DCL CONST[0..5]
DCL TEMP[0], LOCAL
DCL TEMP[1..4], ARRAY(1), LOCAL
DCL TEMP[5..16], ARRAY(2), LOCAL
DCL TEMP[17..20], ARRAY(3), LOCAL
DCL TEMP[21..24], ARRAY(4), LOCAL
DCL TEMP[25..26], LOCAL
DCL ADDR[0]
IMM[0] FLT32 { 1.0000, 2.0000, 3.0000, 4.0000}
IMM[1] FLT32 { 5.0000, 6.0000, 7.0000, 8.0000}
IMM[2] FLT32 { 9.0000, 10.0000, 11.0000, 12.0000}
IMM[3] FLT32 { 13.0000, 14.0000, 15.0000, 16.0000}
IMM[4] FLT32 { 17.0000, 18.0000, 19.0000, 20.0000}
IMM[5] FLT32 { 21.0000, 22.0000, 23.0000, 24.0000}
IMM[6] FLT32 { 25.0000, 26.0000, 27.0000, 28.0000}
IMM[7] FLT32 { 29.0000, 30.0000, 31.0000, 32.0000}
IMM[8] FLT32 { 33.0000, 34.0000, 35.0000, 36.0000}
IMM[9] FLT32 { 37.0000, 38.0000, 39.0000, 40.0000}
IMM[10] FLT32 { 41.0000, 42.0000, 43.0000, 44.0000}
IMM[11] FLT32 { 45.0000, 46.0000, 47.0000, 48.0000}
IMM[12] FLT32 { 0.0000, 1.0000, 0.0000, 0.0000}
0: MUL TEMP[0], CONST[2], IN[0].xxxx
1: MAD TEMP[0], CONST[3], IN[0].yyyy, TEMP[0]
2: MAD TEMP[0], CONST[4], IN[0].zzzz, TEMP[0]
3: MAD TEMP[0], CONST[5], IN[0].wwww, TEMP[0]
4: MOV TEMP[1], IMM[0]
5: MOV TEMP[2], IMM[1]
6: MOV TEMP[3], IMM[2]
7: MOV TEMP[4], IMM[3]
8: MOV TEMP[5], TEMP[1]
9: MOV TEMP[6], TEMP[2]
10: MOV TEMP[7], TEMP[3]
11: MOV TEMP[8], TEMP[4]
12: MOV TEMP[17], IMM[4]
13: MOV TEMP[18], IMM[5]
14: MOV TEMP[19], IMM[6]
15: MOV TEMP[20], IMM[7]
16: MOV TEMP[9], TEMP[17]
17: MOV TEMP[10], TEMP[18]
18: MOV TEMP[11], TEMP[19]
19: MOV TEMP[12], TEMP[20]
20: MOV TEMP[21], IMM[8]
21: MOV TEMP[22], IMM[9]
22: MOV TEMP[23], IMM[10]
23: MOV TEMP[24], IMM[11]
24: MOV TEMP[13], TEMP[21]
25: MOV TEMP[14], TEMP[22]
26: MOV TEMP[15], TEMP[23]
27: MOV TEMP[16], TEMP[24]
28: MUL TEMP[25].x, CONST[0].xxxx, IMM[0].wwww
29: ARL ADDR[0].x, TEMP[25].xxxx
30: SNE TEMP[26], TEMP[ADDR[0].x+6](2), CONST[1]
31: DP4 TEMP[25].x, TEMP[26], TEMP[26]
32: SGE TEMP[25].x, -TEMP[25].xxxx, IMM[12].xxxx
33: IF TEMP[25].xxxx :0
34: MOV TEMP[25], IMM[12].xyxy
35: ELSE :0
36: MOV TEMP[25], IMM[12].yxxy
37: ENDIF
38: MOV OUT[2], TEMP[5]
39: MOV OUT[3], TEMP[6]
40: MOV OUT[4], TEMP[7]
41: MOV OUT[5], TEMP[8]
42: MOV OUT[6], TEMP[9]
43: MOV OUT[7], TEMP[10]
44: MOV OUT[8], TEMP[11]
45: MOV OUT[9], TEMP[12]
46: MOV OUT[10], TEMP[13]
47: MOV OUT[11], TEMP[14]
48: MOV OUT[12], TEMP[15]
49: MOV OUT[13], TEMP[16]
50: MOV OUT[1], TEMP[25]
51: MOV OUT[0], TEMP[0]
52: END
|