3.0.4

July 15, 2015

Release 3.0.4 is a stable version with important fixes in the core & Python bindings.


Library

  • Improve cross-compile for Android using Android NDK.
  • Support cross-compile for AArch64 Android (with Linux GCC).
  • Removed osxkernel_inttypes.h that is incompatible with BSD license.
  • Make it possible to compile with CC having a space inside (like “ccache gcc”).

X86

  • Fix a null pointer dereference bug on handling code with special prefixes.
  • Properly handle AL/AX/EAX operand for OUT instruction in AT&T syntax.
  • Print immediate operand in positive form in some algorithm instructions.
  • Properly decode some SSE instructions.

Arm

  • Fixed a memory corruption bug on IT instruction.

Mips

  • Fixed instruction ID of SUBU instruction.
  • Fixed a memory corruption bug.

PowerPC

  • Fixed some memory corruption bugs.

XCore

  • Fixed a memory corruption bug when instruction has a memory operand.

Python binding

  • Support Virtualenv.
  • setup.py supports option –user if not in a virtualenv to allow for local usage.
  • Properly handle the destruction of Cs object in the case the shared library was already unloaded.