* Fix annoying rust-analyzer error with a cfg
* Refactor literal info into a struct
* Add field hide a literal from the GUI but still use for diffing
* Add config option to limit string literal diffing
* Fix deprecation warning `float_literal_f32_fallback`
* Hide non-preferred string encodings from the GUI
* Fix new cargo check warning
* Clippy again
* Rename "None" -> "Auto"
* Move symbol name processing from diff step to read step
* Use min_by_key instead of sorted_unstable_by_key
* Sort all symbols by address when reading the object
This fixes an underreport bug in diff_bss_section.
* More symbol sorting logic on read
* Move is_name_compiler_generated into SymbolFlag & filter out File symbols
---------
Co-authored-by: Luke Street <luke@street.dev>
* Fix data flow analysis for multiple text sections
* Data flow analysis results were only keyed by the symbol (function)
address. That doen't work if there are multiple text sections, the
result from the first function in one section will stomp the result
from the first function in another because both have address zero.
* Remove the ambiguity by keying off of the section address as well.
* Formatting
* Satisfy wasm build
* Clippy
* Formatting again
* Thought that section was the section address not the section number.
---------
Co-authored-by: Luke Street <luke.street@encounterpc.com>
* WIP implementation
* * Move flow analysis to dedicated file
* Show string constants inline
* Handle calls to MWCC "sled" helpers which otherwise disrupt flow analysis
* Run cargo insta review
* Apply clippy feedback
* Update more tests.
* Remove std use from ppc flow analysis
* Try to make wasm build work again
* More test changes
* Probably last wasm fix
* Formatting
* Fix WASM
* One more clippy thing
* Fixed display of float constants in a LFS or LFD instruction in case where there is a branch to the subsequent instruction with a different register value.
* On lines with a reloc, only hide Symbol type data flow values rather than all data flow values.
* Formatting
Reworks the local-branch handling logic to be more
unified: scan_instructions does all the work up front,
and process_instruction / display_instruction can
simply use the calculated branch destination instead
of performing their own is-relocation-target-
function-local checks.
(Hopefully) Fixes#192
* Reimplement colorized data relocation hover diffs
* Fix objdiff-wasm build
Data diffing doesn't seem to be fully implemented in objdiff-wasm yet, so just putting placeholders in so it compiles.
* Reloc hover: Add separators, override special color too