OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 | 53 |
54 /* | 54 /* |
55 * Include aligned access routines | 55 * Include aligned access routines |
56 */ | 56 */ |
57 #define INCLUDED_BY_MEM_OPS_H | 57 #define INCLUDED_BY_MEM_OPS_H |
58 #include "mem_ops_aligned.h" | 58 #include "mem_ops_aligned.h" |
59 #undef INCLUDED_BY_MEM_OPS_H | 59 #undef INCLUDED_BY_MEM_OPS_H |
60 | 60 |
61 #undef mem_get_be16 | 61 #undef mem_get_be16 |
62 #define mem_get_be16 mem_ops_wrap_symbol(mem_get_be16) | 62 #define mem_get_be16 mem_ops_wrap_symbol(mem_get_be16) |
63 static unsigned MEM_VALUE_T mem_get_be16(const void *vmem) | 63 static unsigned MEM_VALUE_T mem_get_be16(const void *vmem) { |
64 { | 64 unsigned MEM_VALUE_T val; |
65 unsigned MEM_VALUE_T val; | 65 const MAU_T *mem = (const MAU_T *)vmem; |
66 const MAU_T *mem = (const MAU_T *)vmem; | |
67 | 66 |
68 val = mem[0] << 8; | 67 val = mem[0] << 8; |
69 val |= mem[1]; | 68 val |= mem[1]; |
70 return val; | 69 return val; |
71 } | 70 } |
72 | 71 |
73 #undef mem_get_be24 | 72 #undef mem_get_be24 |
74 #define mem_get_be24 mem_ops_wrap_symbol(mem_get_be24) | 73 #define mem_get_be24 mem_ops_wrap_symbol(mem_get_be24) |
75 static unsigned MEM_VALUE_T mem_get_be24(const void *vmem) | 74 static unsigned MEM_VALUE_T mem_get_be24(const void *vmem) { |
76 { | 75 unsigned MEM_VALUE_T val; |
77 unsigned MEM_VALUE_T val; | 76 const MAU_T *mem = (const MAU_T *)vmem; |
78 const MAU_T *mem = (const MAU_T *)vmem; | |
79 | 77 |
80 val = mem[0] << 16; | 78 val = mem[0] << 16; |
81 val |= mem[1] << 8; | 79 val |= mem[1] << 8; |
82 val |= mem[2]; | 80 val |= mem[2]; |
83 return val; | 81 return val; |
84 } | 82 } |
85 | 83 |
86 #undef mem_get_be32 | 84 #undef mem_get_be32 |
87 #define mem_get_be32 mem_ops_wrap_symbol(mem_get_be32) | 85 #define mem_get_be32 mem_ops_wrap_symbol(mem_get_be32) |
88 static unsigned MEM_VALUE_T mem_get_be32(const void *vmem) | 86 static unsigned MEM_VALUE_T mem_get_be32(const void *vmem) { |
89 { | 87 unsigned MEM_VALUE_T val; |
90 unsigned MEM_VALUE_T val; | 88 const MAU_T *mem = (const MAU_T *)vmem; |
91 const MAU_T *mem = (const MAU_T *)vmem; | |
92 | 89 |
93 val = mem[0] << 24; | 90 val = mem[0] << 24; |
94 val |= mem[1] << 16; | 91 val |= mem[1] << 16; |
95 val |= mem[2] << 8; | 92 val |= mem[2] << 8; |
96 val |= mem[3]; | 93 val |= mem[3]; |
97 return val; | 94 return val; |
98 } | 95 } |
99 | 96 |
100 #undef mem_get_le16 | 97 #undef mem_get_le16 |
101 #define mem_get_le16 mem_ops_wrap_symbol(mem_get_le16) | 98 #define mem_get_le16 mem_ops_wrap_symbol(mem_get_le16) |
102 static unsigned MEM_VALUE_T mem_get_le16(const void *vmem) | 99 static unsigned MEM_VALUE_T mem_get_le16(const void *vmem) { |
103 { | 100 unsigned MEM_VALUE_T val; |
104 unsigned MEM_VALUE_T val; | 101 const MAU_T *mem = (const MAU_T *)vmem; |
105 const MAU_T *mem = (const MAU_T *)vmem; | |
106 | 102 |
107 val = mem[1] << 8; | 103 val = mem[1] << 8; |
108 val |= mem[0]; | 104 val |= mem[0]; |
109 return val; | 105 return val; |
110 } | 106 } |
111 | 107 |
112 #undef mem_get_le24 | 108 #undef mem_get_le24 |
113 #define mem_get_le24 mem_ops_wrap_symbol(mem_get_le24) | 109 #define mem_get_le24 mem_ops_wrap_symbol(mem_get_le24) |
114 static unsigned MEM_VALUE_T mem_get_le24(const void *vmem) | 110 static unsigned MEM_VALUE_T mem_get_le24(const void *vmem) { |
115 { | 111 unsigned MEM_VALUE_T val; |
116 unsigned MEM_VALUE_T val; | 112 const MAU_T *mem = (const MAU_T *)vmem; |
117 const MAU_T *mem = (const MAU_T *)vmem; | |
118 | 113 |
119 val = mem[2] << 16; | 114 val = mem[2] << 16; |
120 val |= mem[1] << 8; | 115 val |= mem[1] << 8; |
121 val |= mem[0]; | 116 val |= mem[0]; |
122 return val; | 117 return val; |
123 } | 118 } |
124 | 119 |
125 #undef mem_get_le32 | 120 #undef mem_get_le32 |
126 #define mem_get_le32 mem_ops_wrap_symbol(mem_get_le32) | 121 #define mem_get_le32 mem_ops_wrap_symbol(mem_get_le32) |
127 static unsigned MEM_VALUE_T mem_get_le32(const void *vmem) | 122 static unsigned MEM_VALUE_T mem_get_le32(const void *vmem) { |
128 { | 123 unsigned MEM_VALUE_T val; |
129 unsigned MEM_VALUE_T val; | 124 const MAU_T *mem = (const MAU_T *)vmem; |
130 const MAU_T *mem = (const MAU_T *)vmem; | |
131 | 125 |
132 val = mem[3] << 24; | 126 val = mem[3] << 24; |
133 val |= mem[2] << 16; | 127 val |= mem[2] << 16; |
134 val |= mem[1] << 8; | 128 val |= mem[1] << 8; |
135 val |= mem[0]; | 129 val |= mem[0]; |
136 return val; | 130 return val; |
137 } | 131 } |
138 | 132 |
139 #define mem_get_s_generic(end,sz) \ | 133 #define mem_get_s_generic(end,sz) \ |
140 static signed MEM_VALUE_T mem_get_s##end##sz(const void *vmem) {\ | 134 static signed MEM_VALUE_T mem_get_s##end##sz(const void *vmem) {\ |
141 const MAU_T *mem = (const MAU_T*)vmem;\ | 135 const MAU_T *mem = (const MAU_T*)vmem;\ |
142 signed MEM_VALUE_T val = mem_get_##end##sz(mem);\ | 136 signed MEM_VALUE_T val = mem_get_##end##sz(mem);\ |
143 return (val << (MEM_VALUE_T_SZ_BITS - sz)) >> (MEM_VALUE_T_SZ_BITS - sz)
;\ | 137 return (val << (MEM_VALUE_T_SZ_BITS - sz)) >> (MEM_VALUE_T_SZ_BITS - sz);\ |
144 } | 138 } |
145 | 139 |
146 #undef mem_get_sbe16 | 140 #undef mem_get_sbe16 |
147 #define mem_get_sbe16 mem_ops_wrap_symbol(mem_get_sbe16) | 141 #define mem_get_sbe16 mem_ops_wrap_symbol(mem_get_sbe16) |
148 mem_get_s_generic(be, 16) | 142 mem_get_s_generic(be, 16) |
149 | 143 |
150 #undef mem_get_sbe24 | 144 #undef mem_get_sbe24 |
151 #define mem_get_sbe24 mem_ops_wrap_symbol(mem_get_sbe24) | 145 #define mem_get_sbe24 mem_ops_wrap_symbol(mem_get_sbe24) |
152 mem_get_s_generic(be, 24) | 146 mem_get_s_generic(be, 24) |
153 | 147 |
154 #undef mem_get_sbe32 | 148 #undef mem_get_sbe32 |
155 #define mem_get_sbe32 mem_ops_wrap_symbol(mem_get_sbe32) | 149 #define mem_get_sbe32 mem_ops_wrap_symbol(mem_get_sbe32) |
156 mem_get_s_generic(be, 32) | 150 mem_get_s_generic(be, 32) |
157 | 151 |
158 #undef mem_get_sle16 | 152 #undef mem_get_sle16 |
159 #define mem_get_sle16 mem_ops_wrap_symbol(mem_get_sle16) | 153 #define mem_get_sle16 mem_ops_wrap_symbol(mem_get_sle16) |
160 mem_get_s_generic(le, 16) | 154 mem_get_s_generic(le, 16) |
161 | 155 |
162 #undef mem_get_sle24 | 156 #undef mem_get_sle24 |
163 #define mem_get_sle24 mem_ops_wrap_symbol(mem_get_sle24) | 157 #define mem_get_sle24 mem_ops_wrap_symbol(mem_get_sle24) |
164 mem_get_s_generic(le, 24) | 158 mem_get_s_generic(le, 24) |
165 | 159 |
166 #undef mem_get_sle32 | 160 #undef mem_get_sle32 |
167 #define mem_get_sle32 mem_ops_wrap_symbol(mem_get_sle32) | 161 #define mem_get_sle32 mem_ops_wrap_symbol(mem_get_sle32) |
168 mem_get_s_generic(le, 32) | 162 mem_get_s_generic(le, 32) |
169 | 163 |
170 #undef mem_put_be16 | 164 #undef mem_put_be16 |
171 #define mem_put_be16 mem_ops_wrap_symbol(mem_put_be16) | 165 #define mem_put_be16 mem_ops_wrap_symbol(mem_put_be16) |
172 static void mem_put_be16(void *vmem, MEM_VALUE_T val) | 166 static void mem_put_be16(void *vmem, MEM_VALUE_T val) { |
173 { | 167 MAU_T *mem = (MAU_T *)vmem; |
174 MAU_T *mem = (MAU_T *)vmem; | |
175 | 168 |
176 mem[0] = (val >> 8) & 0xff; | 169 mem[0] = (val >> 8) & 0xff; |
177 mem[1] = (val >> 0) & 0xff; | 170 mem[1] = (val >> 0) & 0xff; |
178 } | 171 } |
179 | 172 |
180 #undef mem_put_be24 | 173 #undef mem_put_be24 |
181 #define mem_put_be24 mem_ops_wrap_symbol(mem_put_be24) | 174 #define mem_put_be24 mem_ops_wrap_symbol(mem_put_be24) |
182 static void mem_put_be24(void *vmem, MEM_VALUE_T val) | 175 static void mem_put_be24(void *vmem, MEM_VALUE_T val) { |
183 { | 176 MAU_T *mem = (MAU_T *)vmem; |
184 MAU_T *mem = (MAU_T *)vmem; | |
185 | 177 |
186 mem[0] = (val >> 16) & 0xff; | 178 mem[0] = (val >> 16) & 0xff; |
187 mem[1] = (val >> 8) & 0xff; | 179 mem[1] = (val >> 8) & 0xff; |
188 mem[2] = (val >> 0) & 0xff; | 180 mem[2] = (val >> 0) & 0xff; |
189 } | 181 } |
190 | 182 |
191 #undef mem_put_be32 | 183 #undef mem_put_be32 |
192 #define mem_put_be32 mem_ops_wrap_symbol(mem_put_be32) | 184 #define mem_put_be32 mem_ops_wrap_symbol(mem_put_be32) |
193 static void mem_put_be32(void *vmem, MEM_VALUE_T val) | 185 static void mem_put_be32(void *vmem, MEM_VALUE_T val) { |
194 { | 186 MAU_T *mem = (MAU_T *)vmem; |
195 MAU_T *mem = (MAU_T *)vmem; | |
196 | 187 |
197 mem[0] = (val >> 24) & 0xff; | 188 mem[0] = (val >> 24) & 0xff; |
198 mem[1] = (val >> 16) & 0xff; | 189 mem[1] = (val >> 16) & 0xff; |
199 mem[2] = (val >> 8) & 0xff; | 190 mem[2] = (val >> 8) & 0xff; |
200 mem[3] = (val >> 0) & 0xff; | 191 mem[3] = (val >> 0) & 0xff; |
201 } | 192 } |
202 | 193 |
203 #undef mem_put_le16 | 194 #undef mem_put_le16 |
204 #define mem_put_le16 mem_ops_wrap_symbol(mem_put_le16) | 195 #define mem_put_le16 mem_ops_wrap_symbol(mem_put_le16) |
205 static void mem_put_le16(void *vmem, MEM_VALUE_T val) | 196 static void mem_put_le16(void *vmem, MEM_VALUE_T val) { |
206 { | 197 MAU_T *mem = (MAU_T *)vmem; |
207 MAU_T *mem = (MAU_T *)vmem; | |
208 | 198 |
209 mem[0] = (val >> 0) & 0xff; | 199 mem[0] = (val >> 0) & 0xff; |
210 mem[1] = (val >> 8) & 0xff; | 200 mem[1] = (val >> 8) & 0xff; |
211 } | 201 } |
212 | 202 |
213 #undef mem_put_le24 | 203 #undef mem_put_le24 |
214 #define mem_put_le24 mem_ops_wrap_symbol(mem_put_le24) | 204 #define mem_put_le24 mem_ops_wrap_symbol(mem_put_le24) |
215 static void mem_put_le24(void *vmem, MEM_VALUE_T val) | 205 static void mem_put_le24(void *vmem, MEM_VALUE_T val) { |
216 { | 206 MAU_T *mem = (MAU_T *)vmem; |
217 MAU_T *mem = (MAU_T *)vmem; | |
218 | 207 |
219 mem[0] = (val >> 0) & 0xff; | 208 mem[0] = (val >> 0) & 0xff; |
220 mem[1] = (val >> 8) & 0xff; | 209 mem[1] = (val >> 8) & 0xff; |
221 mem[2] = (val >> 16) & 0xff; | 210 mem[2] = (val >> 16) & 0xff; |
222 } | 211 } |
223 | 212 |
224 #undef mem_put_le32 | 213 #undef mem_put_le32 |
225 #define mem_put_le32 mem_ops_wrap_symbol(mem_put_le32) | 214 #define mem_put_le32 mem_ops_wrap_symbol(mem_put_le32) |
226 static void mem_put_le32(void *vmem, MEM_VALUE_T val) | 215 static void mem_put_le32(void *vmem, MEM_VALUE_T val) { |
227 { | 216 MAU_T *mem = (MAU_T *)vmem; |
228 MAU_T *mem = (MAU_T *)vmem; | |
229 | 217 |
230 mem[0] = (val >> 0) & 0xff; | 218 mem[0] = (val >> 0) & 0xff; |
231 mem[1] = (val >> 8) & 0xff; | 219 mem[1] = (val >> 8) & 0xff; |
232 mem[2] = (val >> 16) & 0xff; | 220 mem[2] = (val >> 16) & 0xff; |
233 mem[3] = (val >> 24) & 0xff; | 221 mem[3] = (val >> 24) & 0xff; |
234 } | 222 } |
OLD | NEW |