Age | Commit message (Collapse) | Author | |
---|---|---|---|
2010-09-29 | X86: Fix the RIP relative versions of the BT, BTC, BTR, and BTS instructions. | Gabe Black | |
2010-09-14 | X86: Make the halt microop non-speculative. | Gabe Black | |
Executing this microop makes the CPU halt even if it was misspeculated. | |||
2010-09-14 | X86: Make unrecognized instructions behave better in x86. | Gabe Black | |
2010-08-23 | X86: Create a directory for files that define register indexes. | Gabe Black | |
This is to help tidy up arch/x86. These files should not be used external to the ISA. --HG-- rename : src/arch/x86/apicregs.hh => src/arch/x86/regs/apic.hh rename : src/arch/x86/floatregs.hh => src/arch/x86/regs/float.hh rename : src/arch/x86/intregs.hh => src/arch/x86/regs/int.hh rename : src/arch/x86/miscregs.hh => src/arch/x86/regs/misc.hh rename : src/arch/x86/segmentregs.hh => src/arch/x86/regs/segment.hh | |||
2010-08-23 | X86: Get rid of the flagless microop constructor. | Gabe Black | |
This will reduce clutter in the source and hopefully speed up compilation. | |||
2010-08-23 | X86: Mark serializing macroops and regular instructions as such. | Gabe Black | |
2010-08-23 | X86: Add a .serializing directive that makes a macroop serializing. | Gabe Black | |
This directive really just tells the macroop to set IsSerializing and IsSerializeAfter on its final microop. | |||
2010-08-23 | X86: Consolidate extra microop flags into one parameter. | Gabe Black | |
This single parameter replaces the collection of bools that set up various flavors of microops. A flag parameter also allows other flags to be set like the serialize before/after flags, etc., without having to change the constructor. | |||
2010-08-22 | X86: Get rid of the unused getAllocator on the python base microop class. | Gabe Black | |
This function is always overridden, and doesn't actually have the right signature. | |||
2010-07-21 | Fix x86 XCHG macro-op to use locked micro-ops for all memory accesses | Tushar Krishna | |
2010-06-25 | X86: Fix div2 flag calculation. | Gabe Black | |
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. |