Intel® Software Development Emulator Release Notes

Submit New Article

June 29, 2011 12:00 AM PDT


2011-12-15 version 4.46
  • Linux 3.x is supported
  • Better support for running on 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 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 Ivybridge in the 008 revision of the Intel(R) 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 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 AVX/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 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 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 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 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 AVX unmasked zero divide exceptions on Windows
  • AVX/SSE transition tracing feature with -ast-trace knob
  • AVX/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 SSE4.1 roundss on linux only
  • Fix for SSE4 PEXTRW gpr,xmm
  • More CPUID feature knobs for 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 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