Releases: Decompollaborate/spimdisasm
Releases · Decompollaborate/spimdisasm
1.32.0
1.31.3
[1.31.3] - 2024-12-21
Fixed
- Fix a crash produced by not handling new
AccessType
s introduced byrabbitizer
. rabbitizer
1.12.5 or above is required.
1.31.2
[1.31.2] - 2024-12-02
Fixed
- Fix jumptable labels sometimes missing their rom suffix.
1.31.1
[1.31.1] - 2024-12-01
Fixed
- Fix some jumptable labels missing their rom address on overlays.
1.31.0
[1.31.0] - 2024-11-20
Changed
- Improve comment specifying the reason why an address could not be symbolized
if it is$gp
relative. - Prevent section split suggestions if the selected compiler doesn't follow the
0x10 boundary rule. - Rename
MWCC
compiler option toMWCCPS2
. - Python 3.9 or later is now required.
- Nothing really changed. Just the CI tools I was using is refusing to use any
Python version older than this. Sorry if you were affected by this.
- Nothing really changed. Just the CI tools I was using is refusing to use any
1.30.2
[1.30.2] - 2024-09-19
Fixed
- Fix not generating branch labels under some circumstances.
1.30.1
[1.30.1] - 2024-09-19
Added
- Add a way to indentate instructions and data.
- May be desirable to be used with IDEs that support collapsing code by
looking at the whitespace of each line. - This can be controlled by setting the
GlobalConfig.ASM_INDENTATION
option. - Defaults to 4.
- May be desirable to be used with IDEs that support collapsing code by
- Add a way to indentate labels within functions.
- May be desirable to be used with IDEs that support collapsing code by
looking at the whitespace of each line. - This can be controlled by setting the
GlobalConfig.ASM_INDENTATION_LABELS
option. - Defaults to 2.
- May be desirable to be used with IDEs that support collapsing code by
Changed
- Assembly now gets indentated by default to 4 spaces (or 2 spaces for labels).
- Use
GlobalConfig.ASM_INDENTATION
andGlobalConfig.ASM_INDENTATION_LABELS
to disable this behavior.
- Use
Fixed
- Prevent generating labels for ignored symbols that are referenced by function
calls (ie in ajal
).
1.30.0
[1.30.0] - 2024-09-10
Changed
- Avoid migrating rodata symbols to functions if they are referenced by other
data or rodata symbols. - Disallow data and rodata symbols from referencing jumptables.
- BREAKING: Change the rodata migration algorithm.
- This allows for the algorithm to migrate unreferenced symbols that are
between other symbols that do get migrated to the given function. - The algorithm will now stop to migrate symbols as soon as it finds a symbol
that should not be migrated to the current function (i.e. it should be
migrated to other function, it is referenced by a data symbol, etc).- This could be an abrupt change for projects that were relying on the old
migration scheme, because some symbols may suddenly disappear, avoiding a
correct build. - This change should also reduce (and hopefully remove) the gaps generated
between symbols during rodata migration.
- This could be an abrupt change for projects that were relying on the old
- This allows for the algorithm to migrate unreferenced symbols that are
Deprecated
- Depreacte
SymbolBase.isRdata
.
Fixed
- Fix pointer tracking: fix garbage state of registers after function jumping
outside of the current function.
1.29.0
[1.29.0] - 2024-09-09
Added
- New
ContextSymbol.functionOwnerForMigration
attribute.- Allows to override to which function a given rodata symbol should be
migrated to. - Specially useful for unreferenced symbols.
- WARNING: It is undefined behavior if during rodata migration the listed
function does not exists on the given text section. For example this symbol
may get lost in limbo.
- Allows to override to which function a given rodata symbol should be
Fixed
- Fix data references to symbols with adends (that have user declared sizes)
being symbolized instead of just using an addend to the symbol.- This bug seems like was only happening if the referenced symbol was in the
same section as the one who was referencing it.
- This bug seems like was only happening if the referenced symbol was in the
1.28.1
[1.28.1] - 2024-08-19
Changed
- Avoid emitting "global" visibility on labels.
- Avoid emitting a rom offset comment on bss symbols.
- Change on
gpRelHack
behavior:- Emit
.extern
s with dummy size at the top of the function for all the
%gp_rel
-accessed symbols within the function.
- Emit
Fixed
- Fix function symbols and labels not acknowledging their parent file.
- Used mainly for debugging purposes.