mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2025-04-10 19:15:14 +00:00
Original Supermodel code moved to tags/Original.
This commit is contained in:
parent
41c73d6806
commit
ac14fc95e4
1129
ppc_drc/genx86.c
1129
ppc_drc/genx86.c
File diff suppressed because it is too large
Load diff
173
ppc_drc/genx86.h
173
ppc_drc/genx86.h
|
@ -1,173 +0,0 @@
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
JUMP_TYPE_NONE = 0,
|
|
||||||
JUMP_TYPE_BACKWARDS = 1,
|
|
||||||
JUMP_TYPE_FORWARD = 2,
|
|
||||||
} JUMP_TYPE;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
void *pointer;
|
|
||||||
JUMP_TYPE jump_type;
|
|
||||||
} JUMP_TARGET;
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
REG_EAX = 0,
|
|
||||||
REG_ECX = 1,
|
|
||||||
REG_EDX = 2,
|
|
||||||
REG_EBX = 3,
|
|
||||||
REG_ESP = 4,
|
|
||||||
REG_EBP = 5,
|
|
||||||
REG_ESI = 6,
|
|
||||||
REG_EDI = 7
|
|
||||||
} X86_REGS;
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
REG_AL = 0,
|
|
||||||
REG_CL = 1,
|
|
||||||
REG_DL = 2,
|
|
||||||
REG_BL = 3,
|
|
||||||
REG_AH = 4,
|
|
||||||
REG_CH = 5,
|
|
||||||
REG_DH = 6,
|
|
||||||
REG_BH = 7
|
|
||||||
} X86_REGS8;
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
REG_AX = 0,
|
|
||||||
REG_CX = 1,
|
|
||||||
REG_DX = 2,
|
|
||||||
REG_BX = 3,
|
|
||||||
REG_SP = 4,
|
|
||||||
REG_BP = 5,
|
|
||||||
REG_SI = 6,
|
|
||||||
REG_DI = 7
|
|
||||||
} X86_REGS16;
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
REG_XMM0 = 0,
|
|
||||||
REG_XMM1 = 1,
|
|
||||||
REG_XMM2 = 2,
|
|
||||||
REG_XMM3 = 3,
|
|
||||||
REG_XMM4 = 4,
|
|
||||||
REG_XMM5 = 5,
|
|
||||||
REG_XMM6 = 6,
|
|
||||||
REG_XMM7 = 7,
|
|
||||||
} X86_REGS_SSE2;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
ADD,
|
|
||||||
ADDI,
|
|
||||||
ADDIM,
|
|
||||||
ADDMR,
|
|
||||||
ADC,
|
|
||||||
ADCI,
|
|
||||||
ADCMR,
|
|
||||||
AND,
|
|
||||||
ANDI,
|
|
||||||
ANDIM,
|
|
||||||
ANDMR,
|
|
||||||
BSR,
|
|
||||||
BSWAP,
|
|
||||||
BTIM,
|
|
||||||
BTRI,
|
|
||||||
CALL,
|
|
||||||
CALLI,
|
|
||||||
CMOVAMR,
|
|
||||||
CMOVBMR,
|
|
||||||
CMOVGMR,
|
|
||||||
CMOVLMR,
|
|
||||||
CMOVZMR,
|
|
||||||
CMP,
|
|
||||||
CMPI,
|
|
||||||
CMPIM,
|
|
||||||
CMPMR,
|
|
||||||
CVTSD2SS,
|
|
||||||
CVTSS2SD,
|
|
||||||
FABS,
|
|
||||||
FCHS,
|
|
||||||
FADDM64,
|
|
||||||
FDIVM64,
|
|
||||||
FLDM64,
|
|
||||||
FSTPM64,
|
|
||||||
IDIV,
|
|
||||||
IMUL,
|
|
||||||
JA,
|
|
||||||
JAE,
|
|
||||||
JB,
|
|
||||||
JG,
|
|
||||||
JL,
|
|
||||||
JMP,
|
|
||||||
JMPI,
|
|
||||||
JMPM,
|
|
||||||
JMPR,
|
|
||||||
JNS,
|
|
||||||
JNZ,
|
|
||||||
JZ,
|
|
||||||
MOV,
|
|
||||||
MOVI,
|
|
||||||
MOVIM,
|
|
||||||
MOVMR,
|
|
||||||
MOVRM,
|
|
||||||
MOVR8M8,
|
|
||||||
MOVM8R8,
|
|
||||||
MOVS_R8R32,
|
|
||||||
MOVS_R16R32,
|
|
||||||
MOVZ_M8R32,
|
|
||||||
MOVZ_R8R32,
|
|
||||||
MOVZ_R16R32,
|
|
||||||
MOVDRX,
|
|
||||||
MOVDXR,
|
|
||||||
MOVQMX,
|
|
||||||
MOVQXM,
|
|
||||||
MUL,
|
|
||||||
NEG,
|
|
||||||
NOT,
|
|
||||||
OR,
|
|
||||||
ORI,
|
|
||||||
ORIM,
|
|
||||||
ORMR,
|
|
||||||
POP,
|
|
||||||
POPAD,
|
|
||||||
PUSH,
|
|
||||||
PUSHAD,
|
|
||||||
PUSHI,
|
|
||||||
RET,
|
|
||||||
ROLCL,
|
|
||||||
ROLI,
|
|
||||||
SETCR8,
|
|
||||||
SETNCR8,
|
|
||||||
SETZR8,
|
|
||||||
SHLCL,
|
|
||||||
SHLI,
|
|
||||||
SHRCL,
|
|
||||||
SHRI,
|
|
||||||
SUB,
|
|
||||||
SUBI,
|
|
||||||
SUBIM,
|
|
||||||
SUBMR,
|
|
||||||
TESTI,
|
|
||||||
XCHGR8R8,
|
|
||||||
XOR,
|
|
||||||
XORI,
|
|
||||||
XORMR,
|
|
||||||
} GENX86_OPCODE;
|
|
||||||
|
|
||||||
void gen(GENX86_OPCODE opcode, INT32 dst_param, INT32 src_param);
|
|
||||||
void gen_jmp_target(JUMP_TARGET *target);
|
|
||||||
void gen_jmp(GENX86_OPCODE opcode, JUMP_TARGET *target);
|
|
||||||
void gen_jmp_rpr(INT32 reg1, INT32 reg2);
|
|
||||||
void gen_mov_dpr_to_reg(INT32 dst_reg, INT32 disp, INT32 disp_reg);
|
|
||||||
void gen_mov_dprs_to_reg(INT32 dst_reg, INT32 disp, INT32 disp_reg, INT32 disp_reg_scale);
|
|
||||||
void gen_mov_reg_to_dpr(INT32 src_reg, INT32 disp, INT32 disp_reg);
|
|
||||||
void gen_reset_cache(void);
|
|
||||||
UINT8 *gen_get_cache_pos(void);
|
|
||||||
UINT32 gen_get_instruction_amount(void);
|
|
||||||
void init_jmp_target(JUMP_TARGET *target);
|
|
||||||
void init_genx86(void);
|
|
||||||
void shutdown_genx86(void);
|
|
1560
ppc_drc/ppc_drc.c
1560
ppc_drc/ppc_drc.c
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue