# Node ID fc3d1684cbd16553a02ec3e5f951e90a4066e7b5 # Parent 38121b8b24626506015e4218e7391544b5672f24 diff --git a/src/arch/x86/SConscript b/src/arch/x86/SConscript --- a/src/arch/x86/SConscript +++ b/src/arch/x86/SConscript @@ -191,7 +191,6 @@ 'simd128/floating_point/data_transfer/move_mask.py', 'simd128/floating_point/data_transfer/move.py', 'simd128/floating_point/data_transfer/move_with_duplication.py', - 'simd128/floating_point/data_transfer/move_non_temporal.py', 'simd128/floating_point/data_conversion/__init__.py', 'simd128/floating_point/data_conversion/convert_floating_point_to_floating_point.py', 'simd128/floating_point/data_conversion/convert_floating_point_to_xmm_integer.py', diff --git a/src/arch/x86/isa/decoder/two_byte_opcodes.isa b/src/arch/x86/isa/decoder/two_byte_opcodes.isa --- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa +++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa @@ -377,7 +377,7 @@ 0x0: MOVAPS(Vq,Wq); 0x1: MOVAPS(Wq,Vq); 0x2: CVTPI2PS(Vq,Qq); - 0x3: WarnUnimpl::movntps_Mo_Vo(); + 0x3: MOVNTPS(Mq,Vo); // don't think sizes matter here 0x4: CVTTPS2PI(Pq,Wq); 0x5: CVTPS2PI(Pq,Wq); 0x6: UCOMISS(Vd,Wd); @@ -395,7 +395,7 @@ 0x0: MOVAPD(Vo,Wo); 0x1: MOVAPD(Wo,Vo); 0x2: CVTPI2PD(Vo,Qq); - 0x3: WarnUnimpl::movntpd_Mo_Vo(); + 0x3: MOVNTPD(Mq,Vo); // don't think sizes matter here 0x4: CVTTPD2PI(Pq,Wo); 0x5: CVTPD2PI(Pq,Wo); 0x6: UCOMISD(Vq,Wq); diff --git a/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/__init__.py b/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/__init__.py --- a/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/__init__.py +++ b/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/__init__.py @@ -37,7 +37,6 @@ categories = ["move", "move_with_duplication", - "move_non_temporal", "move_mask"] microcode = ''' diff --git a/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move.py b/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move.py --- a/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move.py +++ b/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move.py @@ -1,4 +1,6 @@ # Copyright (c) 2007 The Hewlett-Packard Development Company +# Copyright (c) 2015 Advanced Micro Devices, Inc. +# # All rights reserved. # # The license below extends only to copyright in the software and shall @@ -34,6 +36,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # Authors: Gabe Black +# Steve Reinhardt microcode = ''' def macroop MOVAPS_XMM_M { @@ -73,6 +76,21 @@ movfp xmmh, xmmhm, dataSize=8 }; +# movntps is basically the same as movaps, excepting the caching hint and +# ordering constraints, neither of which we are implementing at this point +def macroop MOVNTPS_M_XMM { + # Check low address. + stfp xmmh, seg, sib, "DISPLACEMENT + 8", dataSize=8 + stfp xmml, seg, sib, disp, dataSize=8 +}; + +def macroop MOVNTPS_P_XMM { + rdip t7 + # Check low address. + stfp xmmh, seg, riprel, "DISPLACEMENT + 8", dataSize=8 + stfp xmml, seg, riprel, disp, dataSize=8 +}; + def macroop MOVAPD_XMM_M { ldfp xmml, seg, sib, "DISPLACEMENT", dataSize=8 ldfp xmmh, seg, sib, "DISPLACEMENT + 8", dataSize=8 @@ -95,6 +113,19 @@ stfp xmmh, seg, riprel, "DISPLACEMENT + 8", dataSize=8 }; +# movntpd is basically the same as movapd, excepting the caching hint and +# ordering constraints, neither of which we are implementing at this point +def macroop MOVNTPD_M_XMM { + stfp xmml, seg, sib, "DISPLACEMENT", dataSize=8 + stfp xmmh, seg, sib, "DISPLACEMENT + 8", dataSize=8 +}; + +def macroop MOVNTPD_P_XMM { + rdip t7 + stfp xmml, seg, riprel, "DISPLACEMENT", dataSize=8 + stfp xmmh, seg, riprel, "DISPLACEMENT + 8", dataSize=8 +}; + def macroop MOVUPS_XMM_XMM { movfp xmml, xmmlm, dataSize=8 movfp xmmh, xmmhm, dataSize=8 diff --git a/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move_non_temporal.py b/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move_non_temporal.py deleted file mode 100644 --- a/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move_non_temporal.py +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (c) 2007 The Hewlett-Packard Development Company -# All rights reserved. -# -# The license below extends only to copyright in the software and shall -# not be construed as granting a license to any other intellectual -# property including but not limited to intellectual property relating -# to a hardware implementation of the functionality of the software -# licensed hereunder. You may use the software subject to the license -# terms below provided that you ensure that this notice is replicated -# unmodified and in its entirety in all distributions of the software, -# modified or unmodified, in source code or in binary form. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer; -# redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution; -# neither the name of the copyright holders nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# Authors: Gabe Black - -microcode = ''' -# MOVNTPS -# MOVNTPD -'''