Intel Software Development Emulator is an Intel SDE emulator software. This version includes support for SSE4, AES and PCLMULQDQ and the Intel AVX instructions.
Developer comments
Intel is releasing this Intel SDE so that developers can gain familiarity with our upcoming instruction set extensions. Intel SDE can help ensure software is ready to take advantage of the opportunities created by these new instructions in our processors. We hope that developers will explore the new instructions using the available compilers and assemblers available now. To support software development for the processor codenamed Westmere, Intel has released an updated version of the Intel® Compiler which allows for generation of the SSE4, AES and PCLMULQDQ instructions. Another version of the Intel Compiler expected to be released in the first quarter of 2009 that will support the Intel AVX instructions. GNU binutils/gas (version 2.18.50.0.8 or later), YASM and NASM support SSE4, AES, PCLMULQDQ and Intel AVX.
Intel SDE is built upon the Pin dynamic binary instrumentation system and the XED encoder decoder. Pin controls the execution of an application. Pin examines each static instruction in the application approximately once, as it builds traces for execution. During this process, which is called instrumentation, for each instruction encountered Pin asks Intel SDE if this instruction should be emulated or not. If the instruction is to be emulated, then Intel SDE tells Pin to skip over that instruction and instead branch to the appropriate emulation routine. It also tells Pin how to invoke that emulation function, what arguments to pass, etc.
Intel SDE queries CPUID to figure out what features to emulate. It also modifies the output of CPUID so that compiled applications that check for the emulated features are told that those features exist.
Intel SDE comes with several useful emulator-enabled Pin tools and the XED disassembler:
* The basic emulator
* The mix histogramming tool: This Pin tool can compute histograms by any of: dynamic instructions executed, instruction length, instruction category, and ISA extension grouping. This tool can also display the top N most frequently executed basic blocks and disassemble them.
* The debugtrace ASCII tracing tool: This versatile tool is useful for observing the dynamic behavior of your code. It prints the instructions executed, and also the registers written, memory read and written, etc.
* The footprint tool: This simple tool counts how many unique 16 byte chunks of data were referenced during the execution of the program.
* The XED command line tool which can disassemble PECOFF or ELF binary executables.
Product's homepage
What's New in This Release: [ read full changelog ]
· 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.