Releases: Decompollaborate/rabbitizer
Releases · Decompollaborate/rabbitizer
1.12.0
[1.12.0] - 2024-07-21
Added
RegistersTracker.getJrRegData
.- Does what the old
RegistersTracker.getJrInfo
method does, but it returns
an actual object instead of an nullable tuple and offers extra information.
- Does what the old
RegistersTracker.processBranch
.- Allows tracking which registers has been used to decide branching.
Deprecated
RegistersTracker.getJrInfo
.- Use
RegistersTracker.getJrRegData
instead.
- Use
1.11.2
[1.11.2] - 2024-07-16
Added
- Implement the
rfe
("Restore From Exception") instruction.
Fixed
- Fix
pmfhl
,pmthl
,vilwr
andviswr
missing the.fmt
specifier.
1.11.1
[1.11.1] - 2024-07-12
Added
Instruction.isFunctionCall
: Checks if the given instruciton is a function
call.- If
config.toolchainTweaks_treatJAsUnconditionalBranch
is turned off then
j
instructions will be considered as function calls too. Useful for tail
call optimizations.
- If
Fixed
- Fix registers not being cleared after a
j
tail call, which was messing with
the pointer pairing logic.
1.11.0
Added
- New global configuration:
misc_expandJalr
: IfTrue
thenjalr
instructions will be always emitted
with two operands. Otherwise therd
register will be omitted if it is
$ra
and will be used explicitly if it isn't$ra
. Defaults toFalse
.
Fixed
- Fix crash in Rust bindings for to Rust 1.78.
- This happens because
slice.get_unchecked
now performs OoB checks in debug
builds, which is is triggered when trying to dereference unsized C arrays.
- This happens because
- Fix heap corruption in Rust bindings (#62)
- The C API was returning string sizes without accounting for the null
terminator, which produced issues on the Rust size which was not manually
including it.
- The C API was returning string sizes without accounting for the null
1.10.0
[1.10.0] - 2024-04-22
Added
- Add PSP's ALLEGREX instruction set support.
- The global
regNames.r4000AllegrexVfpuControlNamedRegisters
option controls
if named registers should be used for the VFPU control registers of the R4000
ALLEGREX. Utils.floatRepr_32From16
function.- Converts a half float to a single precision float.
- Both the argument and the return value correspond to their hex
representation instead of an actual float.
Changed
- Cleanups in tests code.
Fixed
- Fix typo on C++ bindings.
- The registers getters of the R5900 instruction class was checking for the
wrong operands.
- The registers getters of the R5900 instruction class was checking for the
1.9.5
[1.9.5] - 2024-04-03
Changed
- Consider r5900's
paddub
as a possible move instruction. - Internal rework to avoid allocating memory when calculating required buffer
size for disassembly.- This is part of the
RabbitizerInstruction_getSizeForBuffer
function. - This change may help recent Windows specific issues.
- This is part of the
1.9.4
[1.9.4] - 2024-03-18
Changed
- Always use named registers for R5900's VU instructions.
1.9.3
[1.9.3] - 2024-03-17
Fixed
- Fix the disassembly of
pref
. - Fix typo on
c.seq.d
.- Was typed as
c.deq.d
.
- Was typed as
1.9.2
[1.9.2] - 2024-03-10
Fixed
- Fix possible stack overflow if
immOverride
is larger than 255 bytes.
1.9.1
[1.9.1] - 2024-02-18
Fixed
- Fix PyPI releases being broken due to a GHA update.