FreeCalypso > hg > tcs211-l1-reconst
annotate STATUS @ 284:33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 14 Mar 2017 19:07:14 +0000 |
parents | 974835ad720c |
children | 4d9af8de3973 |
rev | line source |
---|---|
283
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 Objects in l1_ext.lib: |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 |
284
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
3 l1_afunc.obj: not exact, see explanation below |
283
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 l1_async.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 l1_cmplx.obj: perfect match to 20070608 version except line number points |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 l1_init.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 l1_pwmgr.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 l1_small.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 l1_sync.obj: not exact, needs review |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 l1_trace.obj: bits match perfectly, diff only in symbolic metadata |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 l1_dyn_dwl_afunc.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 l1_dyn_dwl_apihisr.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 l1_dyn_dwl_async.obj: perfect match |
284
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
15 l1_dyn_dwl_func.obj: not exact, see explanation below |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
16 l1_dyn_dwl_init.obj: sole diff is in the num_of_primitives oddity, |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
17 see explanation below |
283
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 l1_dyn_dwl_sync.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 l1audio_abb.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 l1audio_afunc.obj: bits match perfectly, diff only in symbolic metadata |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 l1audio_async.obj: diffs only in register alloc and symbolic metadata |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 l1audio_back.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 l1audio_drive.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 l1audio_init.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 l1tm_async.obj: bits match perfectly, diff only in the line number points |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 l1tm_func.obj: bits match perfectly, diffs only in symbolic and line numbers |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 l1tm_stats.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 Objects in l1_int.lib: |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 dl1_com.obj: not exact, needs review |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 l1_api_hisr.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 l1_cmplx_intram.obj: perfect match to 20070608 version |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 l1_ctl.obj: perfect match to 20070608 version |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 l1_drive.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 l1_func.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 l1_mfmgr.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 l1_sync_intram.obj: not exact, needs review |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 l1audio_func.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 l1audio_sync.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 Objects in l1_custom_ext.lib: |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 l1audio_cust.obj: dead functions not reconstructed, perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 otherwise |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 l1tm_cust.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 l1tm_tpu12.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 Objects in l1_custom_int.lib: |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 ind_os.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 l1_cust.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 Objects in tpudrv.lib: |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 tpudrv.obj: perfect match |
974835ad720c
STATUS top level file added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 tpudrv12.obj: not exact, needs review |
284
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
61 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
62 Detailed analysis of differences, i.e., cases where the reconstructed C code |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
63 compiles into an object that is not bit-identical to the original blob: |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
64 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
65 l1_afunc.obj: |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
66 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
67 The l1_afunc.c module from LoCosto is used without any changes: |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
68 it compiled right away after adding one constant to l1_const.h, |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
69 and the result of recompilation is identical to the original up until |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
70 the l1a_clip_txpwr() function, which is the last function in the module. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
71 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
72 Disassembly of the original blob version of this function has been |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
73 analyzed and found to be identical in logic to the available C code, |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
74 but there must have been some change to the code expression that |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
75 results in different output from the compiler. In particular, the |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
76 symbolic info indicates the present of a local variable named power |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
77 in the original, but no such local var exists in the LoCosto version. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
78 The TSM30 version was of no help as it is entirely different there. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
79 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
80 See g23m/objdiff/l1_ext/l1_afunc.notes for further info. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
81 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
82 l1_sync.obj: needs further review |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
83 l1_sync_intram.obj: ditto |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
84 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
85 dl1_com.obj: not exact, needs review |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
86 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
87 l1_dyn_dwl_func.obj: |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
88 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
89 The LoCosto version uses a function (implemented in l1_func.c in |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
90 the LoCosto code) named l1_memcpy_16bit() to download patch bits |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
91 into the DSP's API RAM; the function does what the name says, and |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
92 the logic of using 16-bit accesses when hitting this API RAM makes |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
93 perfect sense to me (Mychaela). The original TCS211 code apparently |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
94 used plain memcpy(), which the compiler turned into its C$MEMCPY call. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
95 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
96 If one does a #define l1_memcpy_16bit memcpy in l1_dyn_dwl_func.c, |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
97 the resulting l1_dyn_dwl_func.obj is almost bit-identical to the |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
98 original blob: the only diff is in register allocation - the compiler's |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
99 register allocator picks a different choice of registers, but all |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
100 instructions still perfectly line up. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
101 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
102 For production use of our reconstructed TCS211 L1 code, we have adopted |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
103 the version with l1_memcpy_16bit() - the function body itself has been |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
104 moved into l1_dyn_dwl_func.c so that l1_func.c remains a perfect match. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
105 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
106 l1_dyn_dwl_init.obj: |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
107 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
108 In the TCS211 configuration without L1_GTT, there are a total of 5 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
109 signals (aka primitives aka L1 messages) which trigger a dynamic |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
110 DSP patch download. These 5 signals are enumerated in |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
111 signal_patch_array[] in l1_dyn_dwl_afunc.c (which has been reconstructed |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
112 to a perfect match), and their total count (which should be 5) goes into |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
113 l1a.dyn_dwnld.num_of_primitives, set in l1_dyn_dwnld_initialize_var() in |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
114 l1_dyn_dwl_init.c. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
115 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
116 In the original blob version this num_of_primitives variable ends up |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
117 being set to 6: first set to 2, then incremented by 4. In the LoCosto |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
118 source this var is first set to 0 as they apparently have no patches |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
119 that are independent of compilation config options, and then incremented |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
120 for every enabled option. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
121 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
122 In our reconstruction we have made the GPRS and AMR_SCH patches and the |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
123 primitives that trigger them mandatory, and conditionalized the E2 and |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
124 AMR_MMS patches on MELODY_E2. The GPRS and AMR_MMS critters are |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
125 preinstalled by the static patch, and get pushed out by AMR_SCH and E2, |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
126 respectively. Of the 5 primitives listed in signal_patch_array[] in |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
127 the original blob, the first 2 are always-present core ones, whereas |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
128 the last 3 are specific to E2. The AMR_MMS patch is reinstated upon |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
129 L1_BACK_MELODY_E2_UNLOAD_INSTRUMENT_CON. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
130 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
131 Based on the above reasoning, our reconstructed version sets |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
132 l1a.dyn_dwnld.num_of_primitives to 5 in the full configuration: first |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
133 sets to 2, then increments by 3. If one makes a sans-MELODY_E2 build, |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
134 only the GPRS and AMR_SCH patches will be retained, and only the two |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
135 non-E2 primitives for entry into and exit from dedicated mode. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
136 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
137 l1audio_async.obj: |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
138 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
139 The only bit diff is in register allocation - the compiler's register |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
140 allocator picks a different choice of registers, but all instructions |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
141 still perfectly line up. There is also a slight diff in the symbolic |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
142 metadata emitted for functions, which might be related to the diff in |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
143 the register allocation. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
144 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
145 The root cause of these diffs could not be found, but there is no |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
146 functional difference as only some in-function temporary registers |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
147 have been interchanged. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
148 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
149 l1audio_cust.obj: |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
150 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
151 The original blob version has these demo/test functions at the end of |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
152 the module: |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
153 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
154 audio_melo_e1_demo1_start() |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
155 audio_melo_e1_demo1_stop() |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
156 audio_melo_e1_demo2_start() |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
157 audio_melo_e1_demo2_stop() |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
158 audio_melo_e2_load_lsi() |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
159 audio_melo_e2_demo1_start() |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
160 audio_melo_e2_demo1_stop() |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
161 audio_melo_e2_demo2_start() |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
162 audio_melo_e2_demo2_stop() |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
163 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
164 These functions are dead code, i.e., they are not called or referenced |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
165 from anywhere else in the firmware, and the link succeeds without them |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
166 being present. These dead functions have been omitted from the |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
167 reconstructed version. The reconstruction is a perfect match otherwise. |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
168 |
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
169 tpudrv12.obj: early reconstruction, needs further review |