Glide Plugin GLES2 port from mupen64plus-ae, but with special FrameSkip code
[mupen64plus-pandora.git] / source / gles2glide64 / src / GlideHQ / TextureFilters_lq2x.h
CommitLineData
98e75f2d 1/*
2Copyright (C) 2003 Rice1964
3
4This program is free software; you can redistribute it and/or
5modify it under the terms of the GNU General Public License
6as published by the Free Software Foundation; either version 2
7of the License, or (at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program; if not, write to the Free Software
16Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18*/
19
20/* Copyright (C) 2007 Hiroshi Morii <koolsmoky(at)users.sourceforge.net>
21 * Modified for the Texture Filtering library
22 */
23
24case 0 :
25case 2 :
26case 4 :
27case 6 :
28case 8 :
29case 12 :
30case 16 :
31case 20 :
32case 24 :
33case 28 :
34case 32 :
35case 34 :
36case 36 :
37case 38 :
38case 40 :
39case 44 :
40case 48 :
41case 52 :
42case 56 :
43case 60 :
44case 64 :
45case 66 :
46case 68 :
47case 70 :
48case 96 :
49case 98 :
50case 100 :
51case 102 :
52case 128 :
53case 130 :
54case 132 :
55case 134 :
56case 136 :
57case 140 :
58case 144 :
59case 148 :
60case 152 :
61case 156 :
62case 160 :
63case 162 :
64case 164 :
65case 166 :
66case 168 :
67case 172 :
68case 176 :
69case 180 :
70case 184 :
71case 188 :
72case 192 :
73case 194 :
74case 196 :
75case 198 :
76case 224 :
77case 226 :
78case 228 :
79case 230 :
80{
81 P0 = IC(0);
82 P1 = IC(0);
83 P2 = IC(0);
84 P3 = IC(0);
85} break;
86case 1 :
87case 5 :
88case 9 :
89case 13 :
90case 17 :
91case 21 :
92case 25 :
93case 29 :
94case 33 :
95case 37 :
96case 41 :
97case 45 :
98case 49 :
99case 53 :
100case 57 :
101case 61 :
102case 65 :
103case 69 :
104case 97 :
105case 101 :
106case 129 :
107case 133 :
108case 137 :
109case 141 :
110case 145 :
111case 149 :
112case 153 :
113case 157 :
114case 161 :
115case 165 :
116case 169 :
117case 173 :
118case 177 :
119case 181 :
120case 185 :
121case 189 :
122case 193 :
123case 197 :
124case 225 :
125case 229 :
126{
127 P0 = IC(1);
128 P1 = IC(1);
129 P2 = IC(1);
130 P3 = IC(1);
131} break;
132case 3 :
133case 35 :
134case 67 :
135case 99 :
136case 131 :
137case 163 :
138case 195 :
139case 227 :
140{
141 P0 = IC(2);
142 P1 = IC(2);
143 P2 = IC(2);
144 P3 = IC(2);
145} break;
146case 7 :
147case 39 :
148case 71 :
149case 103 :
150case 135 :
151case 167 :
152case 199 :
153case 231 :
154{
155 P0 = IC(3);
156 P1 = IC(3);
157 P2 = IC(3);
158 P3 = IC(3);
159} break;
160case 10 :
161case 138 :
162{
163 P1 = IC(0);
164 P2 = IC(0);
165 P3 = IC(0);
166 if (HQ2X_MUL) {
167 P0 = IC(0);
168 } else {
169 P0 = I211(0, 1, 3);
170 }
171} break;
172case 11 :
173case 27 :
174case 75 :
175case 139 :
176case 155 :
177case 203 :
178{
179 P1 = IC(2);
180 P2 = IC(2);
181 P3 = IC(2);
182 if (HQ2X_MUL) {
183 P0 = IC(2);
184 } else {
185 P0 = I211(2, 1, 3);
186 }
187} break;
188case 14 :
189case 142 :
190{
191 P2 = IC(0);
192 P3 = IC(0);
193 if (HQ2X_MUL) {
194 P0 = IC(0);
195 P1 = IC(0);
196 } else {
197 P0 = I332(1, 3, 0);
198 P1 = I31(0, 1);
199 }
200} break;
201case 15 :
202case 143 :
203case 207 :
204{
205 P2 = IC(4);
206 P3 = IC(4);
207 if (HQ2X_MUL) {
208 P0 = IC(4);
209 P1 = IC(4);
210 } else {
211 P0 = I332(1, 3, 4);
212 P1 = I31(4, 1);
213 }
214} break;
215case 18 :
216case 22 :
217case 30 :
218case 50 :
219case 54 :
220case 62 :
221case 86 :
222case 118 :
223{
224 P0 = IC(0);
225 P2 = IC(0);
226 P3 = IC(0);
227 if (HQ2X_MUR) {
228 P1 = IC(0);
229 } else {
230 P1 = I211(0, 1, 5);
231 }
232} break;
233case 19 :
234case 51 :
235{
236 P2 = IC(2);
237 P3 = IC(2);
238 if (HQ2X_MUR) {
239 P0 = IC(2);
240 P1 = IC(2);
241 } else {
242 P0 = I31(2, 1);
243 P1 = I332(1, 5, 2);
244 }
245} break;
246case 23 :
247case 55 :
248case 119 :
249{
250 P2 = IC(3);
251 P3 = IC(3);
252 if (HQ2X_MUR) {
253 P0 = IC(3);
254 P1 = IC(3);
255 } else {
256 P0 = I31(3, 1);
257 P1 = I332(1, 5, 3);
258 }
259} break;
260case 26 :
261{
262 P2 = IC(0);
263 P3 = IC(0);
264 if (HQ2X_MUL) {
265 P0 = IC(0);
266 } else {
267 P0 = I211(0, 1, 3);
268 }
269 if (HQ2X_MUR) {
270 P1 = IC(0);
271 } else {
272 P1 = I211(0, 1, 5);
273 }
274} break;
275case 31 :
276case 95 :
277{
278 P2 = IC(4);
279 P3 = IC(4);
280 if (HQ2X_MUL) {
281 P0 = IC(4);
282 } else {
283 P0 = I211(4, 1, 3);
284 }
285 if (HQ2X_MUR) {
286 P1 = IC(4);
287 } else {
288 P1 = I211(4, 1, 5);
289 }
290} break;
291case 42 :
292case 170 :
293{
294 P1 = IC(0);
295 P3 = IC(0);
296 if (HQ2X_MUL) {
297 P0 = IC(0);
298 P2 = IC(0);
299 } else {
300 P0 = I332(1, 3, 0);
301 P2 = I31(0, 3);
302 }
303} break;
304case 43 :
305case 171 :
306case 187 :
307{
308 P1 = IC(2);
309 P3 = IC(2);
310 if (HQ2X_MUL) {
311 P0 = IC(2);
312 P2 = IC(2);
313 } else {
314 P0 = I332(1, 3, 2);
315 P2 = I31(2, 3);
316 }
317} break;
318case 46 :
319case 174 :
320{
321 P1 = IC(0);
322 P2 = IC(0);
323 P3 = IC(0);
324 if (HQ2X_MUL) {
325 P0 = IC(0);
326 } else {
327 P0 = I611(0, 1, 3);
328 }
329} break;
330case 47 :
331case 175 :
332{
333 P1 = IC(4);
334 P2 = IC(4);
335 P3 = IC(4);
336 if (HQ2X_MUL) {
337 P0 = IC(4);
338 } else {
339 P0 = I1411(4, 1, 3);
340 }
341} break;
342case 58 :
343case 154 :
344case 186 :
345{
346 P2 = IC(0);
347 P3 = IC(0);
348 if (HQ2X_MUL) {
349 P0 = IC(0);
350 } else {
351 P0 = I611(0, 1, 3);
352 }
353 if (HQ2X_MUR) {
354 P1 = IC(0);
355 } else {
356 P1 = I611(0, 1, 5);
357 }
358} break;
359case 59 :
360{
361 P2 = IC(2);
362 P3 = IC(2);
363 if (HQ2X_MUL) {
364 P0 = IC(2);
365 } else {
366 P0 = I211(2, 1, 3);
367 }
368 if (HQ2X_MUR) {
369 P1 = IC(2);
370 } else {
371 P1 = I611(2, 1, 5);
372 }
373} break;
374case 63 :
375{
376 P2 = IC(4);
377 P3 = IC(4);
378 if (HQ2X_MUL) {
379 P0 = IC(4);
380 } else {
381 P0 = I1411(4, 1, 3);
382 }
383 if (HQ2X_MUR) {
384 P1 = IC(4);
385 } else {
386 P1 = I211(4, 1, 5);
387 }
388} break;
389case 72 :
390case 76 :
391case 104 :
392case 106 :
393case 108 :
394case 110 :
395case 120 :
396case 124 :
397{
398 P0 = IC(0);
399 P1 = IC(0);
400 P3 = IC(0);
401 if (HQ2X_MDL) {
402 P2 = IC(0);
403 } else {
404 P2 = I211(0, 3, 7);
405 }
406} break;
407case 73 :
408case 77 :
409case 105 :
410case 109 :
411case 125 :
412{
413 P1 = IC(1);
414 P3 = IC(1);
415 if (HQ2X_MDL) {
416 P0 = IC(1);
417 P2 = IC(1);
418 } else {
419 P0 = I31(1, 3);
420 P2 = I332(3, 7, 1);
421 }
422} break;
423case 74 :
424{
425 P1 = IC(0);
426 P3 = IC(0);
427 if (HQ2X_MDL) {
428 P2 = IC(0);
429 } else {
430 P2 = I211(0, 3, 7);
431 }
432 if (HQ2X_MUL) {
433 P0 = IC(0);
434 } else {
435 P0 = I211(0, 1, 3);
436 }
437} break;
438case 78 :
439case 202 :
440case 206 :
441{
442 P1 = IC(0);
443 P3 = IC(0);
444 if (HQ2X_MDL) {
445 P2 = IC(0);
446 } else {
447 P2 = I611(0, 3, 7);
448 }
449 if (HQ2X_MUL) {
450 P0 = IC(0);
451 } else {
452 P0 = I611(0, 1, 3);
453 }
454} break;
455case 79 :
456{
457 P1 = IC(4);
458 P3 = IC(4);
459 if (HQ2X_MDL) {
460 P2 = IC(4);
461 } else {
462 P2 = I611(4, 3, 7);
463 }
464 if (HQ2X_MUL) {
465 P0 = IC(4);
466 } else {
467 P0 = I211(4, 1, 3);
468 }
469} break;
470case 80 :
471case 208 :
472case 210 :
473case 216 :
474{
475 P0 = IC(0);
476 P1 = IC(0);
477 P2 = IC(0);
478 if (HQ2X_MDR) {
479 P3 = IC(0);
480 } else {
481 P3 = I211(0, 5, 7);
482 }
483} break;
484case 81 :
485case 209 :
486case 217 :
487{
488 P0 = IC(1);
489 P1 = IC(1);
490 P2 = IC(1);
491 if (HQ2X_MDR) {
492 P3 = IC(1);
493 } else {
494 P3 = I211(1, 5, 7);
495 }
496} break;
497case 82 :
498case 214 :
499case 222 :
500{
501 P0 = IC(0);
502 P2 = IC(0);
503 if (HQ2X_MDR) {
504 P3 = IC(0);
505 } else {
506 P3 = I211(0, 5, 7);
507 }
508 if (HQ2X_MUR) {
509 P1 = IC(0);
510 } else {
511 P1 = I211(0, 1, 5);
512 }
513} break;
514case 83 :
515case 115 :
516{
517 P0 = IC(2);
518 P2 = IC(2);
519 if (HQ2X_MDR) {
520 P3 = IC(2);
521 } else {
522 P3 = I611(2, 5, 7);
523 }
524 if (HQ2X_MUR) {
525 P1 = IC(2);
526 } else {
527 P1 = I611(2, 1, 5);
528 }
529} break;
530case 84 :
531case 212 :
532{
533 P0 = IC(0);
534 P2 = IC(0);
535 if (HQ2X_MDR) {
536 P1 = IC(0);
537 P3 = IC(0);
538 } else {
539 P1 = I31(0, 5);
540 P3 = I332(5, 7, 0);
541 }
542} break;
543case 85 :
544case 213 :
545case 221 :
546{
547 P0 = IC(1);
548 P2 = IC(1);
549 if (HQ2X_MDR) {
550 P1 = IC(1);
551 P3 = IC(1);
552 } else {
553 P1 = I31(1, 5);
554 P3 = I332(5, 7, 1);
555 }
556} break;
557case 87 :
558{
559 P0 = IC(3);
560 P2 = IC(3);
561 if (HQ2X_MDR) {
562 P3 = IC(3);
563 } else {
564 P3 = I611(3, 5, 7);
565 }
566 if (HQ2X_MUR) {
567 P1 = IC(3);
568 } else {
569 P1 = I211(3, 1, 5);
570 }
571} break;
572case 88 :
573case 248 :
574case 250 :
575{
576 P0 = IC(0);
577 P1 = IC(0);
578 if (HQ2X_MDL) {
579 P2 = IC(0);
580 } else {
581 P2 = I211(0, 3, 7);
582 }
583 if (HQ2X_MDR) {
584 P3 = IC(0);
585 } else {
586 P3 = I211(0, 5, 7);
587 }
588} break;
589case 89 :
590case 93 :
591{
592 P0 = IC(1);
593 P1 = IC(1);
594 if (HQ2X_MDL) {
595 P2 = IC(1);
596 } else {
597 P2 = I611(1, 3, 7);
598 }
599 if (HQ2X_MDR) {
600 P3 = IC(1);
601 } else {
602 P3 = I611(1, 5, 7);
603 }
604} break;
605case 90 :
606{
607 if (HQ2X_MDL) {
608 P2 = IC(0);
609 } else {
610 P2 = I611(0, 3, 7);
611 }
612 if (HQ2X_MDR) {
613 P3 = IC(0);
614 } else {
615 P3 = I611(0, 5, 7);
616 }
617 if (HQ2X_MUL) {
618 P0 = IC(0);
619 } else {
620 P0 = I611(0, 1, 3);
621 }
622 if (HQ2X_MUR) {
623 P1 = IC(0);
624 } else {
625 P1 = I611(0, 1, 5);
626 }
627} break;
628case 91 :
629{
630 if (HQ2X_MDL) {
631 P2 = IC(2);
632 } else {
633 P2 = I611(2, 3, 7);
634 }
635 if (HQ2X_MDR) {
636 P3 = IC(2);
637 } else {
638 P3 = I611(2, 5, 7);
639 }
640 if (HQ2X_MUL) {
641 P0 = IC(2);
642 } else {
643 P0 = I211(2, 1, 3);
644 }
645 if (HQ2X_MUR) {
646 P1 = IC(2);
647 } else {
648 P1 = I611(2, 1, 5);
649 }
650} break;
651case 92 :
652{
653 P0 = IC(0);
654 P1 = IC(0);
655 if (HQ2X_MDL) {
656 P2 = IC(0);
657 } else {
658 P2 = I611(0, 3, 7);
659 }
660 if (HQ2X_MDR) {
661 P3 = IC(0);
662 } else {
663 P3 = I611(0, 5, 7);
664 }
665} break;
666case 94 :
667{
668 if (HQ2X_MDL) {
669 P2 = IC(0);
670 } else {
671 P2 = I611(0, 3, 7);
672 }
673 if (HQ2X_MDR) {
674 P3 = IC(0);
675 } else {
676 P3 = I611(0, 5, 7);
677 }
678 if (HQ2X_MUL) {
679 P0 = IC(0);
680 } else {
681 P0 = I611(0, 1, 3);
682 }
683 if (HQ2X_MUR) {
684 P1 = IC(0);
685 } else {
686 P1 = I211(0, 1, 5);
687 }
688} break;
689case 107 :
690case 123 :
691{
692 P1 = IC(2);
693 P3 = IC(2);
694 if (HQ2X_MDL) {
695 P2 = IC(2);
696 } else {
697 P2 = I211(2, 3, 7);
698 }
699 if (HQ2X_MUL) {
700 P0 = IC(2);
701 } else {
702 P0 = I211(2, 1, 3);
703 }
704} break;
705case 111 :
706{
707 P1 = IC(4);
708 P3 = IC(4);
709 if (HQ2X_MDL) {
710 P2 = IC(4);
711 } else {
712 P2 = I211(4, 3, 7);
713 }
714 if (HQ2X_MUL) {
715 P0 = IC(4);
716 } else {
717 P0 = I1411(4, 1, 3);
718 }
719} break;
720case 112 :
721case 240 :
722{
723 P0 = IC(0);
724 P1 = IC(0);
725 if (HQ2X_MDR) {
726 P2 = IC(0);
727 P3 = IC(0);
728 } else {
729 P2 = I31(0, 7);
730 P3 = I332(5, 7, 0);
731 }
732} break;
733case 113 :
734case 241 :
735{
736 P0 = IC(1);
737 P1 = IC(1);
738 if (HQ2X_MDR) {
739 P2 = IC(1);
740 P3 = IC(1);
741 } else {
742 P2 = I31(1, 7);
743 P3 = I332(5, 7, 1);
744 }
745} break;
746case 114 :
747{
748 P0 = IC(0);
749 P2 = IC(0);
750 if (HQ2X_MDR) {
751 P3 = IC(0);
752 } else {
753 P3 = I611(0, 5, 7);
754 }
755 if (HQ2X_MUR) {
756 P1 = IC(0);
757 } else {
758 P1 = I611(0, 1, 5);
759 }
760} break;
761case 116 :
762{
763 P0 = IC(0);
764 P1 = IC(0);
765 P2 = IC(0);
766 if (HQ2X_MDR) {
767 P3 = IC(0);
768 } else {
769 P3 = I611(0, 5, 7);
770 }
771} break;
772case 117 :
773{
774 P0 = IC(1);
775 P1 = IC(1);
776 P2 = IC(1);
777 if (HQ2X_MDR) {
778 P3 = IC(1);
779 } else {
780 P3 = I611(1, 5, 7);
781 }
782} break;
783case 121 :
784{
785 P0 = IC(1);
786 P1 = IC(1);
787 if (HQ2X_MDL) {
788 P2 = IC(1);
789 } else {
790 P2 = I211(1, 3, 7);
791 }
792 if (HQ2X_MDR) {
793 P3 = IC(1);
794 } else {
795 P3 = I611(1, 5, 7);
796 }
797} break;
798case 122 :
799{
800 if (HQ2X_MDL) {
801 P2 = IC(0);
802 } else {
803 P2 = I211(0, 3, 7);
804 }
805 if (HQ2X_MDR) {
806 P3 = IC(0);
807 } else {
808 P3 = I611(0, 5, 7);
809 }
810 if (HQ2X_MUL) {
811 P0 = IC(0);
812 } else {
813 P0 = I611(0, 1, 3);
814 }
815 if (HQ2X_MUR) {
816 P1 = IC(0);
817 } else {
818 P1 = I611(0, 1, 5);
819 }
820} break;
821case 126 :
822{
823 P0 = IC(0);
824 P3 = IC(0);
825 if (HQ2X_MDL) {
826 P2 = IC(0);
827 } else {
828 P2 = I211(0, 3, 7);
829 }
830 if (HQ2X_MUR) {
831 P1 = IC(0);
832 } else {
833 P1 = I211(0, 1, 5);
834 }
835} break;
836case 127 :
837{
838 P3 = IC(4);
839 if (HQ2X_MDL) {
840 P2 = IC(4);
841 } else {
842 P2 = I211(4, 3, 7);
843 }
844 if (HQ2X_MUL) {
845 P0 = IC(4);
846 } else {
847 P0 = I1411(4, 1, 3);
848 }
849 if (HQ2X_MUR) {
850 P1 = IC(4);
851 } else {
852 P1 = I211(4, 1, 5);
853 }
854} break;
855case 146 :
856case 150 :
857case 178 :
858case 182 :
859case 190 :
860{
861 P0 = IC(0);
862 P2 = IC(0);
863 if (HQ2X_MUR) {
864 P1 = IC(0);
865 P3 = IC(0);
866 } else {
867 P1 = I332(1, 5, 0);
868 P3 = I31(0, 5);
869 }
870} break;
871case 147 :
872case 179 :
873{
874 P0 = IC(2);
875 P2 = IC(2);
876 P3 = IC(2);
877 if (HQ2X_MUR) {
878 P1 = IC(2);
879 } else {
880 P1 = I611(2, 1, 5);
881 }
882} break;
883case 151 :
884case 183 :
885{
886 P0 = IC(3);
887 P2 = IC(3);
888 P3 = IC(3);
889 if (HQ2X_MUR) {
890 P1 = IC(3);
891 } else {
892 P1 = I1411(3, 1, 5);
893 }
894} break;
895case 158 :
896{
897 P2 = IC(0);
898 P3 = IC(0);
899 if (HQ2X_MUL) {
900 P0 = IC(0);
901 } else {
902 P0 = I611(0, 1, 3);
903 }
904 if (HQ2X_MUR) {
905 P1 = IC(0);
906 } else {
907 P1 = I211(0, 1, 5);
908 }
909} break;
910case 159 :
911{
912 P2 = IC(4);
913 P3 = IC(4);
914 if (HQ2X_MUL) {
915 P0 = IC(4);
916 } else {
917 P0 = I211(4, 1, 3);
918 }
919 if (HQ2X_MUR) {
920 P1 = IC(4);
921 } else {
922 P1 = I1411(4, 1, 5);
923 }
924} break;
925case 191 :
926{
927 P2 = IC(4);
928 P3 = IC(4);
929 if (HQ2X_MUL) {
930 P0 = IC(4);
931 } else {
932 P0 = I1411(4, 1, 3);
933 }
934 if (HQ2X_MUR) {
935 P1 = IC(4);
936 } else {
937 P1 = I1411(4, 1, 5);
938 }
939} break;
940case 200 :
941case 204 :
942case 232 :
943case 236 :
944case 238 :
945{
946 P0 = IC(0);
947 P1 = IC(0);
948 if (HQ2X_MDL) {
949 P2 = IC(0);
950 P3 = IC(0);
951 } else {
952 P2 = I332(3, 7, 0);
953 P3 = I31(0, 7);
954 }
955} break;
956case 201 :
957case 205 :
958{
959 P0 = IC(1);
960 P1 = IC(1);
961 P3 = IC(1);
962 if (HQ2X_MDL) {
963 P2 = IC(1);
964 } else {
965 P2 = I611(1, 3, 7);
966 }
967} break;
968case 211 :
969{
970 P0 = IC(2);
971 P1 = IC(2);
972 P2 = IC(2);
973 if (HQ2X_MDR) {
974 P3 = IC(2);
975 } else {
976 P3 = I211(2, 5, 7);
977 }
978} break;
979case 215 :
980{
981 P0 = IC(3);
982 P2 = IC(3);
983 if (HQ2X_MDR) {
984 P3 = IC(3);
985 } else {
986 P3 = I211(3, 5, 7);
987 }
988 if (HQ2X_MUR) {
989 P1 = IC(3);
990 } else {
991 P1 = I1411(3, 1, 5);
992 }
993} break;
994case 218 :
995{
996 if (HQ2X_MDL) {
997 P2 = IC(0);
998 } else {
999 P2 = I611(0, 3, 7);
1000 }
1001 if (HQ2X_MDR) {
1002 P3 = IC(0);
1003 } else {
1004 P3 = I211(0, 5, 7);
1005 }
1006 if (HQ2X_MUL) {
1007 P0 = IC(0);
1008 } else {
1009 P0 = I611(0, 1, 3);
1010 }
1011 if (HQ2X_MUR) {
1012 P1 = IC(0);
1013 } else {
1014 P1 = I611(0, 1, 5);
1015 }
1016} break;
1017case 219 :
1018{
1019 P1 = IC(2);
1020 P2 = IC(2);
1021 if (HQ2X_MDR) {
1022 P3 = IC(2);
1023 } else {
1024 P3 = I211(2, 5, 7);
1025 }
1026 if (HQ2X_MUL) {
1027 P0 = IC(2);
1028 } else {
1029 P0 = I211(2, 1, 3);
1030 }
1031} break;
1032case 220 :
1033{
1034 P0 = IC(0);
1035 P1 = IC(0);
1036 if (HQ2X_MDL) {
1037 P2 = IC(0);
1038 } else {
1039 P2 = I611(0, 3, 7);
1040 }
1041 if (HQ2X_MDR) {
1042 P3 = IC(0);
1043 } else {
1044 P3 = I211(0, 5, 7);
1045 }
1046} break;
1047case 223 :
1048{
1049 P2 = IC(4);
1050 if (HQ2X_MDR) {
1051 P3 = IC(4);
1052 } else {
1053 P3 = I211(4, 5, 7);
1054 }
1055 if (HQ2X_MUL) {
1056 P0 = IC(4);
1057 } else {
1058 P0 = I211(4, 1, 3);
1059 }
1060 if (HQ2X_MUR) {
1061 P1 = IC(4);
1062 } else {
1063 P1 = I1411(4, 1, 5);
1064 }
1065} break;
1066case 233 :
1067case 237 :
1068{
1069 P0 = IC(1);
1070 P1 = IC(1);
1071 P3 = IC(1);
1072 if (HQ2X_MDL) {
1073 P2 = IC(1);
1074 } else {
1075 P2 = I1411(1, 3, 7);
1076 }
1077} break;
1078case 234 :
1079{
1080 P1 = IC(0);
1081 P3 = IC(0);
1082 if (HQ2X_MDL) {
1083 P2 = IC(0);
1084 } else {
1085 P2 = I211(0, 3, 7);
1086 }
1087 if (HQ2X_MUL) {
1088 P0 = IC(0);
1089 } else {
1090 P0 = I611(0, 1, 3);
1091 }
1092} break;
1093case 235 :
1094{
1095 P1 = IC(2);
1096 P3 = IC(2);
1097 if (HQ2X_MDL) {
1098 P2 = IC(2);
1099 } else {
1100 P2 = I1411(2, 3, 7);
1101 }
1102 if (HQ2X_MUL) {
1103 P0 = IC(2);
1104 } else {
1105 P0 = I211(2, 1, 3);
1106 }
1107} break;
1108case 239 :
1109{
1110 P1 = IC(4);
1111 P3 = IC(4);
1112 if (HQ2X_MDL) {
1113 P2 = IC(4);
1114 } else {
1115 P2 = I1411(4, 3, 7);
1116 }
1117 if (HQ2X_MUL) {
1118 P0 = IC(4);
1119 } else {
1120 P0 = I1411(4, 1, 3);
1121 }
1122} break;
1123case 242 :
1124{
1125 P0 = IC(0);
1126 P2 = IC(0);
1127 if (HQ2X_MDR) {
1128 P3 = IC(0);
1129 } else {
1130 P3 = I211(0, 5, 7);
1131 }
1132 if (HQ2X_MUR) {
1133 P1 = IC(0);
1134 } else {
1135 P1 = I611(0, 1, 5);
1136 }
1137} break;
1138case 243 :
1139{
1140 P0 = IC(2);
1141 P1 = IC(2);
1142 if (HQ2X_MDR) {
1143 P2 = IC(2);
1144 P3 = IC(2);
1145 } else {
1146 P2 = I31(2, 7);
1147 P3 = I332(5, 7, 2);
1148 }
1149} break;
1150case 244 :
1151{
1152 P0 = IC(0);
1153 P1 = IC(0);
1154 P2 = IC(0);
1155 if (HQ2X_MDR) {
1156 P3 = IC(0);
1157 } else {
1158 P3 = I1411(0, 5, 7);
1159 }
1160} break;
1161case 245 :
1162{
1163 P0 = IC(1);
1164 P1 = IC(1);
1165 P2 = IC(1);
1166 if (HQ2X_MDR) {
1167 P3 = IC(1);
1168 } else {
1169 P3 = I1411(1, 5, 7);
1170 }
1171} break;
1172case 246 :
1173{
1174 P0 = IC(0);
1175 P2 = IC(0);
1176 if (HQ2X_MDR) {
1177 P3 = IC(0);
1178 } else {
1179 P3 = I1411(0, 5, 7);
1180 }
1181 if (HQ2X_MUR) {
1182 P1 = IC(0);
1183 } else {
1184 P1 = I211(0, 1, 5);
1185 }
1186} break;
1187case 247 :
1188{
1189 P0 = IC(3);
1190 P2 = IC(3);
1191 if (HQ2X_MDR) {
1192 P3 = IC(3);
1193 } else {
1194 P3 = I1411(3, 5, 7);
1195 }
1196 if (HQ2X_MUR) {
1197 P1 = IC(3);
1198 } else {
1199 P1 = I1411(3, 1, 5);
1200 }
1201} break;
1202case 249 :
1203{
1204 P0 = IC(1);
1205 P1 = IC(1);
1206 if (HQ2X_MDL) {
1207 P2 = IC(1);
1208 } else {
1209 P2 = I1411(1, 3, 7);
1210 }
1211 if (HQ2X_MDR) {
1212 P3 = IC(1);
1213 } else {
1214 P3 = I211(1, 5, 7);
1215 }
1216} break;
1217case 251 :
1218{
1219 P1 = IC(2);
1220 if (HQ2X_MDL) {
1221 P2 = IC(2);
1222 } else {
1223 P2 = I1411(2, 3, 7);
1224 }
1225 if (HQ2X_MDR) {
1226 P3 = IC(2);
1227 } else {
1228 P3 = I211(2, 5, 7);
1229 }
1230 if (HQ2X_MUL) {
1231 P0 = IC(2);
1232 } else {
1233 P0 = I211(2, 1, 3);
1234 }
1235} break;
1236case 252 :
1237{
1238 P0 = IC(0);
1239 P1 = IC(0);
1240 if (HQ2X_MDL) {
1241 P2 = IC(0);
1242 } else {
1243 P2 = I211(0, 3, 7);
1244 }
1245 if (HQ2X_MDR) {
1246 P3 = IC(0);
1247 } else {
1248 P3 = I1411(0, 5, 7);
1249 }
1250} break;
1251case 253 :
1252{
1253 P0 = IC(1);
1254 P1 = IC(1);
1255 if (HQ2X_MDL) {
1256 P2 = IC(1);
1257 } else {
1258 P2 = I1411(1, 3, 7);
1259 }
1260 if (HQ2X_MDR) {
1261 P3 = IC(1);
1262 } else {
1263 P3 = I1411(1, 5, 7);
1264 }
1265} break;
1266case 254 :
1267{
1268 P0 = IC(0);
1269 if (HQ2X_MDL) {
1270 P2 = IC(0);
1271 } else {
1272 P2 = I211(0, 3, 7);
1273 }
1274 if (HQ2X_MDR) {
1275 P3 = IC(0);
1276 } else {
1277 P3 = I1411(0, 5, 7);
1278 }
1279 if (HQ2X_MUR) {
1280 P1 = IC(0);
1281 } else {
1282 P1 = I211(0, 1, 5);
1283 }
1284} break;
1285case 255 :
1286{
1287 if (HQ2X_MDL) {
1288 P2 = IC(4);
1289 } else {
1290 P2 = I1411(4, 3, 7);
1291 }
1292 if (HQ2X_MDR) {
1293 P3 = IC(4);
1294 } else {
1295 P3 = I1411(4, 5, 7);
1296 }
1297 if (HQ2X_MUL) {
1298 P0 = IC(4);
1299 } else {
1300 P0 = I1411(4, 1, 3);
1301 }
1302 if (HQ2X_MUR) {
1303 P1 = IC(4);
1304 } else {
1305 P1 = I1411(4, 1, 5);
1306 }
1307} break;