mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-22 12:31:10 +00:00
[gamecode] Rename the old opcodes
To reflect their basis on v6 progs instructions, they sport the v6p tag where the p is for "plus" due to the QuakeForge extensions.
This commit is contained in:
parent
bc0a09f452
commit
0c17c6dc24
7 changed files with 1004 additions and 1003 deletions
|
@ -89,355 +89,355 @@ extern const char * const pr_type_name[ev_type_count];
|
|||
|
||||
|
||||
typedef enum {
|
||||
OP_DONE,
|
||||
OP_MUL_F,
|
||||
OP_MUL_V,
|
||||
OP_MUL_FV,
|
||||
OP_MUL_VF,
|
||||
OP_DIV_F,
|
||||
OP_ADD_F,
|
||||
OP_ADD_V,
|
||||
OP_SUB_F,
|
||||
OP_SUB_V,
|
||||
OP_DONE_v6p,
|
||||
OP_MUL_F_v6p,
|
||||
OP_MUL_V_v6p,
|
||||
OP_MUL_FV_v6p,
|
||||
OP_MUL_VF_v6p,
|
||||
OP_DIV_F_v6p,
|
||||
OP_ADD_F_v6p,
|
||||
OP_ADD_V_v6p,
|
||||
OP_SUB_F_v6p,
|
||||
OP_SUB_V_v6p,
|
||||
|
||||
OP_EQ_F,
|
||||
OP_EQ_V,
|
||||
OP_EQ_S,
|
||||
OP_EQ_E,
|
||||
OP_EQ_FN,
|
||||
OP_EQ_F_v6p,
|
||||
OP_EQ_V_v6p,
|
||||
OP_EQ_S_v6p,
|
||||
OP_EQ_E_v6p,
|
||||
OP_EQ_FN_v6p,
|
||||
|
||||
OP_NE_F,
|
||||
OP_NE_V,
|
||||
OP_NE_S,
|
||||
OP_NE_E,
|
||||
OP_NE_FN,
|
||||
OP_NE_F_v6p,
|
||||
OP_NE_V_v6p,
|
||||
OP_NE_S_v6p,
|
||||
OP_NE_E_v6p,
|
||||
OP_NE_FN_v6p,
|
||||
|
||||
OP_LE_F,
|
||||
OP_GE_F,
|
||||
OP_LT_F,
|
||||
OP_GT_F,
|
||||
OP_LE_F_v6p,
|
||||
OP_GE_F_v6p,
|
||||
OP_LT_F_v6p,
|
||||
OP_GT_F_v6p,
|
||||
|
||||
OP_LOAD_F,
|
||||
OP_LOAD_V,
|
||||
OP_LOAD_S,
|
||||
OP_LOAD_ENT,
|
||||
OP_LOAD_FLD,
|
||||
OP_LOAD_FN,
|
||||
OP_LOAD_F_v6p,
|
||||
OP_LOAD_V_v6p,
|
||||
OP_LOAD_S_v6p,
|
||||
OP_LOAD_ENT_v6p,
|
||||
OP_LOAD_FLD_v6p,
|
||||
OP_LOAD_FN_v6p,
|
||||
|
||||
OP_ADDRESS,
|
||||
OP_ADDRESS_v6p,
|
||||
|
||||
OP_STORE_F,
|
||||
OP_STORE_V,
|
||||
OP_STORE_S,
|
||||
OP_STORE_ENT,
|
||||
OP_STORE_FLD,
|
||||
OP_STORE_FN,
|
||||
OP_STORE_F_v6p,
|
||||
OP_STORE_V_v6p,
|
||||
OP_STORE_S_v6p,
|
||||
OP_STORE_ENT_v6p,
|
||||
OP_STORE_FLD_v6p,
|
||||
OP_STORE_FN_v6p,
|
||||
|
||||
OP_STOREP_F,
|
||||
OP_STOREP_V,
|
||||
OP_STOREP_S,
|
||||
OP_STOREP_ENT,
|
||||
OP_STOREP_FLD,
|
||||
OP_STOREP_FN,
|
||||
OP_STOREP_F_v6p,
|
||||
OP_STOREP_V_v6p,
|
||||
OP_STOREP_S_v6p,
|
||||
OP_STOREP_ENT_v6p,
|
||||
OP_STOREP_FLD_v6p,
|
||||
OP_STOREP_FN_v6p,
|
||||
|
||||
OP_RETURN,
|
||||
OP_NOT_F,
|
||||
OP_NOT_V,
|
||||
OP_NOT_S,
|
||||
OP_NOT_ENT,
|
||||
OP_NOT_FN,
|
||||
OP_IF,
|
||||
OP_IFNOT,
|
||||
OP_CALL0,
|
||||
OP_CALL1,
|
||||
OP_CALL2,
|
||||
OP_CALL3,
|
||||
OP_CALL4,
|
||||
OP_CALL5,
|
||||
OP_CALL6,
|
||||
OP_CALL7,
|
||||
OP_CALL8,
|
||||
OP_STATE,
|
||||
OP_GOTO,
|
||||
OP_AND,
|
||||
OP_OR,
|
||||
OP_RETURN_v6p,
|
||||
OP_NOT_F_v6p,
|
||||
OP_NOT_V_v6p,
|
||||
OP_NOT_S_v6p,
|
||||
OP_NOT_ENT_v6p,
|
||||
OP_NOT_FN_v6p,
|
||||
OP_IF_v6p,
|
||||
OP_IFNOT_v6p,
|
||||
OP_CALL0_v6p,
|
||||
OP_CALL1_v6p,
|
||||
OP_CALL2_v6p,
|
||||
OP_CALL3_v6p,
|
||||
OP_CALL4_v6p,
|
||||
OP_CALL5_v6p,
|
||||
OP_CALL6_v6p,
|
||||
OP_CALL7_v6p,
|
||||
OP_CALL8_v6p,
|
||||
OP_STATE_v6p,
|
||||
OP_GOTO_v6p,
|
||||
OP_AND_v6p,
|
||||
OP_OR_v6p,
|
||||
|
||||
OP_BITAND,
|
||||
OP_BITOR, // end of v6 opcodes
|
||||
OP_BITAND_v6p,
|
||||
OP_BITOR_v6p, // end of v6 opcodes
|
||||
|
||||
OP_ADD_S,
|
||||
OP_LE_S,
|
||||
OP_GE_S,
|
||||
OP_LT_S,
|
||||
OP_GT_S,
|
||||
OP_ADD_S_v6p,
|
||||
OP_LE_S_v6p,
|
||||
OP_GE_S_v6p,
|
||||
OP_LT_S_v6p,
|
||||
OP_GT_S_v6p,
|
||||
|
||||
OP_ADD_I,
|
||||
OP_SUB_I,
|
||||
OP_MUL_I,
|
||||
OP_DIV_I,
|
||||
OP_BITAND_I,
|
||||
OP_BITOR_I,
|
||||
OP_GE_I,
|
||||
OP_LE_I,
|
||||
OP_GT_I,
|
||||
OP_LT_I,
|
||||
OP_AND_I,
|
||||
OP_OR_I,
|
||||
OP_NOT_I,
|
||||
OP_EQ_I,
|
||||
OP_NE_I,
|
||||
OP_STORE_I,
|
||||
OP_STOREP_I,
|
||||
OP_LOAD_I,
|
||||
OP_ADD_I_v6p,
|
||||
OP_SUB_I_v6p,
|
||||
OP_MUL_I_v6p,
|
||||
OP_DIV_I_v6p,
|
||||
OP_BITAND_I_v6p,
|
||||
OP_BITOR_I_v6p,
|
||||
OP_GE_I_v6p,
|
||||
OP_LE_I_v6p,
|
||||
OP_GT_I_v6p,
|
||||
OP_LT_I_v6p,
|
||||
OP_AND_I_v6p,
|
||||
OP_OR_I_v6p,
|
||||
OP_NOT_I_v6p,
|
||||
OP_EQ_I_v6p,
|
||||
OP_NE_I_v6p,
|
||||
OP_STORE_I_v6p,
|
||||
OP_STOREP_I_v6p,
|
||||
OP_LOAD_I_v6p,
|
||||
|
||||
OP_CONV_IF,
|
||||
OP_CONV_FI,
|
||||
OP_CONV_IF_v6p,
|
||||
OP_CONV_FI_v6p,
|
||||
|
||||
OP_BITXOR_F,
|
||||
OP_BITXOR_I,
|
||||
OP_BITNOT_F,
|
||||
OP_BITNOT_I,
|
||||
OP_BITXOR_F_v6p,
|
||||
OP_BITXOR_I_v6p,
|
||||
OP_BITNOT_F_v6p,
|
||||
OP_BITNOT_I_v6p,
|
||||
|
||||
OP_SHL_F,
|
||||
OP_SHR_F,
|
||||
OP_SHL_I,
|
||||
OP_SHR_I,
|
||||
OP_SHL_F_v6p,
|
||||
OP_SHR_F_v6p,
|
||||
OP_SHL_I_v6p,
|
||||
OP_SHR_I_v6p,
|
||||
|
||||
OP_REM_F,
|
||||
OP_REM_I,
|
||||
OP_REM_F_v6p,
|
||||
OP_REM_I_v6p,
|
||||
|
||||
OP_LOADB_F,
|
||||
OP_LOADB_V,
|
||||
OP_LOADB_S,
|
||||
OP_LOADB_ENT,
|
||||
OP_LOADB_FLD,
|
||||
OP_LOADB_FN,
|
||||
OP_LOADB_I,
|
||||
OP_LOADB_P,
|
||||
OP_LOADB_F_v6p,
|
||||
OP_LOADB_V_v6p,
|
||||
OP_LOADB_S_v6p,
|
||||
OP_LOADB_ENT_v6p,
|
||||
OP_LOADB_FLD_v6p,
|
||||
OP_LOADB_FN_v6p,
|
||||
OP_LOADB_I_v6p,
|
||||
OP_LOADB_P_v6p,
|
||||
|
||||
OP_STOREB_F,
|
||||
OP_STOREB_V,
|
||||
OP_STOREB_S,
|
||||
OP_STOREB_ENT,
|
||||
OP_STOREB_FLD,
|
||||
OP_STOREB_FN,
|
||||
OP_STOREB_I,
|
||||
OP_STOREB_P,
|
||||
OP_STOREB_F_v6p,
|
||||
OP_STOREB_V_v6p,
|
||||
OP_STOREB_S_v6p,
|
||||
OP_STOREB_ENT_v6p,
|
||||
OP_STOREB_FLD_v6p,
|
||||
OP_STOREB_FN_v6p,
|
||||
OP_STOREB_I_v6p,
|
||||
OP_STOREB_P_v6p,
|
||||
|
||||
OP_ADDRESS_VOID,
|
||||
OP_ADDRESS_F,
|
||||
OP_ADDRESS_V,
|
||||
OP_ADDRESS_S,
|
||||
OP_ADDRESS_ENT,
|
||||
OP_ADDRESS_FLD,
|
||||
OP_ADDRESS_FN,
|
||||
OP_ADDRESS_I,
|
||||
OP_ADDRESS_P,
|
||||
OP_ADDRESS_VOID_v6p,
|
||||
OP_ADDRESS_F_v6p,
|
||||
OP_ADDRESS_V_v6p,
|
||||
OP_ADDRESS_S_v6p,
|
||||
OP_ADDRESS_ENT_v6p,
|
||||
OP_ADDRESS_FLD_v6p,
|
||||
OP_ADDRESS_FN_v6p,
|
||||
OP_ADDRESS_I_v6p,
|
||||
OP_ADDRESS_P_v6p,
|
||||
|
||||
OP_LEA,
|
||||
OP_LEA_v6p,
|
||||
|
||||
OP_IFBE,
|
||||
OP_IFB,
|
||||
OP_IFAE,
|
||||
OP_IFA,
|
||||
OP_IFBE_v6p,
|
||||
OP_IFB_v6p,
|
||||
OP_IFAE_v6p,
|
||||
OP_IFA_v6p,
|
||||
|
||||
OP_JUMP,
|
||||
OP_JUMPB,
|
||||
OP_JUMP_v6p,
|
||||
OP_JUMPB_v6p,
|
||||
|
||||
OP_LT_U,
|
||||
OP_GT_U,
|
||||
OP_LE_U,
|
||||
OP_GE_U,
|
||||
OP_LT_U_v6p,
|
||||
OP_GT_U_v6p,
|
||||
OP_LE_U_v6p,
|
||||
OP_GE_U_v6p,
|
||||
|
||||
OP_LOADBI_F,
|
||||
OP_LOADBI_V,
|
||||
OP_LOADBI_S,
|
||||
OP_LOADBI_ENT,
|
||||
OP_LOADBI_FLD,
|
||||
OP_LOADBI_FN,
|
||||
OP_LOADBI_I,
|
||||
OP_LOADBI_P,
|
||||
OP_LOADBI_F_v6p,
|
||||
OP_LOADBI_V_v6p,
|
||||
OP_LOADBI_S_v6p,
|
||||
OP_LOADBI_ENT_v6p,
|
||||
OP_LOADBI_FLD_v6p,
|
||||
OP_LOADBI_FN_v6p,
|
||||
OP_LOADBI_I_v6p,
|
||||
OP_LOADBI_P_v6p,
|
||||
|
||||
OP_STOREBI_F,
|
||||
OP_STOREBI_V,
|
||||
OP_STOREBI_S,
|
||||
OP_STOREBI_ENT,
|
||||
OP_STOREBI_FLD,
|
||||
OP_STOREBI_FN,
|
||||
OP_STOREBI_I,
|
||||
OP_STOREBI_P,
|
||||
OP_STOREBI_F_v6p,
|
||||
OP_STOREBI_V_v6p,
|
||||
OP_STOREBI_S_v6p,
|
||||
OP_STOREBI_ENT_v6p,
|
||||
OP_STOREBI_FLD_v6p,
|
||||
OP_STOREBI_FN_v6p,
|
||||
OP_STOREBI_I_v6p,
|
||||
OP_STOREBI_P_v6p,
|
||||
|
||||
OP_LEAI,
|
||||
OP_LEAI_v6p,
|
||||
|
||||
OP_LOAD_P,
|
||||
OP_STORE_P,
|
||||
OP_STOREP_P,
|
||||
OP_NOT_P,
|
||||
OP_EQ_P,
|
||||
OP_NE_P,
|
||||
OP_LE_P,
|
||||
OP_GE_P,
|
||||
OP_LT_P,
|
||||
OP_GT_P,
|
||||
OP_LOAD_P_v6p,
|
||||
OP_STORE_P_v6p,
|
||||
OP_STOREP_P_v6p,
|
||||
OP_NOT_P_v6p,
|
||||
OP_EQ_P_v6p,
|
||||
OP_NE_P_v6p,
|
||||
OP_LE_P_v6p,
|
||||
OP_GE_P_v6p,
|
||||
OP_LT_P_v6p,
|
||||
OP_GT_P_v6p,
|
||||
|
||||
OP_MOVEI,
|
||||
OP_MOVEP,
|
||||
OP_MOVEPI,
|
||||
OP_MOVEI_v6p,
|
||||
OP_MOVEP_v6p,
|
||||
OP_MOVEPI_v6p,
|
||||
|
||||
OP_SHR_U,
|
||||
OP_SHR_U_v6p,
|
||||
|
||||
OP_STATE_F,
|
||||
OP_STATE_F_v6p,
|
||||
|
||||
OP_ADD_Q,
|
||||
OP_SUB_Q,
|
||||
OP_MUL_Q,
|
||||
OP_MUL_QF,
|
||||
OP_MUL_FQ,
|
||||
OP_MUL_QV,
|
||||
OP_CONJ_Q,
|
||||
OP_NOT_Q,
|
||||
OP_EQ_Q,
|
||||
OP_NE_Q,
|
||||
OP_STORE_Q,
|
||||
OP_STOREB_Q,
|
||||
OP_STOREBI_Q,
|
||||
OP_STOREP_Q,
|
||||
OP_LOAD_Q,
|
||||
OP_LOADB_Q,
|
||||
OP_LOADBI_Q,
|
||||
OP_ADDRESS_Q,
|
||||
OP_ADD_Q_v6p,
|
||||
OP_SUB_Q_v6p,
|
||||
OP_MUL_Q_v6p,
|
||||
OP_MUL_QF_v6p,
|
||||
OP_MUL_FQ_v6p,
|
||||
OP_MUL_QV_v6p,
|
||||
OP_CONJ_Q_v6p,
|
||||
OP_NOT_Q_v6p,
|
||||
OP_EQ_Q_v6p,
|
||||
OP_NE_Q_v6p,
|
||||
OP_STORE_Q_v6p,
|
||||
OP_STOREB_Q_v6p,
|
||||
OP_STOREBI_Q_v6p,
|
||||
OP_STOREP_Q_v6p,
|
||||
OP_LOAD_Q_v6p,
|
||||
OP_LOADB_Q_v6p,
|
||||
OP_LOADBI_Q_v6p,
|
||||
OP_ADDRESS_Q_v6p,
|
||||
|
||||
OP_RCALL0,
|
||||
OP_RCALL1,
|
||||
OP_RCALL2,
|
||||
OP_RCALL3,
|
||||
OP_RCALL4,
|
||||
OP_RCALL5,
|
||||
OP_RCALL6,
|
||||
OP_RCALL7,
|
||||
OP_RCALL8,
|
||||
OP_RCALL0_v6p,
|
||||
OP_RCALL1_v6p,
|
||||
OP_RCALL2_v6p,
|
||||
OP_RCALL3_v6p,
|
||||
OP_RCALL4_v6p,
|
||||
OP_RCALL5_v6p,
|
||||
OP_RCALL6_v6p,
|
||||
OP_RCALL7_v6p,
|
||||
OP_RCALL8_v6p,
|
||||
|
||||
OP_RETURN_V,
|
||||
OP_RETURN_V_v6p,
|
||||
|
||||
OP_PUSH_S,
|
||||
OP_PUSH_F,
|
||||
OP_PUSH_V,
|
||||
OP_PUSH_ENT,
|
||||
OP_PUSH_FLD,
|
||||
OP_PUSH_FN,
|
||||
OP_PUSH_P,
|
||||
OP_PUSH_Q,
|
||||
OP_PUSH_I,
|
||||
OP_PUSH_D,
|
||||
OP_PUSH_S_v6p,
|
||||
OP_PUSH_F_v6p,
|
||||
OP_PUSH_V_v6p,
|
||||
OP_PUSH_ENT_v6p,
|
||||
OP_PUSH_FLD_v6p,
|
||||
OP_PUSH_FN_v6p,
|
||||
OP_PUSH_P_v6p,
|
||||
OP_PUSH_Q_v6p,
|
||||
OP_PUSH_I_v6p,
|
||||
OP_PUSH_D_v6p,
|
||||
|
||||
OP_PUSHB_S,
|
||||
OP_PUSHB_F,
|
||||
OP_PUSHB_V,
|
||||
OP_PUSHB_ENT,
|
||||
OP_PUSHB_FLD,
|
||||
OP_PUSHB_FN,
|
||||
OP_PUSHB_P,
|
||||
OP_PUSHB_Q,
|
||||
OP_PUSHB_I,
|
||||
OP_PUSHB_D,
|
||||
OP_PUSHB_S_v6p,
|
||||
OP_PUSHB_F_v6p,
|
||||
OP_PUSHB_V_v6p,
|
||||
OP_PUSHB_ENT_v6p,
|
||||
OP_PUSHB_FLD_v6p,
|
||||
OP_PUSHB_FN_v6p,
|
||||
OP_PUSHB_P_v6p,
|
||||
OP_PUSHB_Q_v6p,
|
||||
OP_PUSHB_I_v6p,
|
||||
OP_PUSHB_D_v6p,
|
||||
|
||||
OP_PUSHBI_S,
|
||||
OP_PUSHBI_F,
|
||||
OP_PUSHBI_V,
|
||||
OP_PUSHBI_ENT,
|
||||
OP_PUSHBI_FLD,
|
||||
OP_PUSHBI_FN,
|
||||
OP_PUSHBI_P,
|
||||
OP_PUSHBI_Q,
|
||||
OP_PUSHBI_I,
|
||||
OP_PUSHBI_D,
|
||||
OP_PUSHBI_S_v6p,
|
||||
OP_PUSHBI_F_v6p,
|
||||
OP_PUSHBI_V_v6p,
|
||||
OP_PUSHBI_ENT_v6p,
|
||||
OP_PUSHBI_FLD_v6p,
|
||||
OP_PUSHBI_FN_v6p,
|
||||
OP_PUSHBI_P_v6p,
|
||||
OP_PUSHBI_Q_v6p,
|
||||
OP_PUSHBI_I_v6p,
|
||||
OP_PUSHBI_D_v6p,
|
||||
|
||||
OP_POP_S,
|
||||
OP_POP_F,
|
||||
OP_POP_V,
|
||||
OP_POP_ENT,
|
||||
OP_POP_FLD,
|
||||
OP_POP_FN,
|
||||
OP_POP_P,
|
||||
OP_POP_Q,
|
||||
OP_POP_I,
|
||||
OP_POP_D,
|
||||
OP_POP_S_v6p,
|
||||
OP_POP_F_v6p,
|
||||
OP_POP_V_v6p,
|
||||
OP_POP_ENT_v6p,
|
||||
OP_POP_FLD_v6p,
|
||||
OP_POP_FN_v6p,
|
||||
OP_POP_P_v6p,
|
||||
OP_POP_Q_v6p,
|
||||
OP_POP_I_v6p,
|
||||
OP_POP_D_v6p,
|
||||
|
||||
OP_POPB_S,
|
||||
OP_POPB_F,
|
||||
OP_POPB_V,
|
||||
OP_POPB_ENT,
|
||||
OP_POPB_FLD,
|
||||
OP_POPB_FN,
|
||||
OP_POPB_P,
|
||||
OP_POPB_Q,
|
||||
OP_POPB_I,
|
||||
OP_POPB_D,
|
||||
OP_POPB_S_v6p,
|
||||
OP_POPB_F_v6p,
|
||||
OP_POPB_V_v6p,
|
||||
OP_POPB_ENT_v6p,
|
||||
OP_POPB_FLD_v6p,
|
||||
OP_POPB_FN_v6p,
|
||||
OP_POPB_P_v6p,
|
||||
OP_POPB_Q_v6p,
|
||||
OP_POPB_I_v6p,
|
||||
OP_POPB_D_v6p,
|
||||
|
||||
OP_POPBI_S,
|
||||
OP_POPBI_F,
|
||||
OP_POPBI_V,
|
||||
OP_POPBI_ENT,
|
||||
OP_POPBI_FLD,
|
||||
OP_POPBI_FN,
|
||||
OP_POPBI_P,
|
||||
OP_POPBI_Q,
|
||||
OP_POPBI_I,
|
||||
OP_POPBI_D,
|
||||
OP_POPBI_S_v6p,
|
||||
OP_POPBI_F_v6p,
|
||||
OP_POPBI_V_v6p,
|
||||
OP_POPBI_ENT_v6p,
|
||||
OP_POPBI_FLD_v6p,
|
||||
OP_POPBI_FN_v6p,
|
||||
OP_POPBI_P_v6p,
|
||||
OP_POPBI_Q_v6p,
|
||||
OP_POPBI_I_v6p,
|
||||
OP_POPBI_D_v6p,
|
||||
|
||||
OP_ADD_D,
|
||||
OP_SUB_D,
|
||||
OP_MUL_D,
|
||||
OP_MUL_QD,
|
||||
OP_MUL_DQ,
|
||||
OP_MUL_VD,
|
||||
OP_MUL_DV,
|
||||
OP_DIV_D,
|
||||
OP_REM_D,
|
||||
OP_GE_D,
|
||||
OP_LE_D,
|
||||
OP_GT_D,
|
||||
OP_LT_D,
|
||||
OP_NOT_D,
|
||||
OP_EQ_D,
|
||||
OP_NE_D,
|
||||
OP_CONV_FD,
|
||||
OP_CONV_DF,
|
||||
OP_CONV_ID,
|
||||
OP_CONV_DI,
|
||||
OP_STORE_D,
|
||||
OP_STOREB_D,
|
||||
OP_STOREBI_D,
|
||||
OP_STOREP_D,
|
||||
OP_LOAD_D,
|
||||
OP_LOADB_D,
|
||||
OP_LOADBI_D,
|
||||
OP_ADDRESS_D,
|
||||
OP_ADD_D_v6p,
|
||||
OP_SUB_D_v6p,
|
||||
OP_MUL_D_v6p,
|
||||
OP_MUL_QD_v6p,
|
||||
OP_MUL_DQ_v6p,
|
||||
OP_MUL_VD_v6p,
|
||||
OP_MUL_DV_v6p,
|
||||
OP_DIV_D_v6p,
|
||||
OP_REM_D_v6p,
|
||||
OP_GE_D_v6p,
|
||||
OP_LE_D_v6p,
|
||||
OP_GT_D_v6p,
|
||||
OP_LT_D_v6p,
|
||||
OP_NOT_D_v6p,
|
||||
OP_EQ_D_v6p,
|
||||
OP_NE_D_v6p,
|
||||
OP_CONV_FD_v6p,
|
||||
OP_CONV_DF_v6p,
|
||||
OP_CONV_ID_v6p,
|
||||
OP_CONV_DI_v6p,
|
||||
OP_STORE_D_v6p,
|
||||
OP_STOREB_D_v6p,
|
||||
OP_STOREBI_D_v6p,
|
||||
OP_STOREP_D_v6p,
|
||||
OP_LOAD_D_v6p,
|
||||
OP_LOADB_D_v6p,
|
||||
OP_LOADBI_D_v6p,
|
||||
OP_ADDRESS_D_v6p,
|
||||
|
||||
OP_MOD_I,
|
||||
OP_MOD_F,
|
||||
OP_MOD_D,
|
||||
OP_MOD_I_v6p,
|
||||
OP_MOD_F_v6p,
|
||||
OP_MOD_D_v6p,
|
||||
|
||||
OP_MEMSETI,
|
||||
OP_MEMSETP,
|
||||
OP_MEMSETPI,
|
||||
} pr_opcode_e;
|
||||
OP_MEMSETI_v6p,
|
||||
OP_MEMSETP_v6p,
|
||||
OP_MEMSETPI_v6p,
|
||||
} pr_opcode_v6p_e;
|
||||
#define OP_BREAK 0x8000
|
||||
|
||||
typedef struct opcode_s {
|
||||
typedef struct v6p_opcode_s {
|
||||
const char *name;
|
||||
const char *opname;
|
||||
etype_t type_a, type_b, type_c;
|
||||
unsigned int min_version;
|
||||
const char *fmt;
|
||||
} opcode_t;
|
||||
} v6p_opcode_t;
|
||||
|
||||
extern const opcode_t pr_opcodes[];
|
||||
const opcode_t *PR_Opcode (pr_short_t opcode) __attribute__((const));
|
||||
extern const v6p_opcode_t pr_v6p_opcodes[];
|
||||
const v6p_opcode_t *PR_v6p_Opcode (pr_ushort_t opcode) __attribute__((const));
|
||||
void PR_Opcode_Init (void); // idempotent
|
||||
|
||||
typedef struct dstatement_s {
|
||||
pr_opcode_e op:16;
|
||||
pr_opcode_v6p_e op:16;
|
||||
pr_ushort_t a,b,c;
|
||||
} GCC_STRUCT dstatement_t;
|
||||
|
||||
|
|
|
@ -1482,7 +1482,7 @@ PR_PrintStatement (progs_t *pr, dstatement_t *s, int contents)
|
|||
int addr = s - pr->pr_statements;
|
||||
int dump_code = contents & 2;
|
||||
const char *fmt;
|
||||
const opcode_t *op;
|
||||
const v6p_opcode_t *op;
|
||||
dfunction_t *call_func = 0;
|
||||
pr_def_t *parm_def = 0;
|
||||
pr_auxfunction_t *aux_func = 0;
|
||||
|
@ -1508,7 +1508,7 @@ PR_PrintStatement (progs_t *pr, dstatement_t *s, int contents)
|
|||
return;
|
||||
}
|
||||
|
||||
op = PR_Opcode (s->op);
|
||||
op = PR_v6p_Opcode (s->op);
|
||||
if (!op) {
|
||||
Sys_Printf ("%sUnknown instruction %d\n", res->line->str, s->op);
|
||||
return;
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -31,27 +31,28 @@
|
|||
#ifndef __opcodes_h
|
||||
#define __opcodes_h
|
||||
|
||||
extern struct opcode_s *op_done;
|
||||
extern struct opcode_s *op_return;
|
||||
extern struct opcode_s *op_return_v;
|
||||
extern struct opcode_s *op_if;
|
||||
extern struct opcode_s *op_ifnot;
|
||||
extern struct opcode_s *op_ifbe;
|
||||
extern struct opcode_s *op_ifb;
|
||||
extern struct opcode_s *op_ifae;
|
||||
extern struct opcode_s *op_ifa;
|
||||
extern struct opcode_s *op_state;
|
||||
extern struct opcode_s *op_state_f;
|
||||
extern struct opcode_s *op_goto;
|
||||
extern struct opcode_s *op_jump;
|
||||
extern struct opcode_s *op_jumpb;
|
||||
extern struct v6p_opcode_s *op_done;
|
||||
extern struct v6p_opcode_s *op_return;
|
||||
extern struct v6p_opcode_s *op_return_v;
|
||||
extern struct v6p_opcode_s *op_if;
|
||||
extern struct v6p_opcode_s *op_ifnot;
|
||||
extern struct v6p_opcode_s *op_ifbe;
|
||||
extern struct v6p_opcode_s *op_ifb;
|
||||
extern struct v6p_opcode_s *op_ifae;
|
||||
extern struct v6p_opcode_s *op_ifa;
|
||||
extern struct v6p_opcode_s *op_state;
|
||||
extern struct v6p_opcode_s *op_state_f;
|
||||
extern struct v6p_opcode_s *op_goto;
|
||||
extern struct v6p_opcode_s *op_jump;
|
||||
extern struct v6p_opcode_s *op_jumpb;
|
||||
|
||||
struct operand_s;
|
||||
|
||||
extern struct opcode_s *opcode_map;
|
||||
extern struct v6p_opcode_s *opcode_map;
|
||||
|
||||
struct opcode_s *opcode_find (const char *name, struct operand_s *op_a,
|
||||
struct operand_s *op_b, struct operand_s *op_c);
|
||||
struct v6p_opcode_s *opcode_find (const char *name, struct operand_s *op_a,
|
||||
struct operand_s *op_b,
|
||||
struct operand_s *op_c);
|
||||
void opcode_init (void);
|
||||
|
||||
#endif//__opcodes_h
|
||||
|
|
|
@ -185,7 +185,7 @@ emit_statement (statement_t *statement)
|
|||
{
|
||||
const char *opcode = statement->opcode;
|
||||
def_t *def_a, *def_b, *def_c;
|
||||
opcode_t *op;
|
||||
v6p_opcode_t *op;
|
||||
dstatement_t *s;
|
||||
|
||||
def_a = get_operand_def (statement->expr, statement->opa);
|
||||
|
|
|
@ -49,14 +49,14 @@
|
|||
|
||||
hashtab_t *opcode_type_table;
|
||||
hashtab_t *opcode_void_table;
|
||||
opcode_t *opcode_map;
|
||||
v6p_opcode_t *opcode_map;
|
||||
|
||||
#define ROTL(x,n) ((((unsigned)(x))<<(n))|((unsigned)(x))>>(32-n))
|
||||
|
||||
static uintptr_t
|
||||
get_hash (const void *_op, void *_tab)
|
||||
{
|
||||
opcode_t *op = (opcode_t *) _op;
|
||||
v6p_opcode_t *op = (v6p_opcode_t *) _op;
|
||||
uintptr_t hash;
|
||||
|
||||
hash = ROTL (~op->type_a, 8) + ROTL (~op->type_b, 16)
|
||||
|
@ -67,8 +67,8 @@ get_hash (const void *_op, void *_tab)
|
|||
static int
|
||||
compare (const void *_opa, const void *_opb, void *unused)
|
||||
{
|
||||
opcode_t *opa = (opcode_t *) _opa;
|
||||
opcode_t *opb = (opcode_t *) _opb;
|
||||
v6p_opcode_t *opa = (v6p_opcode_t *) _opa;
|
||||
v6p_opcode_t *opb = (v6p_opcode_t *) _opb;
|
||||
int cmp;
|
||||
|
||||
cmp = (opa->type_a == opb->type_a)
|
||||
|
@ -80,7 +80,7 @@ compare (const void *_opa, const void *_opb, void *unused)
|
|||
static const char *
|
||||
get_key (const void *op, void *unused)
|
||||
{
|
||||
return ((opcode_t *) op)->name;
|
||||
return ((v6p_opcode_t *) op)->name;
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -92,13 +92,13 @@ check_operand_type (etype_t ot1, etype_t ot2)
|
|||
return 0;
|
||||
}
|
||||
|
||||
opcode_t *
|
||||
v6p_opcode_t *
|
||||
opcode_find (const char *name, operand_t *op_a, operand_t *op_b,
|
||||
operand_t *op_c)
|
||||
{
|
||||
opcode_t search_op = {};
|
||||
opcode_t *op;
|
||||
opcode_t *sop;
|
||||
v6p_opcode_t search_op = {};
|
||||
v6p_opcode_t *op;
|
||||
v6p_opcode_t *sop;
|
||||
void **op_list;
|
||||
int i;
|
||||
|
||||
|
@ -126,8 +126,8 @@ opcode_find (const char *name, operand_t *op_a, operand_t *op_b,
|
|||
void
|
||||
opcode_init (void)
|
||||
{
|
||||
const opcode_t *op;
|
||||
opcode_t *mop;
|
||||
const v6p_opcode_t *op;
|
||||
v6p_opcode_t *mop;
|
||||
|
||||
if (opcode_type_table) {
|
||||
Hash_FlushTable (opcode_void_table);
|
||||
|
@ -140,14 +140,14 @@ opcode_init (void)
|
|||
}
|
||||
|
||||
int num_opcodes = 0;
|
||||
for (op = pr_opcodes; op->name; op++) {
|
||||
for (op = pr_v6p_opcodes; op->name; op++) {
|
||||
num_opcodes++;
|
||||
}
|
||||
if (!opcode_map) {
|
||||
opcode_map = calloc (num_opcodes, sizeof (opcode_t));
|
||||
opcode_map = calloc (num_opcodes, sizeof (v6p_opcode_t));
|
||||
}
|
||||
for (int i = 0; i < num_opcodes; i++) {
|
||||
op = pr_opcodes + i;
|
||||
op = pr_v6p_opcodes + i;
|
||||
if (op->min_version > options.code.progsversion)
|
||||
continue;
|
||||
mop = opcode_map + i;
|
||||
|
|
Loading…
Reference in a new issue