[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