Intel® Software Development Emulator Release Notes

2014-03-06 version 6.22.0
  • Exclude PAUSE from chip-check because it is a NOP on older CPUs and on quark. 
2014-02-13 version 6.20.0
  • Added support for XSAVEC and CLFLUSHOPT.
  • Disabled TSX CPUID bits when TSX emulation is not requested.
  • Improved disassembly for MPX instructions.
  • Added an option for running chip-check only on the main executable.
  • Added support for -quark (Pentium ISA).
  • Added application debugging for Mac OSX with the lldb debugger.
2013-11-16 version 6.12.0
  • Added support to Mac OSX version 10.9.
  • Improved the TSX statistics information.
  • Various fixes with the emulation of floating-point instructions of Intel AVX-512.
  • Enabled the alignment checker tool by default for instructions that require alignment.
  • Fixed mismatch between mix and dynamic mask profiler.
  • Updated the Intel MPX runtime libraries for Windows. 
  • Performance improvements when modeling a CPU prior to AVX-512.
2013-09-21 version 6.7.0
  • Debugging with GDB is now supported with Intel® AVX-512. Download the new GDB from here.
  • Emulation of  Intel® AVX2 FMA and  Intel AVX-512 FMA uses native FMA instructions when running on Haswell host.
  • Various fixes with the emulation of floating-point and conversion instructions of Intel AVX-512.
  • Disassembly of control transfer instructions displays the 'bnd' prefix when used with Intel® MPX.
  • Updated the XED ISA set names for Intel AVX-512. This is visible in 'mix' statistics output.
  • This release goes with 2013-08-29 version of the Intel MPX runtime.
2013-07-22 version 6.1.0
  • Emulation support for the Intel®Advanced Vector Extensions 512 (Intel® AVX-512) instructions present on the Intel Knights Landing microarchitecture.
  • Emulation support for the Intel® Secure Hash Algorithm (Intel® SHA) extensions present on the Intel Goldmont microarchtiecture. 
  • Emulation support for the Intel® Memory Protection Extensions (Intel® MPX)  present on the Intel Skylake and Goldmont microarchitectures.
  • Support for Hardware Lock Elision introduced on the Intel Haswell microarchitecture
  • Improved support for Restricted Transactional Memory introduced on the Intel Haswell microarchitecture.
  • Improved support for the OS X* operating system (Mountain Lion)
  • The footprint tool now has the ability to compute footprint over time for working-set estimation.
  • A new tool called the dynamic mask profiler is provided using -dyn_mask_profile knob. The output is in a simple XML format.
The Intel SDE development team has grown to include Michael Berezalsky, Mark Charney, Michael Gorin, Omer Mor, Ariel Slonim and Ady Tal.
 
 
2013-01-03 version 5.38
  • Improvements in RTM emulation stability. Added statistics knobs.  Updated knobs.
  • Support for debugging integration with Microsoft Visual Studio 2012. See main page for information.
  • Improved multithreaded stability when using the AVX/SSE transition checker
  • Mac OS X: support for code-signed binaries, simplifying execution. See main page for information about the "taskport".
  • XED: added elf/dwarf support back to the command line tool
  • TZCNT ZF flags fix
 
2012-11-01 version 5.31 - major update
  • Major update including fixes for the processor codenamed Haswell and introduction of instructions in the processor codenamed Broadwell
  • First public SDE release for OS X, 10.6 and 10.7.  See additional information on the main Intel SDE web page for required permissions.
  • HSW's RTM mode is supported with the "-rtm-mode full" option. This feature is very new and the Intel SDE implementation might be a little unstable.
  • Completely new mechanism for handling of CPUID. CPUID values now come from an input file.
  • SDE's -chip-check feature checks to make sure instructions are valid for the specified chip. See "sde -help" for the various chip options.
  • Exception handling fixes
  • Haswell BMI emulation fixes, including flags output.
  • Debugtrace multithreading safety improvements
  • Mix top-blocks sorting issues.  Mix also has better support for allocating stats to overlapping blocks.
  • Mix default blocks size is now 1500 instructions to avoid fragmenting large hot blocks.
  • XED now can emit "dot" graphs for specified regions:  path-to-sde-kit/xed -i SOMEEXE -as 0x40316b -ae 0x4031b3 -dot foo.dot; dot -O -Tpdf foo.dot
  • Mix has prefix a legacy-prefix histogram
  • Footprint tool can now collect stats about unique memory pages as well as unique cache lines. The footprint tool is now faster as well.
  • Improved speed of AVX/SSE transition checker by roughly 12%. See the -ast knob in "sde -thelp".
  • Fixed some numerical errors in our software emulation of the FMA instruction for denormal numbers.
  • Various stability improvements from using a newer version of Pin.
  • Better handling of MXCSR exception status bigs for AVX1/2 instructions. We still do not support raising unmasked floating point errors from emulated instructions.
  • Can now set environment variables from the command line with the -env VAR VALUE option.
  • The commands for the GDB interface have been updated. See "monitor help sde" when attached as described on the main page. Please use GDB 7.4 or later.
  • The chip check error message includes the instruction bytes of the offending instruction.
  • Multiprocess output file handling. You used to have to supply "-i" to get the process id inserted in to the file name to avoid multiprocess applications from overwriting the common output files. Now we attempt to detect the creating of other processes and add the PID to the file names automatically.  The parent / child relationship is recorded in the file name.
  • Better support for unused bits in the VEX encodings in 32b mode.
The Intel SDE development team has grown to include Michael Berezalsky, Mark Charney, Michael Gorin, Omer Mor, Ariel Slonim and Ady Tal.
 
