Releases: Decompollaborate/rabbitizer
Releases · Decompollaborate/rabbitizer
1.5.0: Rust bindings
- Adds Rust bindings
- The table-macro-hell has been changed a little to include pre-processed versions of all the tables in the repository. This change should be more friendly to IDEs
1.4.0
- 3 non-existent RSP instructions where removed (
rsp_cache
,rsp_lwc1
andrsp_swc1
) - New methods to know if an instruction reads the value of a GPR:
.readsRs
,.readsRd
and.readsRt
- Many descriptor information where corrected
- Deprecate
isJrRa()
, prefer newisReturn()
method - Deprecate
isJrNotRa()
, prefer newisJumptableJump()
method
Meta:
- Remove
setup.cfg
and move all the info topyproject.toml
- Descriptor logic errors are now checked in CI
1.3.3
- Fix RSP's jalr being marked as invalid
- Thanks to @Mr-Wiseguy for noticing
1.3.2
- Fixed RSP using CPU cop0 .inc file instead of RSP cop0 and cop2 files #13
- Thanks to @Mr-Wiseguy
- Check for
_INVALID
unique ids inisValid
1.3.1
Removes signedness from AccessType
1.3.0
- Adds C++ bindings
- Fix missing operands on some trap instructions
- Fix buffer size calculation for disassembly
- Deprecated functions/methods:
Instruction#getImmediate()
: UseInstruction#getProcessedImmediate()
insteadInstruction#getGenericBranchOffset()
: UseInstruction#getBranchOffsetGeneric()
insteadInstruction#mapInstrToType()
: UseInstruction#getAccessType()
insteadInstruction#isUnknownType()
Instruction#isJType()
: UseInstruction#isJumpWithAddress()
insteadInstruction#isIType()
: UseInstruction#hasOperandAlias(OperandType.cpu_immediate)
insteadInstruction#isRType()
Instruction#isRegimmType()
- New functions/methods:
Instruction#getBranchOffsetGeneric()
: LikeInstruction#getGenericBranchOffset()
, but does not require thecurrentVram
parameterInstruction#getBranchVramGeneric()
Instruction#getDestinationGpr()
Instruction#hasOperandAlias()
Instruction#isJumpWithAddress()
Instruction#readsHI()
Instruction#readsLO()
Instruction#modifiesHI()
Instruction#modifiesLO()
Instruction#getAccessType()
InstrCategory#fromStr()
- New enums:
OperandType
AccessType
1.2.2: `bal` and proper `\\` escape
- Add
bal
support - Use special notation for branches which should produce matching instructions even when no
immOverride
was passed - Escape
\
->\\
- Add
extern "C"
in every header
1.2.1: Static library building in the Makefile
- Makefile now creates a
librabbitizer.a
file by default. - Makefile can also build a
librabbitizer.so
withmake dynamic
- New
include/rabbitizer.h
header which includes every other header - Added a version header
1.2.0: `%got` compatibility
- New methods in
RegistersTracker
to support tracking%got
accessesprocessGpLoad
, which works similar toprocessLui
preprocessLoAndGetInfo
, which replaces the now deprecatedgetLuiOffsetForLo
- Move operand types to the table format. Operands were also renamed to a more concise name.
- Fix the wrong returned value on
Utils.From2Complement
whenbits
equals 32.
1.1.0: RSP and R5900 support
- Add proper instruction decoding for N64's RSP
- Add support for decoding the R5900 processor (PS2's Emotion Engine processor)
- Cleanup internal instruction tables format