[ros-diffs] [greatlrd] 25518: Fixing another bug in converting PPC stwu r1,-32(r1) equal with intel mov [esp-32],esp; mov esp, esp - 32;

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Thu Jan 18 23:09:09 CET 2007


Author: greatlrd
Date: Fri Jan 19 01:09:08 2007
New Revision: 25518

URL: http://svn.reactos.org/svn/reactos?rev=25518&view=rev
Log:
Fixing another bug in converting 
PPC 
stwu r1,-32(r1) 

equal with intel
mov [esp-32],esp; 
mov esp, esp - 32; 

Modified:
    trunk/rosapps/devutils/cputointel/ConvertToIA32Process.c
    trunk/rosapps/devutils/cputointel/From/PPC/PPCopcode.c
    trunk/rosapps/devutils/cputointel/any_op.h

Modified: trunk/rosapps/devutils/cputointel/ConvertToIA32Process.c
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/ConvertToIA32Process.c?rev=25518&r1=25517&r2=25518&view=diff
==============================================================================
--- trunk/rosapps/devutils/cputointel/ConvertToIA32Process.c (original)
+++ trunk/rosapps/devutils/cputointel/ConvertToIA32Process.c Fri Jan 19 01:09:08 2007
@@ -190,7 +190,7 @@
                 {
                     /* dest [eax - 0x20], source reg */
                     
-                    fprintf(outfp,"mov [");
+                    fprintf(outfp,"mov dword [");
                     standardreg( RegTableCount,
                                  pMystart->dst,
                                  setup_ebp, outfp);
@@ -199,6 +199,19 @@
                                  pMystart->src,
                                  setup_ebp, outfp);
                     fprintf(outfp,"\n");
+
+                   if ((pMystart->type & 128)== 128)
+                   {
+                        fprintf(outfp,"mov ");
+                        standardreg( RegTableCount,
+                                     pMystart->src,
+                                     setup_ebp, outfp);
+                        fprintf(outfp," , ");
+                        standardreg( RegTableCount,
+                                     pMystart->dst,
+                                     setup_ebp, outfp);
+                        fprintf(outfp," %d\n",pMystart->dst_extra);
+                   }
                 }
             }
 

Modified: trunk/rosapps/devutils/cputointel/From/PPC/PPCopcode.c
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/From/PPC/PPCopcode.c?rev=25518&r1=25517&r2=25518&view=diff
==============================================================================
--- trunk/rosapps/devutils/cputointel/From/PPC/PPCopcode.c (original)
+++ trunk/rosapps/devutils/cputointel/From/PPC/PPCopcode.c Fri Jan 19 01:09:08 2007
@@ -116,7 +116,7 @@
     tmp =  _byteswap_ushort( ((CPU_SHORT)((opcode >> 16) & 0xffff)));
 
     pMyBrainAnalys->op = OP_ANY_mov;
-    pMyBrainAnalys->type= 2 + 64;
+    pMyBrainAnalys->type= 2 + 64 + 128;
     pMyBrainAnalys->src_size = 32;
     pMyBrainAnalys->dst_size = 32;
     pMyBrainAnalys->src = PPC_GetBitArrayBto31xx(opcode);

Modified: trunk/rosapps/devutils/cputointel/any_op.h
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/any_op.h?rev=25518&r1=25517&r2=25518&view=diff
==============================================================================
--- trunk/rosapps/devutils/cputointel/any_op.h (original)
+++ trunk/rosapps/devutils/cputointel/any_op.h Fri Jan 19 01:09:08 2007
@@ -33,6 +33,7 @@
                    /*  16 = source are imm                          */
                    /*  32 =  soucre -xx(r1) or [eax-xx] */
                    /*  64 =  dest -xx(r1) or [eax-xx] */
+                   /*  128 =  update form the src be update with dest */
 
     CPU_INT src_size; /* who many bits are src not vaild for reg*/
     CPU_INT dst_size; /* who many bits are dst not vaild for reg*/




More information about the Ros-diffs mailing list