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 |
