MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / GetCop0Register

Function GetCop0Register

arch/mips/il.cpp:303–497  ·  view source on GitHub ↗

Get the IL Register for a given cop0 register/selector pair. Returns REG_ZERO for unsupported/unimplemented values.

Source from the content-addressed store, hash-verified

301// Get the IL Register for a given cop0 register/selector pair.
302// Returns REG_ZERO for unsupported/unimplemented values.
303static Reg GetCop0Register(uint32_t reg, uint64_t sel)
304{
305 switch (reg)
306 {
307 case 0:
308 switch (sel)
309 {
310 case 0: return REG_INDEX;
311 case 1: return REG_MVP_CONTROL;
312 case 2: return REG_MVP_CONF0;
313 case 3: return REG_MVP_CONF1;
314 }
315 break;
316 case 1:
317 switch (sel)
318 {
319 case 0: return REG_RANDOM;
320 case 1: return REG_VPE_CONTROL;
321 case 2: return REG_VPE_CONF0;
322 case 3: return REG_VPE_CONF1;
323 case 4: return REG_YQ_MASK;
324 case 5: return REG_VPE_SCHEDULE;
325 case 6: return REG_VPE_SCHE_FBACK;
326 case 7: return REG_VPE_OPT;
327 }
328 break;
329 case 2:
330 switch (sel)
331 {
332 case 0: return REG_ENTRY_LO0;
333 case 1: return REG_TC_STATUS;
334 case 2: return REG_TC_BIND;
335 case 3: return REG_TC_RESTART;
336 case 4: return REG_TC_HALT;
337 case 5: return REG_TC_CONTEXT;
338 case 6: return REG_TC_SCHEDULE;
339 case 7: return REG_TC_SCHE_FBACK;
340 }
341 break;
342 case 3:
343 switch (sel)
344 {
345 case 0: return REG_ENTRY_LO1;
346 }
347 break;
348 case 4:
349 switch (sel)
350 {
351 case 0: return REG_CONTEXT;
352 case 1: return REG_CONTEXT_CONFIG;
353 }
354 break;
355 case 5:
356 switch (sel)
357 {
358 case 0: return REG_PAGE_MASK;
359 case 1: return REG_PAGE_GRAIN;
360 }

Callers 2

MoveFromCoprocessorFunction · 0.85
MoveToCoprocessorFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected