diff options
author | archshift <gh@archshift.com> | 2016-06-11 04:02:02 +0200 |
---|---|---|
committer | archshift <gh@archshift.com> | 2016-06-12 10:54:45 +0200 |
commit | ca20b1f87d87bd7059c90cfe064b4da4eae33199 (patch) | |
tree | d0435a5c4bb74316a6e71ff4ffb79f2d9e7de9e7 /src/core/arm/dyncom/arm_dyncom_trans.h | |
parent | arm_dyncom_interpreter: slightly change AllocBuffer to be intuitive (diff) | |
download | yuzu-ca20b1f87d87bd7059c90cfe064b4da4eae33199.tar yuzu-ca20b1f87d87bd7059c90cfe064b4da4eae33199.tar.gz yuzu-ca20b1f87d87bd7059c90cfe064b4da4eae33199.tar.bz2 yuzu-ca20b1f87d87bd7059c90cfe064b4da4eae33199.tar.lz yuzu-ca20b1f87d87bd7059c90cfe064b4da4eae33199.tar.xz yuzu-ca20b1f87d87bd7059c90cfe064b4da4eae33199.tar.zst yuzu-ca20b1f87d87bd7059c90cfe064b4da4eae33199.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/arm/dyncom/arm_dyncom_trans.h (renamed from src/core/arm/dyncom/arm_dyncom_trans_struct.inc) | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom_trans_struct.inc b/src/core/arm/dyncom/arm_dyncom_trans.h index 05139f00f..7af71f4e3 100644 --- a/src/core/arm/dyncom/arm_dyncom_trans_struct.inc +++ b/src/core/arm/dyncom/arm_dyncom_trans.h @@ -1,3 +1,18 @@ +struct ARMul_State; +typedef unsigned int (*shtop_fp_t)(ARMul_State* cpu, unsigned int sht_oper); + +enum class TransExtData { + COND = (1 << 0), + NON_BRANCH = (1 << 1), + DIRECT_BRANCH = (1 << 2), + INDIRECT_BRANCH = (1 << 3), + CALL = (1 << 4), + RET = (1 << 5), + END_OF_PAGE = (1 << 6), + THUMB = (1 << 7), + SINGLE_STEP = (1 << 8) +}; + struct arm_inst { unsigned int idx; unsigned int cond; @@ -456,7 +471,23 @@ struct pkh_inst { }; // Floating point VFPv3 structures - #define VFP_INTERPRETER_STRUCT #include "core/arm/skyeye_common/vfp/vfpinstr.cpp" -#undef VFP_INTERPRETER_STRUCT
\ No newline at end of file +#undef VFP_INTERPRETER_STRUCT + +typedef void (*get_addr_fp_t)(ARMul_State *cpu, unsigned int inst, unsigned int &virt_addr); + +struct ldst_inst { + unsigned int inst; + get_addr_fp_t get_addr; +}; + +typedef arm_inst* ARM_INST_PTR; +typedef ARM_INST_PTR (*transop_fp_t)(unsigned int, int); + +extern const transop_fp_t arm_instruction_trans[]; +extern const size_t arm_instruction_trans_len; + +#define TRANS_CACHE_SIZE (64 * 1024 * 2000) +extern char trans_cache_buf[TRANS_CACHE_SIZE]; +extern size_t trans_cache_buf_top; |