Releases: Decompollaborate/rabbitizer
Releases · Decompollaborate/rabbitizer
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
1.0.1
- Allow taking
None
inAbi.fromStr
: returnso32
in that case. - New function
Utils.escapeString
: Escapes escape characters. - Many cleanups and formats
1.0.0
- New classes:
RegistersTracker
: Intended to facilitate tracking the state of the general purpose registers.
- New enums:
RegGprO32
andRegGprN32
- New configurations:
misc_omit0XOnSmallImm
: IfTrue
then the leading0x
of immediates in the [-9, 9] range is omitted. Defaults toFalse
.misc_upperCaseImm
: IfTrue
then immediates are outputted in uppercase. Defaults toTrue
.
Instruction
changes:- Constructor can accept
vram
andcategory
parameters. isHiPair
renamed tocanBeHi
.isLoPair
renamed tocanBeLo
.- Added
doesLoad
,doesStore
,maybeIsMove
,isPseudo
andarchitectureVersion
toInstrDescriptor
. - Python API:
Instruction#rs
,Instruction#rt
and ``Instruction#rd` now return an enum gpr type and will raise an exception if the instruction does not reference the corresponding register. - New methods:
getOpcodeName
,getProcessedImmediate
,hasDelaySlot
andisValid
. - Added
__reduce__
method to allow pickling the object.
- Constructor can accept
- Many code cleanups
0.1.0
cibuildwheel (ci/cd) (#1) * cibuildwheel attempt * fixes * skip pypy * re-enable pypy * try no pypy 3.7 * try again * try winders * remove snibblets