summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/insts/general_purpose/data_transfer
AgeCommit message (Collapse)Author
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-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-08-17X86: Implement MOVNTI.Gabe Black
2009-08-08X86: Make not taken conditional moves leave the destination alone. Adjust ↵Gabe Black
CMOVcc. The manuals from both AMD and Intel say that when writing to a 32 bit destination in 64 bit mode, the upper 32 bits of the register are filled with zeros. They also both say that the CMOV instructions leave their destination alone when their condition fails. Unfortunately, it seems that CMOV will zero extend its destination register whether or not it was supposed to actually do a move on both platforms. This seems to be the only case where this happens, but it would be hard to say for sure.
2009-08-07X86: Don't truncate the immediate parameter for the ENTER instruction.Gabe Black
2009-08-06X86: Adjust the various sizes used for the enter and leave instructions.Gabe Black
2009-08-06X86: Fix a copy/paste error for cmovnp.Gabe Black
2009-07-16X86: Fix a number of places where the wrong form of a microop was used.Gabe Black
2009-04-19X86: Implement a locking version of XCHG.Gabe Black
2009-04-19X86: Fix the mov to segment selector in real mode instruction microcode.Gabe Black
2009-02-27X86: Set address size to 64 bits when generating addresses internally.Gabe Black
2009-02-25X86: Make rdcr use merge and the mov to control register instructions use ↵Gabe Black
the right operand size.
2009-02-25X86: Implement the mov to debug register intructions.Gabe Black
2009-02-25X86: Fix a few bugs with the segment register instructions in real mode.Gabe Black
Fix a few instances where the register form of zext was used where zexti was intended. Also get rid of the 64 bit only rip relative addressed version since 64 bit and real mode are mutually exclusive.
2009-02-25X86: Do a merge for the zero extension microop.Gabe Black
2008-10-12X86: Create a SeqOp class of microops and make Br one of them.Gabe Black
2008-09-10style: Remove non-leading tabs everywhere they shouldn't be. Developers ↵Ali Saidi
should configure their editors to not insert tabs
2008-09-03X86: Fix the microcode for sign/zero extending moves that use high byte ↵Gabe Black
registers.
2008-06-12X86: Change how segment loading is performed.Gabe Black
2008-06-12X86: Make pushes and pops use the stack size instead of the data size.Gabe Black
2008-06-12X86: Fix a byte register indexing issue in the sign extending move from ↵Gabe Black
memory microcode.
2007-12-02X86: Make the 0xA0-0xA3 versions of mov use the right sized immediates.Gabe Black
--HG-- extra : convert_revision : a702403de29772618abb5bd5c5555279d91bdd59
2007-12-01X86: Implement mov from control register.Gabe Black
--HG-- extra : convert_revision : c8280f0686a3ae6d5c405327540ad15a3a5531f9
2007-12-01X86: Reorganize segmentation and implement segment selector movs.Gabe Black
--HG-- extra : convert_revision : 553c3ffeda1f5312cf02493f602e7d4ba2fe66e8
2007-11-12X86: Implement the wrcr microop which writes a control register, and some ↵Gabe Black
control register work. --HG-- extra : convert_revision : 3e9daef9cdd0665c033420e5b4f981649e9908ab
2007-11-12X86: Change the meaning of the sext and zext width operand, and make sext ↵Gabe Black
set zext if the sign bit is 0. --HG-- extra : convert_revision : 08bd7b4ff183038c016612d04ac73b20a255d141
2007-10-22X86: Use the cda microop where appropriate. The ENTER instruction still ↵Gabe Black
needs these. --HG-- extra : convert_revision : c5a1a6d66c454f252d3b798c38a6798e7dd486f0
2007-10-21X86: Start using the stupd microop, and update statistics accordingly.Gabe Black
--HG-- extra : convert_revision : 4aa9daa4e19acfb3e6840ce5d83cf199e30c2f19
2007-10-21X86: Implement the stupd microop ("store with update", not "stupid") and use ↵Gabe Black
it in ENTER. --HG-- extra : convert_revision : 9151f701162d31ef26298497467c42b7b0ed85d5
2007-10-19X86: Implement the ENTER instruction. This could probably be optimized by ↵Gabe Black
cleaning up the indexing in the main loop. --HG-- extra : convert_revision : ad2d560f2a6f36176b22b8510c58cd6fe5a2c9c2
2007-10-12X86: Added some new versions of MOV and a new argument type tag.Gabe Black
--HG-- extra : convert_revision : e21b2062d68baa983c7c631b3e1fe3149de56427
2007-10-02X86: Put ldst into the microcode (the earlier changeset didn't really).Gabe Black
Also clean things up as much as possible so that faulting won't break an instruction. More microops which verify addresses are needed. --HG-- extra : convert_revision : 7c6050cb4798d287fe7d3cc4bb8c20dfa40ad2be
2007-09-19X86: Put in stubs for x87, 64 bit and 128 bit SIMD instruction microcode.Gabe Black
--HG-- rename : src/arch/x86/isa/insts/sse/__init__.py => src/arch/x86/isa/insts/simd128/__init__.py extra : convert_revision : efb4405aebaa4a04f33572e7d078ceca45872d9c