FreeCalypso > hg > tcs211-l1-reconst
comparison STATUS @ 289:f2f7f4dff6d7
STATUS: analysis complete
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 19 Mar 2017 23:41:49 +0000 |
parents | 595cdc5ff4e5 |
children | 7ad882cbce4c |
comparison
equal
deleted
inserted
replaced
288:595cdc5ff4e5 | 289:f2f7f4dff6d7 |
---|---|
4 l1_async.obj: perfect match | 4 l1_async.obj: perfect match |
5 l1_cmplx.obj: perfect match to 20070608 version except line number points | 5 l1_cmplx.obj: perfect match to 20070608 version except line number points |
6 l1_init.obj: perfect match | 6 l1_init.obj: perfect match |
7 l1_pwmgr.obj: perfect match | 7 l1_pwmgr.obj: perfect match |
8 l1_small.obj: perfect match | 8 l1_small.obj: perfect match |
9 l1_sync.obj: not exact, needs review | 9 l1_sync.obj: not exact, see explanation below |
10 l1_trace.obj: bits match perfectly, diff only in symbolic metadata | 10 l1_trace.obj: bits match perfectly, diff only in symbolic metadata |
11 | 11 |
12 l1_dyn_dwl_afunc.obj: perfect match | 12 l1_dyn_dwl_afunc.obj: perfect match |
13 l1_dyn_dwl_apihisr.obj: perfect match | 13 l1_dyn_dwl_apihisr.obj: perfect match |
14 l1_dyn_dwl_async.obj: perfect match | 14 l1_dyn_dwl_async.obj: perfect match |
35 l1_cmplx_intram.obj: perfect match to 20070608 version | 35 l1_cmplx_intram.obj: perfect match to 20070608 version |
36 l1_ctl.obj: perfect match to 20070608 version | 36 l1_ctl.obj: perfect match to 20070608 version |
37 l1_drive.obj: perfect match | 37 l1_drive.obj: perfect match |
38 l1_func.obj: perfect match | 38 l1_func.obj: perfect match |
39 l1_mfmgr.obj: perfect match | 39 l1_mfmgr.obj: perfect match |
40 l1_sync_intram.obj: not exact, needs review | 40 l1_sync_intram.obj: not exact, see explanation below |
41 | 41 |
42 l1audio_func.obj: perfect match | 42 l1audio_func.obj: perfect match |
43 l1audio_sync.obj: perfect match | 43 l1audio_sync.obj: perfect match |
44 | 44 |
45 Objects in l1_custom_ext.lib: | 45 Objects in l1_custom_ext.lib: |
77 in the original, but no such local var exists in the LoCosto version. | 77 in the original, but no such local var exists in the LoCosto version. |
78 The TSM30 version was of no help as it is entirely different there. | 78 The TSM30 version was of no help as it is entirely different there. |
79 | 79 |
80 See g23m/objdiff/l1_ext/l1_afunc.notes for further info. | 80 See g23m/objdiff/l1_ext/l1_afunc.notes for further info. |
81 | 81 |
82 l1_sync.obj: needs further review | 82 l1_sync.obj: |
83 l1_sync_intram.obj: ditto | 83 |
84 The last function in this module is l1s_dedicated_mode_manager(); | |
85 the two preceding functions match perfectly, but for this last function | |
86 when the reconstructed code is recompiled, the compiler's register | |
87 allocator makes different picks for reasons that could not be | |
88 successfully reversed. Because the code is compiled in Thumb mode | |
89 and the compiler made a different choice between low and high registers | |
90 in some places, the instructions do not line perfectly. The logic match | |
91 has instead been verified by manual comparison. | |
92 | |
93 l1_sync_intram.obj: | |
94 | |
95 Similar situation in the l1s_schedule_tasks() function: the function | |
96 is huge, there is an unknown set of factors determining what the | |
97 compiler's register allocator will do, and in this case there is even | |
98 a difference in the choice of register vs. stack for some temporaries. | |
99 As a result, the code does not line up and the logic had to be verified | |
100 manually. All other functions (preceding and following) match | |
101 perfectly. | |
84 | 102 |
85 dl1_com.obj: | 103 dl1_com.obj: |
86 | 104 |
87 The reconstruction of this module is not exact, but the logic has | 105 The reconstruction of this module is not exact, but the logic has |
88 been verified to be an exact match except for the removal of some | 106 been verified to be an exact match except for the removal of some |