MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / parseReference

Method parseReference

pcsx2/DebugTools/DebugInterface.cpp:1235–1291  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1233}
1234
1235bool MipsExpressionFunctions::parseReference(char* str, u64& referenceIndex)
1236{
1237 for (int i = 0; i < 32; i++)
1238 {
1239 char reg[8];
1240 std::snprintf(reg, std::size(reg), "r%d", i);
1241 if (StringUtil::Strcasecmp(str, reg) == 0 || StringUtil::Strcasecmp(str, m_cpu->getRegisterName(0, i)) == 0)
1242 {
1243 referenceIndex = i;
1244 return true;
1245 }
1246
1247 std::snprintf(reg, std::size(reg), "f%d", i);
1248 if (StringUtil::Strcasecmp(str, reg) == 0)
1249 {
1250 referenceIndex = i | REF_INDEX_FPU;
1251 return true;
1252 }
1253 }
1254
1255 if (StringUtil::Strcasecmp(str, "pc") == 0)
1256 {
1257 referenceIndex = REF_INDEX_PC;
1258 return true;
1259 }
1260
1261 if (StringUtil::Strcasecmp(str, "hi") == 0)
1262 {
1263 referenceIndex = REF_INDEX_HI;
1264 return true;
1265 }
1266
1267 if (StringUtil::Strcasecmp(str, "lo") == 0)
1268 {
1269 referenceIndex = REF_INDEX_LO;
1270 return true;
1271 }
1272
1273 if (StringUtil::Strcasecmp(str, "target") == 0)
1274 {
1275 referenceIndex = REF_INDEX_OPTARGET;
1276 return true;
1277 }
1278
1279 if (StringUtil::Strcasecmp(str, "load") == 0)
1280 {
1281 referenceIndex = REF_INDEX_OPLOAD;
1282 return true;
1283 }
1284
1285 if (StringUtil::Strcasecmp(str, "store") == 0)
1286 {
1287 referenceIndex = REF_INDEX_OPSTORE;
1288 return true;
1289 }
1290 return false;
1291}
1292

Callers 1

initPostfixExpressionFunction · 0.80

Calls 3

StrcasecmpFunction · 0.85
getRegisterNameMethod · 0.80
sizeFunction · 0.50

Tested by

no test coverage detected