diff --git a/rosapps/devutils/cputointel/From/PPC/PPC.h b/rosapps/devutils/cputointel/From/PPC/PPC.h index dd7ba1f01fb..84d08abbbd2 100644 --- a/rosapps/devutils/cputointel/From/PPC/PPC.h +++ b/rosapps/devutils/cputointel/From/PPC/PPC.h @@ -12,11 +12,8 @@ CPU_INT PPCBrain( CPU_BYTE *cpu_buffer, /* here we put the prototype for the opcode api that brain need we show a example for it */ CPU_INT PPC_Addx(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode); - - -CPU_INT PPC_Ld( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, - CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, - CPU_INT mode); +CPU_INT PPC_Blr( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode); +CPU_INT PPC_Ld( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode); /* Export comment thing see m68k for example * in dummy we do not show it, for it is diffent for each cpu diff --git a/rosapps/devutils/cputointel/From/PPC/PPCBrain.c b/rosapps/devutils/cputointel/From/PPC/PPCBrain.c index e201d587d14..c7b504344cf 100644 --- a/rosapps/devutils/cputointel/From/PPC/PPCBrain.c +++ b/rosapps/devutils/cputointel/From/PPC/PPCBrain.c @@ -53,6 +53,19 @@ CPU_INT PPCBrain( CPU_BYTE *cpu_buffer, CPU_INT retsize; + /* 0x12 = 0001 0010, + 0x10 = 0001 0000 + 0x13 = 0001 0011 + + 0x20 = 0010 0000 0 0000 0010 2 + 0x80 = 1000 0000 0 0000 1000 8 + 0x4e = 0010 1110 E 1110 0010 2 + + 0x20 00 80 4e + 0010 0000 0000 0000 1000 0000 0100 1110 + + */ + /* now we start the process */ while (cpu_pos0) + { + /* own translatons langues */ + if (AllocAny()!=0) /* alloc memory for pMyBrainAnalys */ + { + return -1; + } + pMyBrainAnalys->op = OP_ANY_ret; + pMyBrainAnalys->memAdr=BaseAddress; + } + + return 4; +} + CPU_INT PPC_Ld( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, diff --git a/rosapps/devutils/cputointel/any_op.h b/rosapps/devutils/cputointel/any_op.h index 1803362d171..badeedf426f 100644 --- a/rosapps/devutils/cputointel/any_op.h +++ b/rosapps/devutils/cputointel/any_op.h @@ -1,7 +1,7 @@ #define OP_ANY_mov 0x00000000 - +#define OP_ANY_ret 0x00000001 typedef struct _BrainAnalys { diff --git a/rosapps/devutils/cputointel/misc.c b/rosapps/devutils/cputointel/misc.c index f75e6ddad04..0236b1c22a2 100644 --- a/rosapps/devutils/cputointel/misc.c +++ b/rosapps/devutils/cputointel/misc.c @@ -161,7 +161,13 @@ return 0; CPU_INT FreeAny() { - PMYBrainAnalys tmp; + PMYBrainAnalys tmp = NULL; + + if (pMyBrainAnalys == NULL) + { + return -1; + } + tmp = (PMYBrainAnalys)pMyBrainAnalys->ptr_prev; while (pMyBrainAnalys != NULL)