* Update diff.rs
* Fixes
* More fixes
* More fixes...
* Cargo fmt
* fmt
* Trim extra
* cargo +nightly fmt
* Update 'Copy ASM' button text to include emoji
* Implement diffing individual data symbols
* Remove unused code for diffing sections
* Data diff view: Make rows show offset within the symbol, not within the section
* Remove SelectedSymbol enum as it only has a single variant now
* Create fake data section symbols to allow diffing entire sections again
* Fix text sections not having their size zeroed out
* Update test snapshots
* Clean up code for inferring section symbol size
* Fix bug where PPC pool references weren't ignoring section symbols
* Update comment
* Always add unique section symbols for data sections
* Update test snapshots
* Remove unnecessary clone in format! call
* Auto-start mapping for unpaired data symbols
This allows explicitly ignoring changes to certain
files or directories, even if the changed file ends
up matching `watch_patterns`. The default value,
`build/**/*` will ensure that changes in the build
directory will not trigger a duplicate rebuild.
Resolves#143Resolves#215
* 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
When searching for a symbol by name, only look at
symbols that are defined within the object,
ignoring extern symbols (symbols without section).
Fixes#180Fixes#181
* Limit left-panel scrollview to the file tree
Removes the redundant build button
* Expand ScrollArea to full side panel width
* Use auto_shrink(false) instead of set_width
---------
Co-authored-by: Luke Street <luke@street.dev>
* 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
* PPC: Calculate pooled relocations
Reimplements #140
The relocations are now generated when the object is first read in `parse`, right after the real relocations are read.
`resolve_relocation` was changed to take `obj.symbols` instead of `obj` as an argument, because `obj` itself doesn't exist yet at the time the relocations are being read.
* Improve readability of PPC pool relocs code
* Fix regression causing extern pool relocs to be ignored
* Fix showing incorrect diff when diffing weak stripped symbol with an addend
This is a regression that was introduced by #158 diffing addends in addition to symbol names. But it's not really a bug in that PR, rather it seems like I simply never added the offset into the addend when creating a fake pool relocation for an extern symbol. So this commit fixes that root issue instead.
* Add PPC "Calculate pooled data references" option
* Fix objdiff-wasm compilation errors
* Update PPC test snapshots
* Show data literal values on instruction hover
Reimplements #108
* Show reloc diffs in func view when data's content differs
Reimplements #153
* Data diff view: Show relocs on hover and in context menu
This reimplements #154
Note that colorizing the text depending on the kind of diff has still not been reimplemented yet
* Fix up some comments
Implements MIPS relocation pairing logic.
New option for "Register '$' prefix", off by default.
Fixes various regressions introduced by refactoring.
Resolves#122Resolves#156
* Data view: Show data bytes with differing relocations as a diff
* Data view: Show differing relocations on hover
* Symbol list view: Adjust symbol/section match %s when relocations differ
* Improve data reloc diffing logic
* Don't make reloc diffs cause bytes to show as red or green
* Properly detect byte size of each relocation
* Data view: Add context menu for copying relocation target symbols
* Also show already-matching relocations on hover/right click
* Change font color for nonmatching relocs on hover