[ros-diffs] [greatlrd] 25445: start on adding the own langues, this version create a memory leak if u try run this tool in translate mode. but not in disambler mode. (only true for ppc brain about memory leak)

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Sun Jan 14 00:26:32 CET 2007


Author: greatlrd
Date: Sun Jan 14 02:26:32 2007
New Revision: 25445

URL: http://svn.reactos.org/svn/reactos?rev=25445&view=rev
Log:
start on adding the own langues, this version create a memory leak if u try run this tool in translate mode. but not in 
disambler mode. (only true for ppc brain about memory leak)

Added:
    trunk/rosapps/devutils/cputointel/any_op.h   (with props)
Modified:
    trunk/rosapps/devutils/cputointel/CpuToIntel.c
    trunk/rosapps/devutils/cputointel/From/PPC/PPCopcode.c
    trunk/rosapps/devutils/cputointel/misc.c
    trunk/rosapps/devutils/cputointel/misc.h

Modified: trunk/rosapps/devutils/cputointel/CpuToIntel.c
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/CpuToIntel.c?rev=25445&r1=25444&r2=25445&view=diff
==============================================================================
--- trunk/rosapps/devutils/cputointel/CpuToIntel.c (original)
+++ trunk/rosapps/devutils/cputointel/CpuToIntel.c Sun Jan 14 02:26:32 2007
@@ -4,6 +4,10 @@
 #include <stdlib.h>
 #include <string.h>
 #include "misc.h"
+#include "any_op.h"
+
+PMYBrainAnalys pMyBrainAnalys = NULL;
+
 
 int main(int argc, char * argv[])
 {
@@ -89,7 +93,6 @@
 
     }
 
-
     return LoadPFileImage(infile,outfile,BaseAddress,cpuid,type, mode);
     //return LoadPFileImage("e:\\testms.exe","e:\\cputointel.asm",0,0,0,0);
 

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=25445&r1=25444&r2=25445&view=diff
==============================================================================
--- trunk/rosapps/devutils/cputointel/From/PPC/PPCopcode.c (original)
+++ trunk/rosapps/devutils/cputointel/From/PPC/PPCopcode.c Sun Jan 14 02:26:32 2007
@@ -3,7 +3,7 @@
 #include <stdlib.h> 
 #include "PPC.h"
 #include "../../misc.h"
-
+#include "../../any_op.h"
 
 /* cpuDummyInit_Add
  * Input param : 
@@ -39,11 +39,6 @@
     printf(";Add unimplement\n");
     return -1;
 }
- //                                                          stb
-                                                             
- // li  %r3, 0  : op    00          00         60           38
- // li = ld
-//                   0000 0000   0000 0000  0100 0000    0011 1000
 
 
 CPU_INT PPC_Ld( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
@@ -60,10 +55,23 @@
     formD =  (opcode & ConvertBitToByte32(PPC_D)) >> 10;
     formDS = (opcode & ConvertBitToByte32(PPC_ds)) >> 15;
 
+    fprintf(out,"Line_0x%08x:\n",BaseAddress + cpu_pos);
     if (mode==0)
     {
-        fprintf(out,"Line_0x%08x:\n",BaseAddress + cpu_pos);
         fprintf(out,"li %%r%d,%d\n",formA, formDS);
+    }
+    if (mode!=0)
+    {
+        /* own translatons langues */
+        if (AllocAny()!=0)  /* alloc memory for pMyBrainAnalys */
+        {
+            return -1;
+        }
+        pMyBrainAnalys->op = OP_ANY_mov;
+        pMyBrainAnalys->type= 1 + 8; /* 1 dst reg, 8 imm */
+        pMyBrainAnalys->src_size = 16;
+        pMyBrainAnalys->src = formDS;
+        pMyBrainAnalys->dst = formA;
     }
 
     printf(";not full implement \n");

Added: trunk/rosapps/devutils/cputointel/any_op.h
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/any_op.h?rev=25445&view=auto
==============================================================================
--- trunk/rosapps/devutils/cputointel/any_op.h (added)
+++ trunk/rosapps/devutils/cputointel/any_op.h Sun Jan 14 02:26:32 2007
@@ -1,0 +1,24 @@
+
+
+#define OP_ANY_mov  0x00000000
+
+
+typedef struct _BrainAnalys
+{
+    CPU_UNINT op;  /*  one tranlator for any cpu type set our own opcode */
+    CPU_INT  type; /*  0 = source are memmory, 1 source are register */
+                   /*  2 = dest are memmory,   4 dest are register */
+                   /*  8 = source are imm                          */
+    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*/
+
+    CPU_UNINT64 src;
+    CPU_UNINT64 dst;
+
+    /* try translate the Adress to a name */
+    CPU_BYTE* ptr_next; /* hook next one */
+    CPU_BYTE* ptr_prev; /* hook previus one */
+} MYBrainAnalys, *PMYBrainAnalys;
+
+extern PMYBrainAnalys pMyBrainAnalys;
+

Propchange: trunk/rosapps/devutils/cputointel/any_op.h
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/rosapps/devutils/cputointel/misc.c
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/misc.c?rev=25445&r1=25444&r2=25445&view=diff
==============================================================================
--- trunk/rosapps/devutils/cputointel/misc.c (original)
+++ trunk/rosapps/devutils/cputointel/misc.c Sun Jan 14 02:26:32 2007
@@ -7,6 +7,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include "misc.h"
+#include "any_op.h"
 #include "From/ARM/ARM.h"
 #include "From/m68k/m68k.h"
 #include "From/PPC/PPC.h"
@@ -128,7 +129,35 @@
 }
 
 
-// add no carry
+CPU_INT AllocAny()
+{
+
+    if (pMyBrainAnalys== NULL)
+    {
+        pMyBrainAnalys = (PMYBrainAnalys) malloc(sizeof(MYBrainAnalys));
+        if (pMyBrainAnalys==NULL)
+        {
+            return -1;
+        }
+        ZeroMemory(pMyBrainAnalys,sizeof(MYBrainAnalys));
+    }
+    else
+    {
+        PMYBrainAnalys tmp;
+        tmp = (PMYBrainAnalys) malloc(sizeof(MYBrainAnalys));
+        if (tmp==NULL)
+        {
+            return -1;
+        }
+        ZeroMemory(pMyBrainAnalys,sizeof(MYBrainAnalys));
+
+        pMyBrainAnalys->ptr_next = (CPU_BYTE*)tmp;
+        tmp->ptr_prev= (CPU_BYTE*)pMyBrainAnalys;
+        
+        pMyBrainAnalys = tmp;
+    }
+return 0;
+}
 
 
 

Modified: trunk/rosapps/devutils/cputointel/misc.h
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/devutils/cputointel/misc.h?rev=25445&r1=25444&r2=25445&view=diff
==============================================================================
--- trunk/rosapps/devutils/cputointel/misc.h (original)
+++ trunk/rosapps/devutils/cputointel/misc.h Sun Jan 14 02:26:32 2007
@@ -23,3 +23,4 @@
 CPU_UNINT GetData32Le(CPU_BYTE *cpu_buffer);
 CPU_UNINT GetData32Be(CPU_BYTE *cpu_buffer);
 
+CPU_INT AllocAny();




More information about the Ros-diffs mailing list