14289:49005710b522 |
26-Aug-2019 |
Pouya Fotouhi <Pouya.Fotouhi@amd.com> |
arch-x86: ignore non-temporal hint for movntps/movntpd SSE insts
Making the implementation of movntps/movntpd consistent with other non-temporal instructions. We are ignoring the hint here, and implementing those instructions as cacheable instructions.
This change adds a warning to let user know about this workaround. Also, this change add the address check for second part of move.
Change-Id: I811652b24cf39ca2f5c5d4c9e9e417f69190b55c Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20408 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com> |
14033:a1cb162f68d9 |
31-May-2019 |
Brandon Potter <brandon.potter@amd.com> |
x86: fix movsd bug on %xmm register
The movsd instruction should zero out half the register, but does not do it. This changeset adds the necessary microop to the instruction to cause correct behavior.
Change-Id: I5278da3634c78a97ed0586f687a36c6dc5a34c60 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19068 Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com> Reviewed-by: Michael LeBeane <Michael.Lebeane@amd.com> Reviewed-by: Gabe Black <gabeblack@google.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com> Tested-by: kokoro <noreply+kokoro@google.com> |
12683:6e14a1dd346d |
20-Apr-2017 |
Steve Reinhardt <steve.reinhardt@amd.com> |
arch-x86: implement movntps/movntpd SSE insts
These are non-temporal packed SSE stores.
Change-Id: I526cd6551b38d6d35010bc6173f23d017106b466 Reviewed-on: https://gem5-review.googlesource.com/9861 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com> |
11160:10f28b61fcb1 |
06-Oct-2015 |
Steve Reinhardt <steve.reinhardt@amd.com> |
x86: implement rcpps and rcpss SSE insts
These are packed single-precision approximate reciprocal operations, vector and scalar versions, respectively.
This code was basically developed by copying the code for sqrtps and sqrtss. The mrcp micro-op was simplified relative to msqrt since there are no double-precision versions of this operation. |
10632:b415e0dabe21 |
03-Jan-2015 |
Maxime Martinasso <maxime.cscs@gmail.com> |
x86: implements the simd128 ADDSUBPD instruction
This patch implements the simd128 ADDSUBPD instruction for the x86 architecture.
Tested with a simple program in assembly language which executes the instruction. Checked that different versions of the instruction are executed by using the execution tracing option.
Committed by: Nilay Vaish <nilay@cs.wisc.edu |
9009:d45a02bd5391 |
19-May-2012 |
Marc Orr <marc.orr@gmail.com> |
x86 ISA: Implement the sse3 haddps instruction.
Shuffle the 32 bit values into position, and then add in parallel. |
7087:fb8d5786ff30 |
24-May-2010 |
Nathan Binkert <nate@binkert.org> |
copyright: Change HP copyright on x86 code to be more friendly |
6799:36131e4dfb6e |
19-Dec-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Create a common flag with a name to indicate scalar media instructions. |
6715:fb4a3a61bc74 |
04-Nov-2009 |
Vince Weaver <vince@csl.cornell.edu> |
X86: Fix problem with movhps instruction
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. |
6705:3c810b64ee7d |
30-Oct-2009 |
Vince Weaver <vince@csl.cornell.edu> |
X86: Implement the X86 sse2 haddpd instruction
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. |
6698:21047815f78e |
28-Oct-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Replace "DISPLACEMENT" with disp in movhpd. |
6697:4863725cb4d9 |
27-Oct-2009 |
Vince Weaver <vince@csl.cornell.edu> |
Fix problem with the x86 sse movhpd instruction.
The movhpd instruction was writing to the wrong memory offset. |
6606:03fd282998d0 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the media instructions that convert fp values to ints. |
6604:b750348f6da3 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the instructions that compare fp values and write a mask as a result. |
6602:95b882ce7b10 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the instructions that compare fp values and write to rflags. |
6600:bb997cd711af |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement MOVSS. |
6597:4903cea6a8c2 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the shuffle media instructions. |
6593:f27fd3c3a153 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the instructions that move sign bits. |
6569:e8cb266c9451 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the instructions that convert between forms of floating point. |
6565:b7f5a02ea9b7 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the MOVDDUP instruction. |
6564:9ed64f6888cf |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement many of the media mov instructions. |
6561:3f716cda05c9 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the floating point media instructions. |
6559:e4f60f716103 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the floating point media multiply instructions. |
6557:f677e05d723d |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the floating point media subtract instructions. |
6555:dae81a15cfcc |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the floating point media add instructions. |
6553:897523ead7ce |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the media sqrt instructions. |
6551:52b4167056ed |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the media floating point max instructions. |
6549:d6ae13f56801 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the media floating point min instructions. |
6545:9c68aea7b1e6 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Rename sel to ext for media microops. |
6543:a9a5dd560925 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the remaining unpack instructions. |
6542:059e35b593a8 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement PANDN, ANDNPS, and ANDNPD. |
6540:17414b661543 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement PAND, ANDPS, and ANDPD. |
6538:6cf5a0235ae8 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement POR, ORPD and ORPS. |
6535:b595412884f9 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: (Re)implement XORPS and XORPD. |
6519:36369ba5fad6 |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Ignore the size part of XMM/MMX operands. The instructions know what they want. |
6518:1ad4a7774b3c |
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Use suffixes to differentiate XMM/MMX/GPR operands. |
5123:cd30bb46e146 |
03-Oct-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Fix places where movfp was used incorrectly. |
5119:a4469f2919f3 |
03-Oct-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Put ldst into the microcode (the earlier changeset didn't really). Also clean things up as much as possible so that faulting won't break an instruction. More microops which verify addresses are needed. |
5081:2ccce8600a9d |
19-Sep-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Put in stubs for x87, 64 bit and 128 bit SIMD instruction microcode. |