Skip to content

Releases: Decompollaborate/rabbitizer

1.3.1

16 Oct 20:22
54f9976
Compare
Choose a tag to compare

Removes signedness from AccessType

1.3.0

15 Oct 13:18
af1d62b
Compare
Choose a tag to compare
  • Adds C++ bindings
  • Fix missing operands on some trap instructions
  • Fix buffer size calculation for disassembly
  • Deprecated functions/methods:
    • Instruction#getImmediate(): Use Instruction#getProcessedImmediate() instead
    • Instruction#getGenericBranchOffset(): Use Instruction#getBranchOffsetGeneric() instead
    • Instruction#mapInstrToType(): Use Instruction#getAccessType() instead
    • Instruction#isUnknownType()
    • Instruction#isJType(): Use Instruction#isJumpWithAddress() instead
    • Instruction#isIType(): Use Instruction#hasOperandAlias(OperandType.cpu_immediate) instead
    • Instruction#isRType()
    • Instruction#isRegimmType()
  • New functions/methods:
    • Instruction#getBranchOffsetGeneric(): Like Instruction#getGenericBranchOffset(), but does not require the currentVram parameter
    • Instruction#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

09 Oct 20:04
28a2446
Compare
Choose a tag to compare
  • 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

26 Sep 14:32
70426d5
Compare
Choose a tag to compare
  • Makefile now creates a librabbitizer.a file by default.
  • Makefile can also build a librabbitizer.so with make dynamic
  • New include/rabbitizer.h header which includes every other header
  • Added a version header

1.2.0: `%got` compatibility

17 Sep 20:44
4653029
Compare
Choose a tag to compare
  • New methods in RegistersTracker to support tracking %got accesses
    • processGpLoad, which works similar to processLui
    • preprocessLoAndGetInfo, which replaces the now deprecated getLuiOffsetForLo
  • Move operand types to the table format. Operands were also renamed to a more concise name.
  • Fix the wrong returned value on Utils.From2Complement when bits equals 32.

1.1.0: RSP and R5900 support

27 Aug 16:47
7d66352
Compare
Choose a tag to compare
  • 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

12 Jul 23:26
ebb4b84
Compare
Choose a tag to compare
  • Allow taking None in Abi.fromStr: returns o32 in that case.
  • New function Utils.escapeString: Escapes escape characters.
  • Many cleanups and formats

1.0.0

07 Jul 23:49
937c7b7
Compare
Choose a tag to compare
  • New classes:
    • RegistersTracker: Intended to facilitate tracking the state of the general purpose registers.
  • New enums:
    • RegGprO32 and RegGprN32
  • New configurations:
    • misc_omit0XOnSmallImm: If True then the leading 0x of immediates in the [-9, 9] range is omitted. Defaults to False.
    • misc_upperCaseImm: If True then immediates are outputted in uppercase. Defaults to True.
  • Instruction changes:
    • Constructor can accept vram and category parameters.
    • isHiPair renamed to canBeHi.
    • isLoPair renamed to canBeLo.
    • Added doesLoad, doesStore, maybeIsMove, isPseudo and architectureVersion to InstrDescriptor.
    • 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 and isValid.
    • Added __reduce__ method to allow pickling the object.
  • Many code cleanups

0.1.0

10 Jun 18:51
c81cc49
Compare
Choose a tag to compare
cibuildwheel (ci/cd) (#1)

* cibuildwheel attempt

* fixes

* skip pypy

* re-enable pypy

* try no pypy 3.7

* try again

* try winders

* remove snibblets