Problemas com os relocs
[pspdecompiler.git] / allegrex.h
blob66da9b556a270ec6a7c6e219c865f74a28f23107
1 #ifndef __ALLEGREX_H
2 #define __ALLEGREX_H
4 enum insn_type {
5 I_ADD=16, I_ADDI, I_ADDIU, I_ADDU,
6 I_AND, I_ANDI, I_BEQ, I_BEQL,
7 I_BGEZ, I_BGEZAL, I_BGEZL, I_BGTZ,
8 I_BGTZL, I_BITREV, I_BLEZ, I_BLEZL,
9 I_BLTZ, I_BLTZL, I_BLTZAL, I_BLTZALL,
10 I_BNE, I_BNEL, I_BREAK, I_CACHE,
11 I_CFC0, I_CLO, I_CLZ, I_CTC0,
12 I_MAX, I_MIN, I_DBREAK, I_DIV,
13 I_DIVU, I_DRET, I_ERET, I_EXT,
14 I_INS, I_J, I_JR, I_JALR,
15 I_JAL, I_LB, I_LBU, I_LH,
16 I_LHU, I_LL, I_LUI, I_LW,
17 I_LWL, I_LWR, I_MADD, I_MADDU,
18 I_MFC0, I_MFDR, I_MFHI, I_MFIC,
19 I_MFLO, I_MOVN, I_MOVZ, I_MSUB,
20 I_MSUBU, I_MTC0, I_MTDR, I_MTIC,
21 I_HALT, I_MTHI, I_MTLO, I_MULT,
22 I_MULTU, I_NOR, I_OR, I_ORI,
23 I_ROTR, I_ROTV, I_SEB, I_SEH,
24 I_SB, I_SH, I_SLLV, I_SLL,
25 I_SLT, I_SLTI, I_SLTIU, I_SLTU,
26 I_SRA, I_SRAV, I_SRLV, I_SRL,
27 I_SW, I_SWL, I_SWR, I_SUB,
28 I_SUBU, I_SYNC, I_SYSCALL, I_XOR,
29 I_XORI, I_WSBH, I_WSBW, I_ABS_S,
30 I_ADD_S, I_BC1F, I_BC1FL, I_BC1T,
31 I_BC1TL, I_C_F_S, I_C_UN_S, I_C_EQ_S,
32 I_C_UEQ_S, I_C_OLT_S, I_C_ULT_S, I_C_OLE_S,
33 I_C_ULE_S, I_C_SF_S, I_C_NGLE_S, I_C_SEQ_S,
34 I_C_NGL_S, I_C_LT_S, I_C_NGE_S, I_C_LE_S,
35 I_C_NGT_S, I_CEIL_W_S, I_CFC1, I_CTC1,
36 I_CVT_S_W, I_CVT_W_S, I_DIV_S, I_FLOOR_W_S,
37 I_LWC1, I_MFC1, I_MOV_S, I_MTC1,
38 I_MUL_S, I_NEG_S, I_ROUND_W_S, I_SQRT_S,
39 I_SUB_S, I_SWC1, I_TRUNC_W_S, I_BVF,
40 I_BVFL, I_BVT, I_BVTL, I_LV_Q,
41 I_LV_S, I_LVL_Q, I_LVR_Q, I_MFV,
42 I_MFVC, I_MTV, I_MTVC, I_SV_Q,
43 I_SV_S, I_SVL_Q, I_SVR_Q, I_VABS_P,
44 I_VABS_Q, I_VABS_S, I_VABS_T, I_VADD_P,
45 I_VADD_Q, I_VADD_S, I_VADD_T, I_VASIN_P,
46 I_VASIN_Q, I_VASIN_S, I_VASIN_T, I_VAVG_P,
47 I_VAVG_Q, I_VAVG_T, I_VBFY1_P, I_VBFY1_Q,
48 I_VBFY2_Q, I_VCMOVF_P, I_VCMOVF_Q, I_VCMOVF_S,
49 I_VCMOVF_T, I_VCMOVT_P, I_VCMOVT_Q, I_VCMOVT_S,
50 I_VCMOVT_T, I_VCMP_P=199, I_VCMP_Q=202, I_VCMP_S=205,
51 I_VCMP_T=208, I_VCOS_P, I_VCOS_Q, I_VCOS_S,
52 I_VCOS_T, I_VCRS_T, I_VCRSP_T, I_VCST_P,
53 I_VCST_Q, I_VCST_S, I_VCST_T, I_VDET_P,
54 I_VDIV_P, I_VDIV_Q, I_VDIV_S, I_VDIV_T,
55 I_VDOT_P, I_VDOT_Q, I_VDOT_T, I_VEXP2_P,
56 I_VEXP2_Q, I_VEXP2_S, I_VEXP2_T, I_VF2H_P,
57 I_VF2H_Q, I_VF2ID_P, I_VF2ID_Q, I_VF2ID_S,
58 I_VF2ID_T, I_VF2IN_P, I_VF2IN_Q, I_VF2IN_S,
59 I_VF2IN_T, I_VF2IU_P, I_VF2IU_Q, I_VF2IU_S,
60 I_VF2IU_T, I_VF2IZ_P, I_VF2IZ_Q, I_VF2IZ_S,
61 I_VF2IZ_T, I_VFAD_P, I_VFAD_Q, I_VFAD_T,
62 I_VFIM_S, I_VFLUSH, I_VH2F_P, I_VH2F_S,
63 I_VHDP_P, I_VHDP_Q, I_VHDP_T, I_VHTFM2_P,
64 I_VHTFM3_T, I_VHTFM4_Q, I_VI2C_Q, I_VI2F_P,
65 I_VI2F_Q, I_VI2F_S, I_VI2F_T, I_VI2S_P,
66 I_VI2S_Q, I_VI2UC_Q, I_VI2US_P, I_VI2US_Q,
67 I_VIDT_P, I_VIDT_Q, I_VIIM_S, I_VLGB_S,
68 I_VLOG2_P, I_VLOG2_Q, I_VLOG2_S, I_VLOG2_T,
69 I_VMAX_P, I_VMAX_Q, I_VMAX_S, I_VMAX_T,
70 I_VMFVC, I_VMIDT_P, I_VMIDT_Q, I_VMIDT_T,
71 I_VMIN_P, I_VMIN_Q, I_VMIN_S, I_VMIN_T,
72 I_VMMOV_P, I_VMMOV_Q, I_VMMOV_T, I_VMMUL_P,
73 I_VMMUL_Q, I_VMMUL_T, I_VMONE_P, I_VMONE_Q,
74 I_VMONE_T, I_VMOV_P, I_VMOV_Q, I_VMOV_S,
75 I_VMOV_T, I_VMSCL_P, I_VMSCL_Q, I_VMSCL_T,
76 I_VMTVC, I_VMUL_P, I_VMUL_Q, I_VMUL_S,
77 I_VMUL_T, I_VMZERO_P, I_VMZERO_Q, I_VMZERO_T,
78 I_VNEG_P, I_VNEG_Q, I_VNEG_S, I_VNEG_T,
79 I_VNOP, I_VNRCP_P, I_VNRCP_Q, I_VNRCP_S,
80 I_VNRCP_T, I_VNSIN_P, I_VNSIN_Q, I_VNSIN_S,
81 I_VNSIN_T, I_VOCP_P, I_VOCP_Q, I_VOCP_S,
82 I_VOCP_T, I_VONE_P, I_VONE_Q, I_VONE_S,
83 I_VONE_T, I_VPFXD, I_VPFXS, I_VPFXT,
84 I_VQMUL_Q, I_VRCP_P, I_VRCP_Q, I_VRCP_S,
85 I_VRCP_T, I_VREXP2_P, I_VREXP2_Q, I_VREXP2_S,
86 I_VREXP2_T, I_VRNDF1_P, I_VRNDF1_Q, I_VRNDF1_S,
87 I_VRNDF1_T, I_VRNDF2_P, I_VRNDF2_Q, I_VRNDF2_S,
88 I_VRNDF2_T, I_VRNDI_P, I_VRNDI_Q, I_VRNDI_S,
89 I_VRNDI_T, I_VRNDS_S, I_VROT_P, I_VROT_Q,
90 I_VROT_T, I_VRSQ_P, I_VRSQ_Q, I_VRSQ_S,
91 I_VRSQ_T, I_VS2I_P, I_VS2I_S, I_VSAT0_P,
92 I_VSAT0_Q, I_VSAT0_S, I_VSAT0_T, I_VSAT1_P,
93 I_VSAT1_Q, I_VSAT1_S, I_VSAT1_T, I_VSBN_S,
94 I_VSBZ_S, I_VSCL_P, I_VSCL_Q, I_VSCL_T,
95 I_VSCMP_P, I_VSCMP_Q, I_VSCMP_S, I_VSCMP_T,
96 I_VSGE_P, I_VSGE_Q, I_VSGE_S, I_VSGE_T,
97 I_VSGN_P, I_VSGN_Q, I_VSGN_S, I_VSGN_T,
98 I_VSIN_P, I_VSIN_Q, I_VSIN_S, I_VSIN_T,
99 I_VSLT_P, I_VSLT_Q, I_VSLT_S, I_VSLT_T,
100 I_VSOCP_P, I_VSOCP_S, I_VSQRT_P, I_VSQRT_Q,
101 I_VSQRT_S, I_VSQRT_T, I_VSRT1_Q, I_VSRT2_Q,
102 I_VSRT3_Q, I_VSRT4_Q, I_VSUB_P, I_VSUB_Q,
103 I_VSUB_S, I_VSUB_T, I_VSYNC=419, I_VT4444_Q,
104 I_VT5551_Q, I_VT5650_Q, I_VTFM2_P, I_VTFM3_T,
105 I_VTFM4_Q, I_VUS2I_P, I_VUS2I_S, I_VWB_Q,
106 I_VWBN_S, I_VZERO_P, I_VZERO_Q, I_VZERO_S,
107 I_VZERO_T, I_MFVME, I_MTVME, I_INVALID
110 char *allegrex_disassemble (unsigned int opcode, unsigned int PC);
111 enum insn_type allegrex_insn_type (unsigned int opcode);
113 #endif /* __ALLEGREX_H */