diff options
| author | 2015-05-14 11:58:05 -0400 | |
|---|---|---|
| committer | 2015-05-14 14:32:07 -0400 | |
| commit | 0530fd249911a807bcaca2563d95d1f33298ad62 (patch) | |
| tree | 873c9b412a66a64ac1b1dda5426abd2bded8e3b9 /src | |
| parent | dyncom: Remove unnecessary typedefs (diff) | |
| download | yuzu-0530fd249911a807bcaca2563d95d1f33298ad62.tar.gz yuzu-0530fd249911a807bcaca2563d95d1f33298ad62.tar.xz yuzu-0530fd249911a807bcaca2563d95d1f33298ad62.zip | |
dyncom: Make translation-unit functions and variables static
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/arm/dyncom/arm_dyncom_interpreter.cpp | 130 |
1 files changed, 64 insertions, 66 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp index ebc1b96b9..81d8c7026 100644 --- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp +++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp | |||
| @@ -68,6 +68,67 @@ static void remove_exclusive(ARMul_State* state, ARMword addr){ | |||
| 68 | state->exclusive_tag = 0xFFFFFFFF; | 68 | state->exclusive_tag = 0xFFFFFFFF; |
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | static int CondPassed(ARMul_State* cpu, unsigned int cond) { | ||
| 72 | #define NFLAG cpu->NFlag | ||
| 73 | #define ZFLAG cpu->ZFlag | ||
| 74 | #define CFLAG cpu->CFlag | ||
| 75 | #define VFLAG cpu->VFlag | ||
| 76 | |||
| 77 | int temp = 0; | ||
| 78 | |||
| 79 | switch (cond) { | ||
| 80 | case 0x0: | ||
| 81 | temp = ZFLAG; | ||
| 82 | break; | ||
| 83 | case 0x1: // NE | ||
| 84 | temp = !ZFLAG; | ||
| 85 | break; | ||
| 86 | case 0x2: // CS | ||
| 87 | temp = CFLAG; | ||
| 88 | break; | ||
| 89 | case 0x3: // CC | ||
| 90 | temp = !CFLAG; | ||
| 91 | break; | ||
| 92 | case 0x4: // MI | ||
| 93 | temp = NFLAG; | ||
| 94 | break; | ||
| 95 | case 0x5: // PL | ||
| 96 | temp = !NFLAG; | ||
| 97 | break; | ||
| 98 | case 0x6: // VS | ||
| 99 | temp = VFLAG; | ||
| 100 | break; | ||
| 101 | case 0x7: // VC | ||
| 102 | temp = !VFLAG; | ||
| 103 | break; | ||
| 104 | case 0x8: // HI | ||
| 105 | temp = (CFLAG && !ZFLAG); | ||
| 106 | break; | ||
| 107 | case 0x9: // LS | ||
| 108 | temp = (!CFLAG || ZFLAG); | ||
| 109 | break; | ||
| 110 | case 0xa: // GE | ||
| 111 | temp = ((!NFLAG && !VFLAG) || (NFLAG && VFLAG)); | ||
| 112 | break; | ||
| 113 | case 0xb: // LT | ||
| 114 | temp = ((NFLAG && !VFLAG) || (!NFLAG && VFLAG)); | ||
| 115 | break; | ||
| 116 | case 0xc: // GT | ||
| 117 | temp = ((!NFLAG && !VFLAG && !ZFLAG) || (NFLAG && VFLAG && !ZFLAG)); | ||
| 118 | break; | ||
| 119 | case 0xd: // LE | ||
| 120 | temp = ((NFLAG && !VFLAG) || (!NFLAG && VFLAG)) || ZFLAG; | ||
| 121 | break; | ||
| 122 | case 0xe: // AL | ||
| 123 | temp = 1; | ||
| 124 | break; | ||
| 125 | case 0xf: | ||
| 126 | temp = 1; | ||
| 127 | break; | ||
| 128 | } | ||
| 129 | return temp; | ||
| 130 | } | ||
| 131 | |||
| 71 | static unsigned int DPO(Immediate)(ARMul_State* cpu, unsigned int sht_oper) { | 132 | static unsigned int DPO(Immediate)(ARMul_State* cpu, unsigned int sht_oper) { |
| 72 | unsigned int immed_8 = BITS(sht_oper, 0, 7); | 133 | unsigned int immed_8 = BITS(sht_oper, 0, 7); |
| 73 | unsigned int rotate_imm = BITS(sht_oper, 8, 11); | 134 | unsigned int rotate_imm = BITS(sht_oper, 8, 11); |
| @@ -230,8 +291,6 @@ struct ldst_inst { | |||
| 230 | }; | 291 | }; |
| 231 | #define DEBUG_MSG LOG_DEBUG(Core_ARM11, "inst is %x", inst); CITRA_IGNORE_EXIT(0) | 292 | #define DEBUG_MSG LOG_DEBUG(Core_ARM11, "inst is %x", inst); CITRA_IGNORE_EXIT(0) |
| 232 | 293 | ||
| 233 | int CondPassed(ARMul_State* cpu, unsigned int cond); | ||
| 234 | |||
| 235 | #define LnSWoUB(s) glue(LnSWoUB, s) | 294 | #define LnSWoUB(s) glue(LnSWoUB, s) |
| 236 | #define MLnS(s) glue(MLnS, s) | 295 | #define MLnS(s) glue(MLnS, s) |
| 237 | #define LdnStM(s) glue(LdnStM, s) | 296 | #define LdnStM(s) glue(LdnStM, s) |
| @@ -1108,9 +1167,9 @@ struct pkh_inst { | |||
| 1108 | typedef arm_inst * ARM_INST_PTR; | 1167 | typedef arm_inst * ARM_INST_PTR; |
| 1109 | 1168 | ||
| 1110 | #define CACHE_BUFFER_SIZE (64 * 1024 * 2000) | 1169 | #define CACHE_BUFFER_SIZE (64 * 1024 * 2000) |
| 1111 | char inst_buf[CACHE_BUFFER_SIZE]; | 1170 | static char inst_buf[CACHE_BUFFER_SIZE]; |
| 1112 | int top = 0; | 1171 | static int top = 0; |
| 1113 | inline void *AllocBuffer(unsigned int size) { | 1172 | static inline void *AllocBuffer(unsigned int size) { |
| 1114 | int start = top; | 1173 | int start = top; |
| 1115 | top += size; | 1174 | top += size; |
| 1116 | if (top > CACHE_BUFFER_SIZE) { | 1175 | if (top > CACHE_BUFFER_SIZE) { |
| @@ -1120,67 +1179,6 @@ inline void *AllocBuffer(unsigned int size) { | |||
| 1120 | return (void *)&inst_buf[start]; | 1179 | return (void *)&inst_buf[start]; |
| 1121 | } | 1180 | } |
| 1122 | 1181 | ||
| 1123 | int CondPassed(ARMul_State* cpu, unsigned int cond) { | ||
| 1124 | #define NFLAG cpu->NFlag | ||
| 1125 | #define ZFLAG cpu->ZFlag | ||
| 1126 | #define CFLAG cpu->CFlag | ||
| 1127 | #define VFLAG cpu->VFlag | ||
| 1128 | |||
| 1129 | int temp = 0; | ||
| 1130 | |||
| 1131 | switch (cond) { | ||
| 1132 | case 0x0: | ||
| 1133 | temp = ZFLAG; | ||
| 1134 | break; | ||
| 1135 | case 0x1: // NE | ||
| 1136 | temp = !ZFLAG; | ||
| 1137 | break; | ||
| 1138 | case 0x6: // VS | ||
| 1139 | temp = VFLAG; | ||
| 1140 | break; | ||
| 1141 | case 0x7: // VC | ||
| 1142 | temp = !VFLAG; | ||
| 1143 | break; | ||
| 1144 | case 0x4: // MI | ||
| 1145 | temp = NFLAG; | ||
| 1146 | break; | ||
| 1147 | case 0x5: // PL | ||
| 1148 | temp = !NFLAG; | ||
| 1149 | break; | ||
| 1150 | case 0x2: // CS | ||
| 1151 | temp = CFLAG; | ||
| 1152 | break; | ||
| 1153 | case 0x3: // CC | ||
| 1154 | temp = !CFLAG; | ||
| 1155 | break; | ||
| 1156 | case 0x8: // HI | ||
| 1157 | temp = (CFLAG && !ZFLAG); | ||
| 1158 | break; | ||
| 1159 | case 0x9: // LS | ||
| 1160 | temp = (!CFLAG || ZFLAG); | ||
| 1161 | break; | ||
| 1162 | case 0xa: // GE | ||
| 1163 | temp = ((!NFLAG && !VFLAG) || (NFLAG && VFLAG)); | ||
| 1164 | break; | ||
| 1165 | case 0xb: // LT | ||
| 1166 | temp = ((NFLAG && !VFLAG) || (!NFLAG && VFLAG)); | ||
| 1167 | break; | ||
| 1168 | case 0xc: // GT | ||
| 1169 | temp = ((!NFLAG && !VFLAG && !ZFLAG) || (NFLAG && VFLAG && !ZFLAG)); | ||
| 1170 | break; | ||
| 1171 | case 0xd: // LE | ||
| 1172 | temp = ((NFLAG && !VFLAG) || (!NFLAG && VFLAG)) || ZFLAG; | ||
| 1173 | break; | ||
| 1174 | case 0xe: // AL | ||
| 1175 | temp = 1; | ||
| 1176 | break; | ||
| 1177 | case 0xf: | ||
| 1178 | temp = 1; | ||
| 1179 | break; | ||
| 1180 | } | ||
| 1181 | return temp; | ||
| 1182 | } | ||
| 1183 | |||
| 1184 | enum DECODE_STATUS { | 1182 | enum DECODE_STATUS { |
| 1185 | DECODE_SUCCESS, | 1183 | DECODE_SUCCESS, |
| 1186 | DECODE_FAILURE | 1184 | DECODE_FAILURE |