summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/insts
AgeCommit message (Collapse)Author
2011-05-06X86: Fix the Lldt instructions so they load the ldtr and not the tr.Gabe Black
2011-03-01X86: Mark IO reads and writes as non-speculative.Gabe Black
2011-02-07X86: Use all 64 bits of the lstar register in the SYSCALL_64 macroop.Tim Harris
During SYSCALL_64, use dataSize=8 when handling new rip (ref http://www.intel.com/Assets/PDF/manual/253668.pdf 5.8.8 IA32_LSTAR is a 64-bit address)
2011-02-07X86: Fix JMP_FAR_I to unpack a far pointer correctly.Tim Harris
JMP_FAR_I was unpacking its far pointer operand using sll instead of srl like it should, and also putting the components in the wrong registers for use by other microcode.
2011-02-07X86: Read the LDT/GDT at CPL0 when executing an iret.Tim Harris
During iret access LDT/GDT at CPL0 rather than after transition to user mode (if I'm reading the Intel IA-64 architecture spec correctly, the contents of the descriptor table are read before the CPL is updated).
2011-02-02X86: Replace the stupd microop with a store/update sequence.Gabe Black
2010-09-29X86: Fix the RIP relative versions of the BT, BTC, BTR, and BTS instructions.Gabe Black
2010-08-23X86: Mark serializing macroops and regular instructions as such.Gabe Black
2010-07-21Fix x86 XCHG macro-op to use locked micro-ops for all memory accessesTushar Krishna
2010-05-23copyright: Change HP copyright on x86 code to be more friendlyNathan Binkert
2009-12-19X86: Add a common named flag for signed media operations.Gabe Black
2009-12-19X86: Create a common flag with a name to indicate high multiplies.Gabe Black
2009-12-19X86: Create a common flag with a name to indicate scalar media instructions.Gabe Black
2009-11-10X86: Fix bugs in movd implementation.Vince Weaver
Unfortunately my implementation of the movd instruction had two bugs. In one case, when moving a 32-bit value into an xmm register, the lower half of the xmm register was not zero extended. The other case is that xmm was used instead of xmmlm as the source for a register move. My test case didn't notice this at first as it moved xmm0 to eax, which both have the same register number.
2009-11-04X86: Fix problem with movhps instructionVince Weaver
This problem is like the one fixed with movhpd a few weeks ago. A +8 displacement is used to access memory when there should be none. This fix is needed for the perlbmk spec2k benchmark to run.
2009-10-30X86: Add support for x86 psrldq and pslldq instructionsVince Weaver
These are complicated instructions and the micro-code might be suboptimal. This has been tested with some small sample programs (attached) The psrldq instruction is needed by various spec2k programs.
2009-10-30X86: Implement movd_Vo_Edp on X86Vince Weaver
This patch implements the movd_Vo_Edp series of instructions. It addresses various concerns by Gabe Black about which file the instruction belonged in, as well as supporting REX prefixed instructions properly. This instruction is needed for some of the spec2k benchmarks, most notably bzip2.
2009-10-30X86: Implement the X86 sse2 haddpd instructionVince Weaver
This patch implements the haddpd instruction. It fixes the problem in the previous version (pointed out by Gabe Black) where an incorrect result would happen if you issue the instruction with the same argument twice, i.e. "haddpd %xmm0,%xmm0" This instruction is used by many spec2k benchmarks.
2009-10-27X86: Replace "DISPLACEMENT" with disp in movhpd.Gabe Black
2009-10-27Fix problem with the x86 sse movhpd instruction.Vince Weaver
The movhpd instruction was writing to the wrong memory offset.
2009-10-21Implement X86 sse2 movdqu and movdqa instructionsVince Weaver
The movdqa instruction should enforce 16-byte alignment. This implementation does not do that. These instructions are needed for most of x86_64 spec2k to run.
2009-09-16X86: Fix checking the NT bit during an IRET.Gabe Black
2009-09-16X86: Fix setting the busy bit in the task descriptor in LTR.Gabe Black
2009-08-20X86: Fix the decoding for and fill out FST and FSTP.Gabe Black
2009-08-17X86: Implement MOVNTI.Gabe Black
2009-08-17X86: Implement MOVQ2DQ.Gabe Black
2009-08-17X86: Implement MOVDQ2Q.Gabe Black
2009-08-17X86: Implement the media instructions that convert fp values to ints.Gabe Black
2009-08-17X86: Implement the instructions that compare fp values and write a mask as a ↵Gabe Black
result.
2009-08-17X86: Implement the instructions that compare fp values and write to rflags.Gabe Black
2009-08-17X86: Implement MOVSS.Gabe Black
2009-08-17X86: Implement LDMXCSR.Gabe Black
2009-08-17X86: Implement STMXCSR.Gabe Black
2009-08-17X86: Implement the shuffle media instructions.Gabe Black
2009-08-17X86: Implement the mask move instructions.Gabe Black
2009-08-17X86: Implement the instructions that move sign bits.Gabe Black
2009-08-17X86: Implement the insert/extract instructions.Gabe Black
2009-08-17X86: Implement the media average instructions.Gabe Black
2009-08-17X86: Implement the multiply and add instructions.Gabe Black
2009-08-17X86: Implement the media shifts that operate on 64 bits or less at a time.Gabe Black
2009-08-17X86: Implement the sum of absolute differences instructions.Gabe Black
2009-08-17X86: Implement the media integer subtract instructions.Gabe Black
2009-08-17X86: Implement the integer media multiply instructions.Gabe Black
2009-08-17X86: Implement the integer media max instructions.Gabe Black
2009-08-17X86: Implement the integer media min instructions.Gabe Black
2009-08-17X86: Implement the media integer addition instructions.Gabe Black
2009-08-17X86: Implement the instructions that convert between forms of floating point.Gabe Black
2009-08-17X86: Implement the instructions that compare fp values and write masks as ↵Gabe Black
the result.
2009-08-17X86: Implement the MOVDDUP instruction.Gabe Black
2009-08-17X86: Implement many of the media mov instructions.Gabe Black