annotate libmpeg2/vis.h @ 13395:07708ec98d87

New MD5 sum video output driver. For every frame, it calculates the MD5 sum and writes a list of those sums to an, optionally specified, output file. It does not rely on external programs to be installed. The MD5 sum code is borrowed from the uCIFS library, written by Christopher R. Hertel in 2004 and released under the LGPL license. Note: This driver is not yet activated and will not be compiled and linked to libvo. A separate patch will take care of that. This is just for adding the files to the repository.
author ivo
date Mon, 20 Sep 2004 01:01:08 +0000
parents d0a8810e155c
children da2271c341ee
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
1 /*
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
2 * vis.h
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
3 * Copyright (C) 2003 David S. Miller <davem@redhat.com>
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
4 *
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
5 * This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
6 * See http://libmpeg2.sourceforge.net/ for updates.
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
7 *
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
8 * mpeg2dec is free software; you can redistribute it and/or modify
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
11 * (at your option) any later version.
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
12 *
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
13 * mpeg2dec is distributed in the hope that it will be useful,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
16 * GNU General Public License for more details.
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
17 *
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
21 */
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
22
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
23 /* You may be asking why I hard-code the instruction opcodes and don't
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
24 * use the normal VIS assembler mnenomics for the VIS instructions.
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
25 *
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
26 * The reason is that Sun, in their infinite wisdom, decided that a binary
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
27 * using a VIS instruction will cause it to be marked (in the ELF headers)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
28 * as doing so, and this prevents the OS from loading such binaries if the
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
29 * current cpu doesn't have VIS. There is no way to easily override this
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
30 * behavior of the assembler that I am aware of.
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
31 *
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
32 * This totally defeats what libmpeg2 is trying to do which is allow a
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
33 * single binary to be created, and then detect the availability of VIS
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
34 * at runtime.
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
35 *
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
36 * I'm not saying that tainting the binary by default is bad, rather I'm
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
37 * saying that not providing a way to override this easily unnecessarily
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
38 * ties people's hands.
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
39 *
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
40 * Thus, we do the opcode encoding by hand and output 32-bit words in
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
41 * the assembler to keep the binary from becoming tainted.
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
42 */
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
43
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
44 #define vis_opc_base ((0x1 << 31) | (0x36 << 19))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
45 #define vis_opf(X) ((X) << 5)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
46 #define vis_sreg(X) (X)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
47 #define vis_dreg(X) (((X)&0x1f)|((X)>>5))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
48 #define vis_rs1_s(X) (vis_sreg(X) << 14)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
49 #define vis_rs1_d(X) (vis_dreg(X) << 14)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
50 #define vis_rs2_s(X) (vis_sreg(X) << 0)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
51 #define vis_rs2_d(X) (vis_dreg(X) << 0)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
52 #define vis_rd_s(X) (vis_sreg(X) << 25)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
53 #define vis_rd_d(X) (vis_dreg(X) << 25)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
54
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
55 #define vis_ss2s(opf,rs1,rs2,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
56 __asm__ __volatile__ (".word %0" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
57 : : "i" (vis_opc_base | vis_opf(opf) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
58 vis_rs1_s(rs1) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
59 vis_rs2_s(rs2) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
60 vis_rd_s(rd)))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
61
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
62 #define vis_dd2d(opf,rs1,rs2,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
63 __asm__ __volatile__ (".word %0" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
64 : : "i" (vis_opc_base | vis_opf(opf) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
65 vis_rs1_d(rs1) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
66 vis_rs2_d(rs2) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
67 vis_rd_d(rd)))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
68
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
69 #define vis_ss2d(opf,rs1,rs2,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
70 __asm__ __volatile__ (".word %0" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
71 : : "i" (vis_opc_base | vis_opf(opf) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
72 vis_rs1_s(rs1) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
73 vis_rs2_s(rs2) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
74 vis_rd_d(rd)))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
75
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
76 #define vis_sd2d(opf,rs1,rs2,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
77 __asm__ __volatile__ (".word %0" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
78 : : "i" (vis_opc_base | vis_opf(opf) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
79 vis_rs1_s(rs1) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
80 vis_rs2_d(rs2) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
81 vis_rd_d(rd)))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
82
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
83 #define vis_d2s(opf,rs2,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
84 __asm__ __volatile__ (".word %0" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
85 : : "i" (vis_opc_base | vis_opf(opf) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
86 vis_rs2_d(rs2) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
87 vis_rd_s(rd)))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
88
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
89 #define vis_s2d(opf,rs2,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
90 __asm__ __volatile__ (".word %0" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
91 : : "i" (vis_opc_base | vis_opf(opf) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
92 vis_rs2_s(rs2) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
93 vis_rd_d(rd)))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
94
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
95 #define vis_d12d(opf,rs1,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
96 __asm__ __volatile__ (".word %0" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
97 : : "i" (vis_opc_base | vis_opf(opf) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
98 vis_rs1_d(rs1) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
99 vis_rd_d(rd)))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
100
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
101 #define vis_d22d(opf,rs2,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
102 __asm__ __volatile__ (".word %0" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
103 : : "i" (vis_opc_base | vis_opf(opf) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
104 vis_rs2_d(rs2) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
105 vis_rd_d(rd)))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
106
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
107 #define vis_s12s(opf,rs1,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
108 __asm__ __volatile__ (".word %0" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
109 : : "i" (vis_opc_base | vis_opf(opf) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
110 vis_rs1_s(rs1) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
111 vis_rd_s(rd)))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
112
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
113 #define vis_s22s(opf,rs2,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
114 __asm__ __volatile__ (".word %0" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
115 : : "i" (vis_opc_base | vis_opf(opf) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
116 vis_rs2_s(rs2) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
117 vis_rd_s(rd)))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
118
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
119 #define vis_s(opf,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
120 __asm__ __volatile__ (".word %0" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
121 : : "i" (vis_opc_base | vis_opf(opf) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
122 vis_rd_s(rd)))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
123
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
124 #define vis_d(opf,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
125 __asm__ __volatile__ (".word %0" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
126 : : "i" (vis_opc_base | vis_opf(opf) | \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
127 vis_rd_d(rd)))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
128
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
129 #define vis_r2m(op,rd,mem) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
130 __asm__ __volatile__ (#op "\t%%f" #rd ", [%0]" : : "r" (&(mem)) )
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
131
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
132 #define vis_r2m_2(op,rd,mem1,mem2) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
133 __asm__ __volatile__ (#op "\t%%f" #rd ", [%0 + %1]" : : "r" (mem1), "r" (mem2) )
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
134
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
135 #define vis_m2r(op,mem,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
136 __asm__ __volatile__ (#op "\t[%0], %%f" #rd : : "r" (&(mem)) )
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
137
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
138 #define vis_m2r_2(op,mem1,mem2,rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
139 __asm__ __volatile__ (#op "\t[%0 + %1], %%f" #rd : : "r" (mem1), "r" (mem2) )
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
140
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
141 static inline void vis_set_gsr(unsigned int _val)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
142 {
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
143 register unsigned int val asm("g1");
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
144
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
145 val = _val;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
146 __asm__ __volatile__(".word 0xa7804000"
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
147 : : "r" (val));
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
148 }
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
149
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
150 #define VIS_GSR_ALIGNADDR_MASK 0x0000007
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
151 #define VIS_GSR_ALIGNADDR_SHIFT 0
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
152 #define VIS_GSR_SCALEFACT_MASK 0x0000078
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
153 #define VIS_GSR_SCALEFACT_SHIFT 3
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
154
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
155 #define vis_ld32(mem,rs1) vis_m2r(ld, mem, rs1)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
156 #define vis_ld32_2(mem1,mem2,rs1) vis_m2r_2(ld, mem1, mem2, rs1)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
157 #define vis_st32(rs1,mem) vis_r2m(st, rs1, mem)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
158 #define vis_st32_2(rs1,mem1,mem2) vis_r2m_2(st, rs1, mem1, mem2)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
159 #define vis_ld64(mem,rs1) vis_m2r(ldd, mem, rs1)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
160 #define vis_ld64_2(mem1,mem2,rs1) vis_m2r_2(ldd, mem1, mem2, rs1)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
161 #define vis_st64(rs1,mem) vis_r2m(std, rs1, mem)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
162 #define vis_st64_2(rs1,mem1,mem2) vis_r2m_2(std, rs1, mem1, mem2)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
163
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
164 #define vis_ldblk(mem, rd) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
165 do { register void *__mem asm("g1"); \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
166 __mem = &(mem); \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
167 __asm__ __volatile__(".word 0xc1985e00 | %1" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
168 : \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
169 : "r" (__mem), \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
170 "i" (vis_rd_d(rd)) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
171 : "memory"); \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
172 } while (0)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
173
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
174 #define vis_stblk(rd, mem) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
175 do { register void *__mem asm("g1"); \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
176 __mem = &(mem); \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
177 __asm__ __volatile__(".word 0xc1b85e00 | %1" \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
178 : \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
179 : "r" (__mem), \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
180 "i" (vis_rd_d(rd)) \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
181 : "memory"); \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
182 } while (0)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
183
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
184 #define vis_membar_storestore() \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
185 __asm__ __volatile__(".word 0x8143e008" : : : "memory")
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
186
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
187 #define vis_membar_sync() \
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
188 __asm__ __volatile__(".word 0x8143e040" : : : "memory")
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
189
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
190 /* 16 and 32 bit partitioned addition and subtraction. The normal
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
191 * versions perform 4 16-bit or 2 32-bit additions or subtractions.
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
192 * The 's' versions perform 2 16-bit or 2 32-bit additions or
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
193 * subtractions.
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
194 */
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
195
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
196 #define vis_padd16(rs1,rs2,rd) vis_dd2d(0x50, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
197 #define vis_padd16s(rs1,rs2,rd) vis_ss2s(0x51, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
198 #define vis_padd32(rs1,rs2,rd) vis_dd2d(0x52, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
199 #define vis_padd32s(rs1,rs2,rd) vis_ss2s(0x53, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
200 #define vis_psub16(rs1,rs2,rd) vis_dd2d(0x54, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
201 #define vis_psub16s(rs1,rs2,rd) vis_ss2s(0x55, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
202 #define vis_psub32(rs1,rs2,rd) vis_dd2d(0x56, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
203 #define vis_psub32s(rs1,rs2,rd) vis_ss2s(0x57, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
204
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
205 /* Pixel formatting instructions. */
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
206
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
207 #define vis_pack16(rs2,rd) vis_d2s( 0x3b, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
208 #define vis_pack32(rs1,rs2,rd) vis_dd2d(0x3a, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
209 #define vis_packfix(rs2,rd) vis_d2s( 0x3d, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
210 #define vis_expand(rs2,rd) vis_s2d( 0x4d, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
211 #define vis_pmerge(rs1,rs2,rd) vis_ss2d(0x4b, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
212
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
213 /* Partitioned multiply instructions. */
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
214
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
215 #define vis_mul8x16(rs1,rs2,rd) vis_sd2d(0x31, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
216 #define vis_mul8x16au(rs1,rs2,rd) vis_ss2d(0x33, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
217 #define vis_mul8x16al(rs1,rs2,rd) vis_ss2d(0x35, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
218 #define vis_mul8sux16(rs1,rs2,rd) vis_dd2d(0x36, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
219 #define vis_mul8ulx16(rs1,rs2,rd) vis_dd2d(0x37, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
220 #define vis_muld8sux16(rs1,rs2,rd) vis_ss2d(0x38, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
221 #define vis_muld8ulx16(rs1,rs2,rd) vis_ss2d(0x39, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
222
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
223 /* Alignment instructions. */
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
224
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
225 static inline void *vis_alignaddr(void *_ptr)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
226 {
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
227 register void *ptr asm("g1");
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
228
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
229 ptr = _ptr;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
230
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
231 __asm__ __volatile__(".word %2"
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
232 : "=&r" (ptr)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
233 : "0" (ptr),
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
234 "i" (vis_opc_base | vis_opf(0x18) |
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
235 vis_rs1_s(1) |
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
236 vis_rs2_s(0) |
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
237 vis_rd_s(1)));
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
238
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
239 return ptr;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
240 }
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
241
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
242 static inline void vis_alignaddr_g0(void *_ptr)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
243 {
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
244 register void *ptr asm("g1");
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
245
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
246 ptr = _ptr;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
247
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
248 __asm__ __volatile__(".word %2"
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
249 : "=&r" (ptr)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
250 : "0" (ptr),
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
251 "i" (vis_opc_base | vis_opf(0x18) |
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
252 vis_rs1_s(1) |
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
253 vis_rs2_s(0) |
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
254 vis_rd_s(0)));
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
255 }
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
256
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
257 static inline void *vis_alignaddrl(void *_ptr)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
258 {
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
259 register void *ptr asm("g1");
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
260
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
261 ptr = _ptr;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
262
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
263 __asm__ __volatile__(".word %2"
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
264 : "=&r" (ptr)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
265 : "0" (ptr),
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
266 "i" (vis_opc_base | vis_opf(0x19) |
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
267 vis_rs1_s(1) |
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
268 vis_rs2_s(0) |
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
269 vis_rd_s(1)));
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
270
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
271 return ptr;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
272 }
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
273
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
274 static inline void vis_alignaddrl_g0(void *_ptr)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
275 {
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
276 register void *ptr asm("g1");
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
277
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
278 ptr = _ptr;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
279
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
280 __asm__ __volatile__(".word %2"
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
281 : "=&r" (ptr)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
282 : "0" (ptr),
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
283 "i" (vis_opc_base | vis_opf(0x19) |
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
284 vis_rs1_s(1) |
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
285 vis_rs2_s(0) |
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
286 vis_rd_s(0)));
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
287 }
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
288
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
289 #define vis_faligndata(rs1,rs2,rd) vis_dd2d(0x48, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
290
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
291 /* Logical operate instructions. */
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
292
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
293 #define vis_fzero(rd) vis_d( 0x60, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
294 #define vis_fzeros(rd) vis_s( 0x61, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
295 #define vis_fone(rd) vis_d( 0x7e, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
296 #define vis_fones(rd) vis_s( 0x7f, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
297 #define vis_src1(rs1,rd) vis_d12d(0x74, rs1, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
298 #define vis_src1s(rs1,rd) vis_s12s(0x75, rs1, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
299 #define vis_src2(rs2,rd) vis_d22d(0x78, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
300 #define vis_src2s(rs2,rd) vis_s22s(0x79, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
301 #define vis_not1(rs1,rd) vis_d12d(0x6a, rs1, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
302 #define vis_not1s(rs1,rd) vis_s12s(0x6b, rs1, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
303 #define vis_not2(rs2,rd) vis_d22d(0x66, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
304 #define vis_not2s(rs2,rd) vis_s22s(0x67, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
305 #define vis_or(rs1,rs2,rd) vis_dd2d(0x7c, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
306 #define vis_ors(rs1,rs2,rd) vis_ss2s(0x7d, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
307 #define vis_nor(rs1,rs2,rd) vis_dd2d(0x62, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
308 #define vis_nors(rs1,rs2,rd) vis_ss2s(0x63, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
309 #define vis_and(rs1,rs2,rd) vis_dd2d(0x70, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
310 #define vis_ands(rs1,rs2,rd) vis_ss2s(0x71, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
311 #define vis_nand(rs1,rs2,rd) vis_dd2d(0x6e, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
312 #define vis_nands(rs1,rs2,rd) vis_ss2s(0x6f, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
313 #define vis_xor(rs1,rs2,rd) vis_dd2d(0x6c, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
314 #define vis_xors(rs1,rs2,rd) vis_ss2s(0x6d, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
315 #define vis_xnor(rs1,rs2,rd) vis_dd2d(0x72, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
316 #define vis_xnors(rs1,rs2,rd) vis_ss2s(0x73, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
317 #define vis_ornot1(rs1,rs2,rd) vis_dd2d(0x7a, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
318 #define vis_ornot1s(rs1,rs2,rd) vis_ss2s(0x7b, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
319 #define vis_ornot2(rs1,rs2,rd) vis_dd2d(0x76, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
320 #define vis_ornot2s(rs1,rs2,rd) vis_ss2s(0x77, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
321 #define vis_andnot1(rs1,rs2,rd) vis_dd2d(0x68, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
322 #define vis_andnot1s(rs1,rs2,rd) vis_ss2s(0x69, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
323 #define vis_andnot2(rs1,rs2,rd) vis_dd2d(0x64, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
324 #define vis_andnot2s(rs1,rs2,rd) vis_ss2s(0x65, rs1, rs2, rd)
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
325
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
326 /* Pixel component distance. */
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
327
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents:
diff changeset
328 #define vis_pdist(rs1,rs2,rd) vis_dd2d(0x3e, rs1, rs2, rd)