2011-12-15 version 4.46
  • Linux* 3.x is supported
  • Better support for running on Intel® AVX-enabled hosts
  • All output files now begin "sde-" and end with ".txt" by default
  • Mix is faster and does more analysis of SIMD operations
  • Mix has line number support for the top blocks when the information is available in the application
  • The -ptr-chk option now checks the memory refernces of gather operations
  • Fixed support for file descriptor leak when exec'ing thousands of threads on Linux*.
  • Misc other stability improvements.
 
2011-07-01 version 4.29
  • Support for the Haswell new instructions in the Intel AVX programmers reference version 11.
  • Mix now includes category and instruction length histograms automatically so the corresponding knobs were removed.
  • Many other changes
 
2010-12-23 verison 3.89 (Linux* only)
  • Fixed runtime libraries. Version 3.88 accidentally included runtime libraries that require a newer version of glibc than is present on older systems (like RHEL4).
2010-12-21 version 3.88
 
  • Support for the post-32nm processor instructions for the processor codenamed Ivy Bridge in the 008 revision of the Intel AVX programmers reference document
  • Many stability improvements
  • "sde -thelp" goes to stdout, not stderr
  • mix has a "-demangle 0" option to turn off demangling
  • xed disassembler handles uninitialized code sections in windows binaries
  • xed supports dwarf line number information with the -line knob on Linux*.
  • mix has improved memory efficiency
  • To debug on Linux*, you no longer need the -avx-gdb knob but you must use gdb 7.2 or later which supports a new XML remote-debug protocol.
 
2010-03-11 version 3.09
 
 
  • When pin or sde crashes due to bugs in user applications, the output of the circular buffer use for -itrace-execute (etc.) was not being dumped to disk. It is now.
  • Fixed circular buffer used for -itrace-execute and -itrace-execute-emulate. It was not initializing the circular buffer when -itrace-lines was used and would just crash immediately.  In addition to *actually* making the feature work, I sped it up immensely by reusing allocated string buffers.
  • Fixed 14 scalar Intel AVX instructions that were referencing too much memory (128b instead of 32b or 64b).
  • Made the xsave emulator be enabled all the time even when xsave is present on the hardware. One can disable it with '-xsave 0'.
  • All output log / stats file names now end in .txt by default.
  • Added a descriptive header to the top of the Intel AVX/Intel SSE transition output file.
  • debugtrace now print mmx (and x87) register values
  • vmaskmov* instructions are now implemented in a thread-safe way.
  • vpmov[sz]x instructions now correctly reference less memory to avoid extra page accesses.
  • New memory pointer checker. This option check all memory references for accessibility before the user application program is allowed to access memory.  There is also a null pointer checker which previously would only check Intel AVX instructions. The null checker writes to stderr (if accessible) and to a file sde-null-check.out.txt. The pointer checker writes to stderr (if accessible) and to a file sde-ptr-check.out.txt. The new knobs are: -null-check and -ptr-check
  • enforcing VL=128 on any Intel AVX scalar instructions.
  • fixed for the -no-avx and -no-aes knobs in the sde driver
  • xed: many corner case bugs fixed after yet another validation review
 
 
2010-02-08 version 3.00
  • Changed output files to have .txt suffix.
  • debugtrace prints x87 and mmx registers
  • thread-safety fix for vmaskmov* instructions
  • reduced amount of memory referenced by vpmov[sz]* instructions.
  • New memory pointer checker (See -ptr-check and -null-check knobs)
  • Added VL=128 requirement for Intel AVX scalar instructions.
  • Fixed knobs -no-avx and -no-aes in the sde front end driver
 
2009-12-31 version 2.94
Major update.
  • Better support for recent Linux* distributions, like Ubuntu* 9.10.
  • Better support for debugging with GDB on Linux*.
  • Using GDB 7.0.50, and "sde -debug -avx-gdb -- yourapp", gdb can directly obtain Intel AVX register values without requiring "monitor yreg N" or "monitor yregs" commands.
  • Windows version supports latest dbghelp.dll 6.11.1.404
  • Fixes for paths with spaces
  • Using Pin's "safecopy" mechanism to access user memory
  • Spelling fixes
  • Tool arguments grouped more sensibly; See the output of "sde -thelp"
  • Support for Intel AVX unmasked zero divide exceptions on Windows
  • Intel AVX/Intel SSE transition tracing feature with -ast-trace knob
  • Intel AVX/Intel SSE transition checker emits previous block information
  • CPUID leaf-zero emulation support
  • Alignment checker upgrades
  • XED disassembler supports windows debugging symbols (via dbghelp.dll)
  • Fix for Nan case in Intel®SSE4.1 roundss on Linux* only
  • Fix for Intel® SSE4 PEXTRW gpr,xmm
  • More CPUID feature knobs for Intel® SSE technologies
  • Fix for case emulation of FMA single precision that affected accuracy
  • Support for FZ and DAZ in FMA routines
  • Data watch point support
  • Fix for MXCSR.OE and IE for vcomiss/vucomiss an Nan inputs
  • New chip-check feature to restrict instructions to specific chips. See "sde -thelp"
  • Fast icounting feature (faster than using mix)
  • Fixes for Nan issues on windows with sqrt, mul, div, sub and cmp - it was quieting SNANs.
  • Upgraded pin can execute instructions with illegal instructions and an application-installed handler will be invoked.
  • New -itrace* knobs
  • Circular buffer support in debugtrace


2009-01-30 version 1.70
Added VPCLMULQDQ
 
2009-01-09 version 1.61
Synchronizing with Intel AVX architecture update.
New 3-operand FMA instructions, removed VPERMIL2{PS,PD}, miscellaneous bug fixes.
New footprint feature.
Rearranged mix output, added function summaries.
New version of dbghelp.dll required for windows (See the FAQ).
 

2008-08-10 version 1.13

Initial Release
For more complete information about compiler optimizations, see our Optimization Notice.