cd49532277840309036bd06cee7ae4bbd7c83e51
[profile/ivi/libvpx.git] / vp8 / encoder / asm_enc_offsets.c
1 /*
2  *  Copyright (c) 2011 The WebM project authors. All Rights Reserved.
3  *
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
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10
11
12 #include "vpx_ports/config.h"
13 #include <stddef.h>
14
15 #include "treewriter.h"
16 #include "tokenize.h"
17 #include "onyx_int.h"
18
19 #define ct_assert(name,cond) \
20     static void assert_##name(void) UNUSED;\
21     static void assert_##name(void) {switch(0){case 0:case !!(cond):;}}
22
23 #define DEFINE(sym, val) int sym = val;
24
25 /*
26 #define BLANK() asm volatile("\n->" : : )
27 */
28
29 /*
30  * int main(void)
31  * {
32  */
33
34 //pack tokens
35 DEFINE(vp8_writer_lowvalue,                     offsetof(vp8_writer, lowvalue));
36 DEFINE(vp8_writer_range,                        offsetof(vp8_writer, range));
37 DEFINE(vp8_writer_value,                        offsetof(vp8_writer, value));
38 DEFINE(vp8_writer_count,                        offsetof(vp8_writer, count));
39 DEFINE(vp8_writer_pos,                          offsetof(vp8_writer, pos));
40 DEFINE(vp8_writer_buffer,                       offsetof(vp8_writer, buffer));
41
42 DEFINE(tokenextra_token,                        offsetof(TOKENEXTRA, Token));
43 DEFINE(tokenextra_extra,                        offsetof(TOKENEXTRA, Extra));
44 DEFINE(tokenextra_context_tree,                 offsetof(TOKENEXTRA, context_tree));
45 DEFINE(tokenextra_skip_eob_node,                offsetof(TOKENEXTRA, skip_eob_node));
46 DEFINE(TOKENEXTRA_SZ,                           sizeof(TOKENEXTRA));
47
48 DEFINE(vp8_extra_bit_struct_sz,                 sizeof(vp8_extra_bit_struct));
49
50 DEFINE(vp8_token_value,                         offsetof(vp8_token, value));
51 DEFINE(vp8_token_len,                           offsetof(vp8_token, Len));
52
53 DEFINE(vp8_extra_bit_struct_tree,               offsetof(vp8_extra_bit_struct, tree));
54 DEFINE(vp8_extra_bit_struct_prob,               offsetof(vp8_extra_bit_struct, prob));
55 DEFINE(vp8_extra_bit_struct_len,                offsetof(vp8_extra_bit_struct, Len));
56 DEFINE(vp8_extra_bit_struct_base_val,           offsetof(vp8_extra_bit_struct, base_val));
57
58 DEFINE(vp8_comp_tplist,                         offsetof(VP8_COMP, tplist));
59 DEFINE(vp8_comp_common,                         offsetof(VP8_COMP, common));
60 DEFINE(vp8_comp_bc2,                            offsetof(VP8_COMP, bc2));
61
62 DEFINE(tokenlist_start,                         offsetof(TOKENLIST, start));
63 DEFINE(tokenlist_stop,                          offsetof(TOKENLIST, stop));
64 DEFINE(TOKENLIST_SZ,                            sizeof(TOKENLIST));
65
66 DEFINE(vp8_common_mb_rows,                      offsetof(VP8_COMMON, mb_rows));
67
68 // These two sizes are used in vp8cx_pack_tokens.  They are hard coded
69 // so if the size changes this will have to be adjusted.
70 #if HAVE_ARMV5TE
71 ct_assert(TOKENEXTRA_SZ, sizeof(TOKENEXTRA) == 8)
72 ct_assert(vp8_extra_bit_struct_sz, sizeof(vp8_extra_bit_struct) == 16)
73 #endif
74
75 //add asserts for any offset that is not supported by assembly code
76 //add asserts for any size that is not supported by assembly code
77 /*
78  * return 0;
79  * }
80  */