[prev in list] [next in list] [prev in thread] [next in thread]
List: bochs-cvs
Subject: [Bochs-cvs] SF.net SVN: bochs:[10428] trunk/bochs/cpu
From: sshwarts () users ! sourceforge ! net
Date: 2011-06-26 19:31:42
Message-ID: E1Qav3W-0002C8-UV () sfp-svn-6 ! v30 ! ch3 ! sourceforge ! com
[Download RAW message or body]
Revision: 10428
http://bochs.svn.sourceforge.net/bochs/?rev=10428&view=rev
Author: sshwarts
Date: 2011-06-26 19:31:42 +0000 (Sun, 26 Jun 2011)
Log Message:
-----------
cleanup in mmx code
Modified Paths:
--------------
trunk/bochs/cpu/cpu.h
trunk/bochs/cpu/ia_opcodes.h
trunk/bochs/cpu/mmx.cc
Modified: trunk/bochs/cpu/cpu.h
===================================================================
--- trunk/bochs/cpu/cpu.h 2011-06-26 19:15:30 UTC (rev 10427)
+++ trunk/bochs/cpu/cpu.h 2011-06-26 19:31:42 UTC (rev 10428)
@@ -2114,7 +2114,6 @@
BX_SMF void PAVGB_PqQq(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void PAVGW_PqQq(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void PMULHUW_PqQq(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
- BX_SMF void MOVNTQ_MqPq(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void PMINSW_PqQq(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void PMAXSW_PqQq(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void PSADBW_PqQq(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
Modified: trunk/bochs/cpu/ia_opcodes.h
===================================================================
--- trunk/bochs/cpu/ia_opcodes.h 2011-06-26 19:15:30 UTC (rev 10427)
+++ trunk/bochs/cpu/ia_opcodes.h 2011-06-26 19:31:42 UTC (rev 10428)
@@ -831,7 +831,7 @@
bx_define_opcode(BX_IA_PAVGB_PqQq, &BX_CPU_C::PAVGB_PqQq, &BX_CPU_C::PAVGB_PqQq, \
BX_CPU_SSE, 0) bx_define_opcode(BX_IA_PAVGW_PqQq, &BX_CPU_C::PAVGW_PqQq, \
&BX_CPU_C::PAVGW_PqQq, BX_CPU_SSE, 0) bx_define_opcode(BX_IA_PMULHUW_PqQq, \
&BX_CPU_C::PMULHUW_PqQq, &BX_CPU_C::PMULHUW_PqQq, BX_CPU_SSE | \
BX_CPU_3DNOW, 0)
-bx_define_opcode(BX_IA_MOVNTQ_MqPq, &BX_CPU_C::MOVNTQ_MqPq, &BX_CPU_C::BxError, \
BX_CPU_SSE | BX_CPU_3DNOW, 0) +bx_define_opcode(BX_IA_MOVNTQ_MqPq, \
&BX_CPU_C::MOVQ_QqPqM, &BX_CPU_C::BxError, BX_CPU_SSE | BX_CPU_3DNOW, 0) \
bx_define_opcode(BX_IA_PMINSW_PqQq, &BX_CPU_C::PMINSW_PqQq, &BX_CPU_C::PMINSW_PqQq, \
BX_CPU_SSE | BX_CPU_3DNOW, 0) bx_define_opcode(BX_IA_PMAXSW_PqQq, \
&BX_CPU_C::PMAXSW_PqQq, &BX_CPU_C::PMAXSW_PqQq, BX_CPU_SSE, 0) \
bx_define_opcode(BX_IA_PSADBW_PqQq, &BX_CPU_C::PSADBW_PqQq, &BX_CPU_C::PSADBW_PqQq, \
BX_CPU_SSE | BX_CPU_3DNOW, 0)
Modified: trunk/bochs/cpu/mmx.cc
===================================================================
--- trunk/bochs/cpu/mmx.cc 2011-06-26 19:15:30 UTC (rev 10427)
+++ trunk/bochs/cpu/mmx.cc 2011-06-26 19:31:42 UTC (rev 10428)
@@ -1086,8 +1086,7 @@
BX_CPU_THIS_PTR prepareMMX();
BX_CPU_THIS_PTR prepareFPU2MMX();
- BxPackedMmxRegister op = BX_READ_MMX_REG(i->nnn());
- BX_WRITE_64BIT_REG(i->rm(), MMXUQ(op));
+ BX_WRITE_64BIT_REG(i->rm(), BX_MMX_REG(i->nnn()));
}
#endif
@@ -1103,16 +1102,16 @@
#endif
}
+/* 0F 7F - MOVQ_QqPqM */
+/* 0F E7 - MOVNTQ_MqPq */
void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOVQ_QqPqM(bxInstruction_c *i)
{
#if BX_CPU_LEVEL >= 5
BX_CPU_THIS_PTR prepareMMX();
- BxPackedMmxRegister op = BX_READ_MMX_REG(i->nnn());
-
bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
/* pointer, segment address pair */
- write_virtual_qword(i->seg(), eaddr, MMXUQ(op));
+ write_virtual_qword(i->seg(), eaddr, BX_MMX_REG(i->nnn()));
// do not cause FPU2MMX transition if memory write faults
BX_CPU_THIS_PTR prepareFPU2MMX();
@@ -1797,21 +1796,6 @@
#endif
}
-/* 0F E7 */
-void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOVNTQ_MqPq(bxInstruction_c *i)
-{
-#if BX_CPU_LEVEL >= 5
- BX_CPU_THIS_PTR prepareMMX();
-
- BxPackedMmxRegister reg = BX_READ_MMX_REG(i->nnn());
- bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
- write_virtual_qword(i->seg(), eaddr, MMXUQ(reg));
-
- // do not cause FPU2MMX transition if memory write faults
- BX_CPU_THIS_PTR prepareFPU2MMX();
-#endif
-}
-
/* 0F E8 */
void BX_CPP_AttrRegparmN(1) BX_CPU_C::PSUBSB_PqQq(bxInstruction_c *i)
{
This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site.
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Bochs-cvs mailing list
Bochs-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bochs-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic