FreeCalypso > hg > tcs211-l1-reconst
changeset 289:f2f7f4dff6d7
STATUS: analysis complete
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 19 Mar 2017 23:41:49 +0000 |
parents | 595cdc5ff4e5 |
children | 95f308ba55c7 |
files | STATUS |
diffstat | 1 files changed, 22 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/STATUS Wed Mar 15 07:26:03 2017 +0000 +++ b/STATUS Sun Mar 19 23:41:49 2017 +0000 @@ -6,7 +6,7 @@ l1_init.obj: perfect match l1_pwmgr.obj: perfect match l1_small.obj: perfect match -l1_sync.obj: not exact, needs review +l1_sync.obj: not exact, see explanation below l1_trace.obj: bits match perfectly, diff only in symbolic metadata l1_dyn_dwl_afunc.obj: perfect match @@ -37,7 +37,7 @@ l1_drive.obj: perfect match l1_func.obj: perfect match l1_mfmgr.obj: perfect match -l1_sync_intram.obj: not exact, needs review +l1_sync_intram.obj: not exact, see explanation below l1audio_func.obj: perfect match l1audio_sync.obj: perfect match @@ -79,8 +79,26 @@ See g23m/objdiff/l1_ext/l1_afunc.notes for further info. -l1_sync.obj: needs further review -l1_sync_intram.obj: ditto +l1_sync.obj: + + The last function in this module is l1s_dedicated_mode_manager(); + the two preceding functions match perfectly, but for this last function + when the reconstructed code is recompiled, the compiler's register + allocator makes different picks for reasons that could not be + successfully reversed. Because the code is compiled in Thumb mode + and the compiler made a different choice between low and high registers + in some places, the instructions do not line perfectly. The logic match + has instead been verified by manual comparison. + +l1_sync_intram.obj: + + Similar situation in the l1s_schedule_tasks() function: the function + is huge, there is an unknown set of factors determining what the + compiler's register allocator will do, and in this case there is even + a difference in the choice of register vs. stack for some temporaries. + As a result, the code does not line up and the logic had to be verified + manually. All other functions (preceding and following) match + perfectly. dl1_com.obj: