mirror of
https://github.com/reactos/reactos.git
synced 2024-08-13 06:37:06 +00:00
![Magnus Olsen](/assets/img/avatar_default.png)
Remove the old disambler list from ppc to ppc implement new ppc to ppc disambler that are allot better at end. svn path=/trunk/; revision=25498
56 lines
1.8 KiB
C
56 lines
1.8 KiB
C
|
|
#ifndef __ANY_OP_H__
|
|
#define __ANY_OP_H__
|
|
|
|
#define OP_ANY_mov 0x00000000
|
|
#define OP_ANY_ret 0x00000001
|
|
|
|
/* We are using same abi as PPC
|
|
* eax = register 3
|
|
* edx = register 4
|
|
* esp = register 1
|
|
* ebp = register 31
|
|
*/
|
|
|
|
typedef struct _BrainAnalys
|
|
{
|
|
CPU_UNINT op; /* one tranlator for any cpu type set our own opcode */
|
|
CPU_INT type; /* 1 = source are memmory, 2 source are register */
|
|
/* 4 = dest are memmory, 8 dest are register */
|
|
/* 16 = 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;
|
|
|
|
CPU_UNINT memAdr; /* where are we in the current memory pos + baseaddress */
|
|
|
|
CPU_INT row; /* 0 = no row,
|
|
* 1 = row is bcc (conditions),
|
|
* 2 = row is jsr (Call)
|
|
*/
|
|
|
|
/* 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; /* current working address */
|
|
extern PMYBrainAnalys pStartMyBrainAnalys; /* start address */
|
|
|
|
CPU_INT ConvertToIA32Process( FILE *outfp, CPU_INT eax, CPU_INT ebp,
|
|
CPU_INT edx, CPU_INT esp,
|
|
PMYBrainAnalys pMystart,
|
|
PMYBrainAnalys pMyend, CPU_INT regbits,
|
|
CPU_INT HowManyRegInUse);
|
|
|
|
CPU_INT ConvertToPPCProcess( FILE *outfp, CPU_INT r3, CPU_INT r31,
|
|
CPU_INT r4, CPU_INT r1,
|
|
PMYBrainAnalys pMystart,
|
|
PMYBrainAnalys pMyend, CPU_INT regbits,
|
|
CPU_INT HowManyRegInUse);
|
|
|
|
#endif
|