forked from tonioni/WinUAE
-
Notifications
You must be signed in to change notification settings - Fork 0
/
blitops.cpp
262 lines (260 loc) · 12 KB
/
blitops.cpp
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
/* This file generated automatically - do not edit */
#include "genblitter.h"
struct blitop blitops[256] = {
/* 00 */ { "0", 0 },
/* 01 */ { "~(srca | srcb | srcc)", 7 },
/* 02 */ { "(srcc & ~(srca | srcb))", 7 },
/* 03 */ { "~(srca | srcb)", 3 },
/* 04 */ { "(srcb & ~(srca | srcc))", 7 },
/* 05 */ { "~(srca | srcc)", 5 },
/* 06 */ { "(~srca & (srcb ^ srcc))", 7 },
/* 07 */ { "~(srca | (srcb & srcc))", 7 },
/* 08 */ { "(~srca & srcb & srcc)", 7 },
/* 09 */ { "~(srca | (srcb ^ srcc))", 7 },
/* 0a */ { "(~srca & srcc)", 5 },
/* 0b */ { "~(srca | (srcb & ~srcc))", 7 },
/* 0c */ { "(~srca & srcb)", 3 },
/* 0d */ { "~(srca | (~srcb & srcc))", 7 },
/* 0e */ { "(~srca & (srcb | srcc))", 7 },
/* 0f */ { "~srca", 1 },
/* 10 */ { "(srca & ~(srcb | srcc))", 7 },
/* 11 */ { "~(srcb | srcc)", 6 },
/* 12 */ { "(~srcb & (srca ^ srcc))", 7 },
/* 13 */ { "~(srcb | (srca & srcc))", 7 },
/* 14 */ { "(~srcc & (srca ^ srcb))", 7 },
/* 15 */ { "~(srcc | (srca & srcb))", 7 },
/* 16 */ { "(srca ^ ((srca & srcb) | (srcb ^ srcc)))", 7 },
/* 17 */ { "~(srca ^ ((srca ^ srcb) & (srca ^ srcc)))", 7 },
/* 18 */ { "((srca ^ srcb) & (srca ^ srcc))", 7 },
/* 19 */ { "(srcb ^ (~srcc | (srca & srcb)))", 7 },
/* 1a */ { "(srca ^ (srcc | (srca & srcb)))", 7 },
/* 1b */ { "(srca ^ (srcc | ~(srca ^ srcb)))", 7 },
/* 1c */ { "(srca ^ (srcb | (srca & srcc)))", 7 },
/* 1d */ { "(srca ^ (srcb | ~(srca ^ srcc)))", 7 },
/* 1e */ { "(srca ^ (srcb | srcc))", 7 },
/* 1f */ { "~(srca & (srcb | srcc))", 7 },
/* 20 */ { "(srca & ~srcb & srcc)", 7 },
/* 21 */ { "~(srcb | (srca ^ srcc))", 7 },
/* 22 */ { "(~srcb & srcc)", 6 },
/* 23 */ { "~(srcb | (srca & ~srcc))", 7 },
/* 24 */ { "((srca ^ srcb) & (srcb ^ srcc))", 7 },
/* 25 */ { "(srca ^ (~srcc | (srca & srcb)))", 7 },
/* 26 */ { "(srcb ^ (srcc | (srca & srcb)))", 7 },
/* 27 */ { "~(srca ^ (srcc & (srca ^ srcb)))", 7 },
/* 28 */ { "(srcc & (srca ^ srcb))", 7 },
/* 29 */ { "~(srca ^ srcb ^ (srcc | (srca & srcb)))", 7 },
/* 2a */ { "(srcc & ~(srca & srcb))", 7 },
/* 2b */ { "~(srca ^ ((srca ^ srcb) & (srcb ^ srcc)))", 7 },
/* 2c */ { "(srcb ^ (srca & (srcb | srcc)))", 7 },
/* 2d */ { "(srca ^ (srcb | ~srcc))", 7 },
/* 2e */ { "(srca ^ (srcb | (srca ^ srcc)))", 7 },
/* 2f */ { "~(srca & (srcb | ~srcc))", 7 },
/* 30 */ { "(srca & ~srcb)", 3 },
/* 31 */ { "~(srcb | (~srca & srcc))", 7 },
/* 32 */ { "(~srcb & (srca | srcc))", 7 },
/* 33 */ { "~srcb", 2 },
/* 34 */ { "(srcb ^ (srca | (srcb & srcc)))", 7 },
/* 35 */ { "(srcb ^ (srca | ~(srcb ^ srcc)))", 7 },
/* 36 */ { "(srcb ^ (srca | srcc))", 7 },
/* 37 */ { "~(srcb & (srca | srcc))", 7 },
/* 38 */ { "(srca ^ (srcb & (srca | srcc)))", 7 },
/* 39 */ { "(srcb ^ (srca | ~srcc))", 7 },
/* 3a */ { "(srcb ^ (srca | (srcb ^ srcc)))", 7 },
/* 3b */ { "~(srcb & (srca | ~srcc))", 7 },
/* 3c */ { "(srca ^ srcb)", 3 },
/* 3d */ { "(srca ^ (srcb | ~(srca | srcc)))", 7 },
/* 3e */ { "(srca ^ (srcb | (srca ^ (srca | srcc))))", 7 },
/* 3f */ { "~(srca & srcb)", 3 },
/* 40 */ { "(srca & srcb & ~srcc)", 7 },
/* 41 */ { "~(srcc | (srca ^ srcb))", 7 },
/* 42 */ { "((srca ^ srcc) & (srcb ^ srcc))", 7 },
/* 43 */ { "(srca ^ (~srcb | (srca & srcc)))", 7 },
/* 44 */ { "(srcb & ~srcc)", 6 },
/* 45 */ { "~(srcc | (srca & ~srcb))", 7 },
/* 46 */ { "(srcc ^ (srcb | (srca & srcc)))", 7 },
/* 47 */ { "~(srca ^ (srcb & (srca ^ srcc)))", 7 },
/* 48 */ { "(srcb & (srca ^ srcc))", 7 },
/* 49 */ { "~(srca ^ srcc ^ (srcb | (srca & srcc)))", 7 },
/* 4a */ { "(srcc ^ (srca & (srcb | srcc)))", 7 },
/* 4b */ { "(srca ^ (~srcb | srcc))", 7 },
/* 4c */ { "(srcb & ~(srca & srcc))", 7 },
/* 4d */ { "(srca ^ ((srca ^ srcb) | ~(srca ^ srcc)))", 7 },
/* 4e */ { "(srca ^ (srcc | (srca ^ srcb)))", 7 },
/* 4f */ { "~(srca & (~srcb | srcc))", 7 },
/* 50 */ { "(srca & ~srcc)", 5 },
/* 51 */ { "~(srcc | (~srca & srcb))", 7 },
/* 52 */ { "(srcc ^ (srca | (srcb & srcc)))", 7 },
/* 53 */ { "~(srcb ^ (srca & (srcb ^ srcc)))", 7 },
/* 54 */ { "(~srcc & (srca | srcb))", 7 },
/* 55 */ { "~srcc", 4 },
/* 56 */ { "(srcc ^ (srca | srcb))", 7 },
/* 57 */ { "~(srcc & (srca | srcb))", 7 },
/* 58 */ { "(srca ^ (srcc & (srca | srcb)))", 7 },
/* 59 */ { "(srcc ^ (srca | ~srcb))", 7 },
/* 5a */ { "(srca ^ srcc)", 5 },
/* 5b */ { "(srca ^ (srcc | ~(srca | srcb)))", 7 },
/* 5c */ { "(srcc ^ (srca | (srcb ^ srcc)))", 7 },
/* 5d */ { "~(srcc & (srca | ~srcb))", 7 },
/* 5e */ { "(srca ^ (srcc | (srca ^ (srca | srcb))))", 7 },
/* 5f */ { "~(srca & srcc)", 5 },
/* 60 */ { "(srca & (srcb ^ srcc))", 7 },
/* 61 */ { "~(srcb ^ srcc ^ (srca | (srcb & srcc)))", 7 },
/* 62 */ { "(srcc ^ (srcb & (srca | srcc)))", 7 },
/* 63 */ { "(srcb ^ (~srca | srcc))", 7 },
/* 64 */ { "(srcb ^ (srcc & (srca | srcb)))", 7 },
/* 65 */ { "(srcc ^ (~srca | srcb))", 7 },
/* 66 */ { "(srcb ^ srcc)", 6 },
/* 67 */ { "(srcb ^ (srcc | ~(srca | srcb)))", 7 },
/* 68 */ { "((srca & srcb) ^ (srcc & (srca | srcb)))", 7 },
/* 69 */ { "~(srca ^ srcb ^ srcc)", 7 },
/* 6a */ { "(srcc ^ (srca & srcb))", 7 },
/* 6b */ { "~(srca ^ srcb ^ (srcc & (srca | srcb)))", 7 },
/* 6c */ { "(srcb ^ (srca & srcc))", 7 },
/* 6d */ { "~(srca ^ srcc ^ (srcb & (srca | srcc)))", 7 },
/* 6e */ { "((~srca & srcb) | (srcb ^ srcc))", 7 },
/* 6f */ { "(~srca | (srcb ^ srcc))", 7 },
/* 70 */ { "(srca & ~(srcb & srcc))", 7 },
/* 71 */ { "~(srca ^ ((srca ^ srcb) | (srca ^ srcc)))", 7 },
/* 72 */ { "(srcb ^ (srcc | (srca ^ srcb)))", 7 },
/* 73 */ { "~(srcb & (~srca | srcc))", 7 },
/* 74 */ { "(srcc ^ (srcb | (srca ^ srcc)))", 7 },
/* 75 */ { "~(srcc & (~srca | srcb))", 7 },
/* 76 */ { "(srcb ^ (srcc | (srca ^ (srca & srcb))))", 7 },
/* 77 */ { "~(srcb & srcc)", 6 },
/* 78 */ { "(srca ^ (srcb & srcc))", 7 },
/* 79 */ { "~(srcb ^ srcc ^ (srca & (srcb | srcc)))", 7 },
/* 7a */ { "((srca & ~srcb) | (srca ^ srcc))", 7 },
/* 7b */ { "(~srcb | (srca ^ srcc))", 7 },
/* 7c */ { "((srca ^ srcb) | (srca & ~srcc))", 7 },
/* 7d */ { "(~srcc | (srca ^ srcb))", 7 },
/* 7e */ { "((srca ^ srcb) | (srca ^ srcc))", 7 },
/* 7f */ { "~(srca & srcb & srcc)", 7 },
/* 80 */ { "(srca & srcb & srcc)", 7 },
/* 81 */ { "~((srca ^ srcb) | (srca ^ srcc))", 7 },
/* 82 */ { "(srcc & ~(srca ^ srcb))", 7 },
/* 83 */ { "(srca ^ (~srcb | (srca & ~srcc)))", 7 },
/* 84 */ { "(srcb & ~(srca ^ srcc))", 7 },
/* 85 */ { "(srca ^ (~srcc | (srca & ~srcb)))", 7 },
/* 86 */ { "(srcb ^ srcc ^ (srca & (srcb | srcc)))", 7 },
/* 87 */ { "~(srca ^ (srcb & srcc))", 7 },
/* 88 */ { "(srcb & srcc)", 6 },
/* 89 */ { "(srcb ^ (~srcc & (~srca | srcb)))", 7 },
/* 8a */ { "(srcc & (~srca | srcb))", 7 },
/* 8b */ { "(srca ^ (~srcb | (srca ^ srcc)))", 7 },
/* 8c */ { "(srcb & (~srca | srcc))", 7 },
/* 8d */ { "(srca ^ (~srcc | (srca ^ srcb)))", 7 },
/* 8e */ { "(srca ^ ((srca ^ srcb) | (srca ^ srcc)))", 7 },
/* 8f */ { "(~srca | (srcb & srcc))", 7 },
/* 90 */ { "(srca & ~(srcb ^ srcc))", 7 },
/* 91 */ { "(srcb ^ (~srcc | (~srca & srcb)))", 7 },
/* 92 */ { "(srca ^ srcc ^ (srcb & (srca | srcc)))", 7 },
/* 93 */ { "~(srcb ^ (srca & srcc))", 7 },
/* 94 */ { "(srca ^ srcb ^ (srcc & (srca | srcb)))", 7 },
/* 95 */ { "~(srcc ^ (srca & srcb))", 7 },
/* 96 */ { "(srca ^ srcb ^ srcc)", 7 },
/* 97 */ { "(srca ^ srcb ^ (srcc | ~(srca | srcb)))", 7 },
/* 98 */ { "(srcb ^ (~srcc & (srca | srcb)))", 7 },
/* 99 */ { "~(srcb ^ srcc)", 6 },
/* 9a */ { "(srcc ^ (srca & ~srcb))", 7 },
/* 9b */ { "~(srcb ^ (srcc & (srca | srcb)))", 7 },
/* 9c */ { "(srcb ^ (srca & ~srcc))", 7 },
/* 9d */ { "~(srcc ^ (srcb & (srca | srcc)))", 7 },
/* 9e */ { "(srcb ^ srcc ^ (srca | (srcb & srcc)))", 7 },
/* 9f */ { "~(srca & (srcb ^ srcc))", 7 },
/* a0 */ { "(srca & srcc)", 5 },
/* a1 */ { "(srca ^ (~srcc & (srca | ~srcb)))", 7 },
/* a2 */ { "(srcc & (srca | ~srcb))", 7 },
/* a3 */ { "(srcb ^ (~srca | (srcb ^ srcc)))", 7 },
/* a4 */ { "(srca ^ (~srcc & (srca | srcb)))", 7 },
/* a5 */ { "~(srca ^ srcc)", 5 },
/* a6 */ { "(srcc ^ (~srca & srcb))", 7 },
/* a7 */ { "~(srca ^ (srcc & (srca | srcb)))", 7 },
/* a8 */ { "(srcc & (srca | srcb))", 7 },
/* a9 */ { "~(srcc ^ (srca | srcb))", 7 },
/* aa */ { "srcc", 4 },
/* ab */ { "(srcc | ~(srca | srcb))", 7 },
/* ac */ { "(srcb ^ (srca & (srcb ^ srcc)))", 7 },
/* ad */ { "~(srcc ^ (srca | (srcb & srcc)))", 7 },
/* ae */ { "(srcc | (~srca & srcb))", 7 },
/* af */ { "(~srca | srcc)", 5 },
/* b0 */ { "(srca & (~srcb | srcc))", 7 },
/* b1 */ { "~(srca ^ (srcc | (srca ^ srcb)))", 7 },
/* b2 */ { "(srca ^ ((srca ^ srcc) & (srcb ^ srcc)))", 7 },
/* b3 */ { "(~srcb | (srca & srcc))", 7 },
/* b4 */ { "(srca ^ (srcb & ~srcc))", 7 },
/* b5 */ { "~(srcc ^ (srca & (srcb | srcc)))", 7 },
/* b6 */ { "(srca ^ srcc ^ (srcb | (srca & srcc)))", 7 },
/* b7 */ { "~(srcb & (srca ^ srcc))", 7 },
/* b8 */ { "(srca ^ (srcb & (srca ^ srcc)))", 7 },
/* b9 */ { "~(srcc ^ (srcb | (srca & srcc)))", 7 },
/* ba */ { "(srcc | (srca & ~srcb))", 7 },
/* bb */ { "(~srcb | srcc)", 6 },
/* bc */ { "((srca ^ srcb) | (srca & srcc))", 7 },
/* bd */ { "((srca ^ srcb) | ~(srca ^ srcc))", 7 },
/* be */ { "(srcc | (srca ^ srcb))", 7 },
/* bf */ { "(srcc | ~(srca & srcb))", 7 },
/* c0 */ { "(srca & srcb)", 3 },
/* c1 */ { "(srca ^ (~srcb & (srca | ~srcc)))", 7 },
/* c2 */ { "(srca ^ (~srcb & (srca | srcc)))", 7 },
/* c3 */ { "~(srca ^ srcb)", 3 },
/* c4 */ { "(srcb & (srca | ~srcc))", 7 },
/* c5 */ { "~(srcb ^ (srca | (srcb ^ srcc)))", 7 },
/* c6 */ { "(srcb ^ (~srca & srcc))", 7 },
/* c7 */ { "~(srca ^ (srcb & (srca | srcc)))", 7 },
/* c8 */ { "(srcb & (srca | srcc))", 7 },
/* c9 */ { "~(srcb ^ (srca | srcc))", 7 },
/* ca */ { "(srcc ^ (srca & (srcb ^ srcc)))", 7 },
/* cb */ { "~(srcb ^ (srca | (srcb & srcc)))", 7 },
/* cc */ { "srcb", 2 },
/* cd */ { "(srcb | ~(srca | srcc))", 7 },
/* ce */ { "(srcb | (~srca & srcc))", 7 },
/* cf */ { "(~srca | srcb)", 3 },
/* d0 */ { "(srca & (srcb | ~srcc))", 7 },
/* d1 */ { "~(srca ^ (srcb | (srca ^ srcc)))", 7 },
/* d2 */ { "(srca ^ (~srcb & srcc))", 7 },
/* d3 */ { "~(srcb ^ (srca & (srcb | srcc)))", 7 },
/* d4 */ { "(srca ^ ((srca ^ srcb) & (srcb ^ srcc)))", 7 },
/* d5 */ { "(~srcc | (srca & srcb))", 7 },
/* d6 */ { "(srca ^ srcb ^ (srcc | (srca & srcb)))", 7 },
/* d7 */ { "~(srcc & (srca ^ srcb))", 7 },
/* d8 */ { "(srca ^ (srcc & (srca ^ srcb)))", 7 },
/* d9 */ { "~(srcb ^ (srcc | (srca & srcb)))", 7 },
/* da */ { "((srca & srcb) | (srca ^ srcc))", 7 },
/* db */ { "~((srca ^ srcb) & (srcb ^ srcc))", 7 },
/* dc */ { "(srcb | (srca & ~srcc))", 7 },
/* dd */ { "(srcb | ~srcc)", 6 },
/* de */ { "(srcb | (srca ^ srcc))", 7 },
/* df */ { "(srcb | ~(srca & srcc))", 7 },
/* e0 */ { "(srca & (srcb | srcc))", 7 },
/* e1 */ { "~(srca ^ (srcb | srcc))", 7 },
/* e2 */ { "(srcc ^ (srcb & (srca ^ srcc)))", 7 },
/* e3 */ { "~(srca ^ (srcb | (srca & srcc)))", 7 },
/* e4 */ { "(srcb ^ (srcc & (srca ^ srcb)))", 7 },
/* e5 */ { "~(srca ^ (srcc | (srca & srcb)))", 7 },
/* e6 */ { "((srca & srcb) | (srcb ^ srcc))", 7 },
/* e7 */ { "~((srca ^ srcb) & (srca ^ srcc))", 7 },
/* e8 */ { "(srca ^ ((srca ^ srcb) & (srca ^ srcc)))", 7 },
/* e9 */ { "(srca ^ srcb ^ (~srcc | (srca & srcb)))", 7 },
/* ea */ { "(srcc | (srca & srcb))", 7 },
/* eb */ { "(srcc | ~(srca ^ srcb))", 7 },
/* ec */ { "(srcb | (srca & srcc))", 7 },
/* ed */ { "(srcb | ~(srca ^ srcc))", 7 },
/* ee */ { "(srcb | srcc)", 6 },
/* ef */ { "(~srca | srcb | srcc)", 7 },
/* f0 */ { "srca", 1 },
/* f1 */ { "(srca | ~(srcb | srcc))", 7 },
/* f2 */ { "(srca | (~srcb & srcc))", 7 },
/* f3 */ { "(srca | ~srcb)", 3 },
/* f4 */ { "(srca | (srcb & ~srcc))", 7 },
/* f5 */ { "(srca | ~srcc)", 5 },
/* f6 */ { "(srca | (srcb ^ srcc))", 7 },
/* f7 */ { "(srca | ~(srcb & srcc))", 7 },
/* f8 */ { "(srca | (srcb & srcc))", 7 },
/* f9 */ { "(srca | ~(srcb ^ srcc))", 7 },
/* fa */ { "(srca | srcc)", 5 },
/* fb */ { "(srca | ~srcb | srcc)", 7 },
/* fc */ { "(srca | srcb)", 3 },
/* fd */ { "(srca | srcb | ~srcc)", 7 },
/* fe */ { "(srca | srcb | srcc)", 7 },
/* ff */ { "0xFFFFFFFF", 0 }
};