VIXL Change Log

  • 1.13

    • Improve code formatting and add tests using clang-format.
    • Fix bugs in disassembly of unallocated instruction encodings.
    • Fix some execution trace bugs, and add tests.
    • Other small bug fixes and improvements.
  • 1.12

    • Bug fixes for toolchain compatibility.
  • 1.11

    • Fix bug in simulation of add with carry.
    • Fix use-after-free bug in Literal handling.
    • Build system updates for Android.
    • Add option to run test.py under Valgrind.
    • Other small bug fixes and improvements.
  • 1.10

    • Improved support for externally managed literals.
    • Reworked build and test infrastructure.
    • Other small bug fixes and improvements.
  • 1.9

    • Improved compatibility with Android build system.
    • Improved compatibility with Clang toolchain.
    • Added support for umulh instruction.
    • Added support for fcmpe and fccmpe instructions.
    • Other small bug fixes and improvements.
  • 1.8

    • Complete NEON instruction set support.
    • Support long branches using veneers.
    • Improved handling of literal pools.
    • Support some ic and dc cache op instructions.
    • Support CRC32 instructions.
    • Support half-precision floating point instructions.
    • MacroAssembler support for bfm, ubfm and sbfm.
    • Other small bug fixes and improvements.
  • 1.7

    • Added support for prfm prefetch instructions.
    • Added support for all frint instruction variants.
    • Add support for disassembling as an offset from a given address.
    • Fixed the disassembly of movz and movn.
    • Provide static helpers for immediate generation.
    • Provide helpers to create CPURegList from list unions or intersections.
    • Improved register value tracing.
    • Multithreading test fixes.
    • Other small bug fixes and build system improvements.
  • 1.6

    • Make literal pool management the responsibility of the macro assembler.
    • Move code buffer management out of the Assembler.
    • Support ldrsw for literals.
    • Support binding a label to a specific offset.
    • Add macro assembler support for load/store pair with arbitrary offset.
    • Support Peek and Poke for CPURegLists.
    • Fix disassembly of branch targets.
    • Fix Decoder visitor insertion order.
    • Separate Decoder visitors into const and non-const variants.
    • Fix simulator for branches to tagged addresses.
    • Add a VIM YouCompleteMe configuration file.
    • Other small bug fixes and build system improvements.
  • 1.5

    • Tagged pointer support.
    • Implement support for exclusive access instructions.
    • Implement support for adrp instruction.
    • Faster code for logical immediate identification.
    • Generate better code for immediates passed to shift-capable instructions.
    • Allow explicit use of unscaled-offset loads and stores.
    • Build and test infrastructure improvements.
    • Corrected computation of cache line size.
    • Fix simulation of extr instruction.
    • Fixed a bug when moving kWMinInt to a register.
    • Other small bug fixes.
  • 1.4

    • Added support for frintm.
    • Fixed simulation of frintn and frinta for corner cases.
    • Added more tests for floating point instruction simulation.
    • Modified CalleeSave() and CalleeRestore() to push general purpose registers before floating point registers on the stack.
    • Fixed Printf for mixed argument types, and use on real hardware.
    • Improved compatibility with some 32-bit compilers.
  • 1.3

    • Address inaccuracies in the simulated floating point instructions.
    • Implement Default-NaN floating point mode.
    • Introduce UseScratchRegisterScope for controlling the use of temporary registers.
    • Enable building VIXL on 32-bit hosts.
    • Other small bug fixes and improvements.
  • 1.2

    • Added support for fmadd, fnmadd, fnmsub, fminnm, fmaxnm, frinta, fcvtau and fcvtas.
    • Added support for assembling and disassembling isb, dsb and dmb.
    • Added support for automatic inversion of compare instructions when using negative immediates.
    • Added support for using movn when generating immediates.
    • Added explicit flag-setting ‘S’ instructions, and removed SetFlags and LeaveFlags arguments.
    • Added support for Movk in macro assembler.
    • Added support for W register parameters to Tbz and Tbnz.
    • Added support for using immediate operands with Csel.
    • Added new debugger syntax for memory inspection.
    • Fixed smull, fmsub and sdiv simulation.
    • Fixed sign extension for W->X conversions using sxtb, sxth and sxtw.
    • Prevented code generation for certain side-effect free operations, such as add r, r, #0, in the macro assembler.
    • Other small bug fixes.
  • 1.1

    • Improved robustness of instruction decoder and disassembler.
    • Added support for double-to-float conversions using fcvt.
    • Added support for more fixed-point to floating-point conversions (ucvtf and scvtf).
    • Added instruction statistics collection class instrument-a64.cc.
  • 1.0

    • Initial release.