X86: Implement the movlpd instruction.

--HG--
extra : convert_revision : dddb20fe48c0ae9de7cd0ba1a1467ecb690056c1
This commit is contained in:
Gabe Black 2007-08-29 20:37:16 -07:00
parent 3b97b6e0e2
commit f0b20ff970
4 changed files with 85 additions and 2 deletions

View file

@ -117,8 +117,8 @@
0x1: decode OPCODE_OP_BOTTOM3 {
0x0: movupd_Vo_Wo();
0x1: movupd_Wo_Vo();
0x2: movlpd_Vq_Mq();
0x3: movlpd_Mq_Vq();
0x2: Inst::MOVLPD(Vq,Mq);
0x3: Inst::MOVLPD(Mq,Vq);
0x4: unpcklpd_Vo_Wq();
0x5: unpckhpd_Vo_Wo();
0x6: movhpd_Vq_Mq();

View file

@ -68,6 +68,7 @@ categories = ["arithmetic",
"processor_information",
"rotate_and_shift",
"semaphores",
"sse",
"string",
"system_calls",
"system"]

View file

@ -0,0 +1,78 @@
# Copyright (c) 2007 The Hewlett-Packard Development Company
# All rights reserved.
#
# Redistribution and use of this software in source and binary forms,
# with or without modification, are permitted provided that the
# following conditions are met:
#
# The software must be used only for Non-Commercial Use which means any
# use which is NOT directed to receiving any direct monetary
# compensation for, or commercial advantage from such use. Illustrative
# examples of non-commercial use are academic research, personal study,
# teaching, education and corporate research & development.
# Illustrative examples of commercial use are distributing products for
# commercial advantage and providing services using the software for
# commercial advantage.
#
# If you wish to use this software or functionality therein that may be
# covered by patents for commercial use, please contact:
# Director of Intellectual Property Licensing
# Office of Strategy and Technology
# Hewlett-Packard Company
# 1501 Page Mill Road
# Palo Alto, California 94304
#
# 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 HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission. No right of
# sublicense is granted herewith. Derivatives of the software and
# output created using the software may be prepared, but only for
# Non-Commercial Uses. Derivatives of the software may be shared with
# others provided: (i) the others agree to abide by the list of
# conditions herein which includes the Non-Commercial Use restrictions;
# and (ii) such Derivatives of the software include the above copyright
# notice to acknowledge the contribution from this software where
# applicable, this list of conditions and the disclaimer below.
#
# 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 = '''
def macroop MOVLPD_R_M {
ldfp xmml, seg, sib, disp, dataSize=8
};
def macroop MOVLPD_R_P {
rdip t7
ldfp xmml, seg, riprel, disp, dataSize=8
};
def macroop MOVLPD_M_R {
stfp xmml, seg, sib, disp, dataSize=8
};
def macroop MOVLPD_P_R {
rdip t7
stfp xmml, seg, riprel, disp, dataSize=8
};
def macroop MOVLPD_R_R {
movfp xmml, xmml, xmmlm, dataSize=8
};
'''

View file

@ -81,7 +81,11 @@ let {{
# Miscellaneous symbols
symbols = {
"reg" : "env.reg",
"xmml" : "FLOATREG_XMM_LOW(env.reg)",
"xmmh" : "FLOATREG_XMM_HIGH(env.reg)",
"regm" : "env.regm",
"xmmlm" : "FLOATREG_XMM_LOW(env.regm)",
"xmmhm" : "FLOATREG_XMM_HIGH(env.regm)",
"imm" : "IMMEDIATE",
"disp" : "DISPLACEMENT",
"seg" : "env.seg",