Age | Commit message (Collapse) | Author | |
---|---|---|---|
2010-05-23 | copyright: Change HP copyright on x86 code to be more friendly | Nathan Binkert | |
2010-05-12 | X86: Make the cvti2f microop sign extend its integer source correctly. | Gabe Black | |
The code was using the wrong bit as the sign bit. Other similar bits of code seem to be correct. | |||
2010-05-12 | X86: Actual change that fixes div. How did that happen? | Gabe Black | |
2010-05-02 | X86: Sometimes CPUID depends on ecx, so pass that in. | Gabe Black | |
2010-05-02 | X86: Finally fix a division corner case. | Gabe Black | |
When doing an unsigned 64 bit division with a divisor that has its most significant bit set, the division code would spill a bit off of the end of a uint64_t trying to shift the dividend into position. This change adds code that handles that case specially by purposefully letting it spill and then going ahead assuming there was a 65th one bit. | |||
2009-11-05 | compile: compile on 32 bit hardware | Nathan Binkert | |
2009-12-19 | X86: Add a common named flag for signed media operations. | Gabe Black | |
2009-12-19 | X86: Create a common flag with a name to indicate high multiplies. | Gabe Black | |
2009-12-19 | X86: Create a common flag with a name to indicate scalar media instructions. | Gabe Black | |
2009-11-11 | X86: add ULL to 1's being shifted in 64-bit values | Vince Weaver | |
Some of the micro-ops weren't casting 1 to ULL before shifting, which can cause problems. On the perl makerand input this caused some values to be negative that shouldn't have been. The casts are done as ULL(1) instead of 1ULL to match others in the m5 code base. | |||
2009-11-10 | Merge with the head. | Gabe Black | |
2009-11-10 | X86: 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-10 | X86: Remove double-cast in Cvtf2i micro-op | Vince Weaver | |
This double cast led to rounding errors which caused some benchmarks to get the wrong values, most notably lucas which failed spectacularly due to CVTTSD2SI returning an off-by-one value. equake was also broken. | |||
2009-11-08 | X86: Make x86 use PREFETCH instead of PF_EXCLUSIVE. | Gabe Black | |
2009-11-04 | X86: Fix problem with movhps instruction | Vince 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-30 | X86: Add support for x86 psrldq and pslldq instructions | Vince 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-30 | X86: Implement movd_Vo_Edp on X86 | Vince 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-30 | X86: Implement the X86 sse2 haddpd instruction | Vince 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-27 | X86: Replace "DISPLACEMENT" with disp in movhpd. | Gabe Black | |
2009-10-27 | Fix problem with the x86 sse movhpd instruction. | Vince Weaver | |
The movhpd instruction was writing to the wrong memory offset. | |||
2009-10-21 | Implement X86 sse2 movdqu and movdqa instructions | Vince 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-16 | X86: Sign extend the immediate of wripi like the register version. | Gabe Black | |
2009-09-16 | X86: Make the imm8 member of immediate microops really 8 bits consistently. | Gabe Black | |
2009-09-16 | X86: Fix checking the NT bit during an IRET. | Gabe Black | |
2009-09-16 | X86: Fix setting the busy bit in the task descriptor in LTR. | Gabe Black | |
2009-08-23 | Merge with head. | Gabe Black | |
2009-08-23 | X86: Preserve the NO_ACCESS flag when giving CDA a specialized interface. | Gabe Black | |
2009-08-21 | X86: fix some simple compile issues | Nathan Binkert | |
static should not be used for constants that are not inside a class definition. | |||
2009-08-20 | X86: Fix the decoding for and fill out FST and FSTP. | Gabe Black | |
2009-08-20 | X86: Add microassembler symbols for floating point stack register operands. | Gabe Black | |
2009-08-18 | X86: Decode the immediate byte opcode extension for 3dNow! instructions. | Gabe Black | |
2009-08-18 | X86: Decode three byte opcodes. | Gabe Black | |
2009-08-17 | X86: Double check the two byte portion of the decoder and fix bugs/clean up. | Gabe Black | |
2009-08-17 | X86: Implement MOVNTI. | Gabe Black | |
2009-08-17 | X86: Implement MOVQ2DQ. | Gabe Black | |
2009-08-17 | X86: Implement MOVDQ2Q. | Gabe Black | |
2009-08-17 | X86: Implement the media instructions that convert fp values to ints. | Gabe Black | |
2009-08-17 | X86: Implement a microop for converting fp values to ints. | Gabe Black | |
2009-08-17 | X86: Implement the instructions that compare fp values and write a mask as a ↵ | Gabe Black | |
result. | |||
2009-08-17 | X86: Implement a microop that compares fp values and writes a mask as a result. | Gabe Black | |
2009-08-17 | X86: Implement the instructions that compare fp values and write to rflags. | Gabe Black | |
2009-08-17 | X86: Implement a microop that compares fp values and writes to rflags. | Gabe Black | |
2009-08-17 | X86: Implement MOVSS. | Gabe Black | |
2009-08-17 | X86: Implement LDMXCSR. | Gabe Black | |
2009-08-17 | X86: Implement STMXCSR. | Gabe Black | |
2009-08-17 | X86: Implement the shuffle media instructions. | Gabe Black | |
2009-08-17 | X86: Implement a shuffle media microop. | Gabe Black | |
2009-08-17 | X86: Implement the mask move instructions. | Gabe Black | |
2009-08-17 | X86: Implement a mask move microop. | Gabe Black | |
2009-08-17 | X86: Implement the instructions that move sign bits. | Gabe Black | |