This patch adds support for the haddpd sse instruction. Attached is a simple test case (which depends on the movhpd patch I sent earlier today).
# HG changeset patch # User Vince Weaver <[email protected]> # Date 1256679237 14400 # Node ID 71078e842148765616feba710e31616ee39d382c # Parent a3c85a29b838e0e15a459f64b2d83b821aacf520 Add support for haddpd instruction to x86 diff -r a3c85a29b838 -r 71078e842148 src/arch/x86/isa/decoder/two_byte_opcodes.isa --- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa Tue Oct 27 09:24:40 2009 -0700 +++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa Tue Oct 27 17:33:57 2009 -0400 @@ -707,7 +707,7 @@ } // operand size (0x66) 0x1: decode OPCODE_OP_BOTTOM3 { - 0x4: WarnUnimpl::haddpd_Vo_Wo(); + 0x4: HADDPD(Vo,Wo); 0x5: WarnUnimpl::hsubpd_Vo_Wo(); 0x6: WarnUnimpl::movd_Ed_Vd(); 0x7: WarnUnimpl::movdqa_Wo_Vo(); diff -r a3c85a29b838 -r 71078e842148 src/arch/x86/isa/insts/simd128/floating_point/arithmetic/horizontal_addition.py --- a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/horizontal_addition.py Tue Oct 27 09:24:40 2009 -0700 +++ b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/horizontal_addition.py Tue Oct 27 17:33:57 2009 -0400 @@ -55,5 +55,24 @@ microcode = ''' # HADDPS -# HADDPD + +def macroop HADDPD_XMM_XMM { + maddf xmml, xmmh , xmml, size=8, ext=0 + maddf xmmh, xmmlm, xmmhm, size=8, ext=0 +}; + +def macroop HADDPD_XMM_M { + ldfp ufp1, seg, sib, disp, dataSize=8 + ldfp ufp2, seg, sib, "DISPLACEMENT+8", dataSize=8 + maddf xmml, xmmh, xmml, size=8, ext=1 + maddf xmmh, ufp1, ufp2, size=8, ext=1 +}; + +def macroop HADDPD_XMM_P { + rdip t7 + ldfp ufp1, seg, riprel, disp, dataSize=8 + ldfp ufp2, seg, riprel, "DISPLACEMENT+8", dataSize=8 + maddf xmml, xmmh, xmml, size=8, ext=1 + maddf xmmh, ufp1, ufp2, size=8, ext=1 +}; '''
haddpd
Description: Binary data
_______________________________________________ m5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/m5-dev
