Skip to content
Nguyen Anh Quynh edited this page Feb 27, 2015 · 295 revisions

(Look here for the detailed changelog of v3.0.1)

This page details all the changes in the next branch, against the master branch. This next branch will become the next version, and will be merged into the master branch when next version is released.

The latest next code can be directly retrieved from https://github.com/aquynh/capstone/archive/next.zip, or via git - see instructions at the bottom of this page.

NOTE: changes are listed in time order: newer changes are at the top, older changes are at the bottom.


Library:

  • On *nix, only export symbols that are part of the API (instead of all the internal symbols).

Arm:

  • Fix a bug where arm_op_mem.disp is wrongly calculated (in DETAIL mode).
  • Fix a bug when handling the If-Then block.
  • Add lshift field to arm_op_mem.

X86:

  • More flexible on the order of prefixes, so better handle some tricky instructions.
  • REPNE prefix can go with STOS & MOVS instructions.
  • Fix a compilation bug for X86_REDUCE mode.
  • Fix operand size of instructions with operand PTR []
  • Add prefix constant REPE (= REP).
  • Handle the opcode 0x82 (non-64bit instructions).
  • Properly handle instructions using CR9~CR15 registers.
  • Remove dead SSE_CC constants.
  • Add new registers DR8-DR15.
  • New undocumented instructions FDISI8087_NOP, FENI8087_NOP & FFREEP.

MSVC:

  • Compile capstone.dll with static runtime MSVCR built in.

Python:

  • Fix a compiling issue of Cython binding with gcc 4.9.

Checkout -next branch

To checkout next branch, simply do this:

    $ git pull
    $ git checkout next

Then make sure to compile and install new code:

    $ ./make.sh
    $ sudo ./make.sh install

The next branch is frequently updated, so make sure to always get the latest code with:

    $ git pull origin next

Any time you want to get back to master branch, do:

    $ git checkout master