Skip to content

Releases: Decompollaborate/rabbitizer

1.12.0

21 Jul 23:29
21a849c
Compare
Choose a tag to compare

[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.
  • RegistersTracker.processBranch.
    • Allows tracking which registers has been used to decide branching.

Deprecated

  • RegistersTracker.getJrInfo.
    • Use RegistersTracker.getJrRegData instead.

1.11.2

17 Jul 01:19
1e0daec
Compare
Choose a tag to compare

[1.11.2] - 2024-07-16

Added

  • Implement the rfe ("Restore From Exception") instruction.

Fixed

  • Fix pmfhl, pmthl, vilwr and viswr missing the .fmt specifier.

1.11.1

12 Jul 15:50
4493e61
Compare
Choose a tag to compare

[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.

Fixed

  • Fix registers not being cleared after a j tail call, which was messing with
    the pointer pairing logic.

1.11.0

22 May 16:52
34ecb56
Compare
Choose a tag to compare

Added

  • New global configuration:
    • misc_expandJalr: If True then jalr instructions will be always emitted
      with two operands. Otherwise the rd register will be omitted if it is
      $ra and will be used explicitly if it isn't $ra. Defaults to False.

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.
  • 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.

1.10.0

22 Apr 17:26
adc30b6
Compare
Choose a tag to compare

[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.

1.9.5

03 Apr 16:15
e281d46
Compare
Choose a tag to compare

[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.

1.9.4

18 Mar 19:42
70a8166
Compare
Choose a tag to compare

[1.9.4] - 2024-03-18

Changed

  • Always use named registers for R5900's VU instructions.

1.9.3

17 Mar 14:21
fce67c9
Compare
Choose a tag to compare

[1.9.3] - 2024-03-17

Fixed

  • Fix the disassembly of pref.
  • Fix typo on c.seq.d.
    • Was typed as c.deq.d.

1.9.2

10 Mar 14:58
078574d
Compare
Choose a tag to compare

[1.9.2] - 2024-03-10

Fixed

  • Fix possible stack overflow if immOverride is larger than 255 bytes.

1.9.1

18 Feb 19:53
1303f2f
Compare
Choose a tag to compare

[1.9.1] - 2024-02-18

Fixed

  • Fix PyPI releases being broken due to a GHA update.