MCPcopy Create free account
hub / github.com/devosoft/avida / FindModifiedNextRegister

Method FindModifiedNextRegister

avida-core/source/cpu/cHardwareGP8.cc:1243–1260  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1241}
1242
1243inline int cHardwareGP8::FindModifiedNextRegister(int default_register, bool accept_immediate)
1244{
1245 assert(default_register < NUM_REGISTERS); // Reg ID too high.
1246
1247 Instruction inst = getIP().NextInst();
1248 if (m_inst_set->IsNop(inst)) {
1249 getIP().Advance();
1250 default_register = m_inst_set->GetNopMod(inst);
1251 getIP().SetFlagExecuted();
1252 } else if (accept_immediate && m_inst_set->IsImmediateValue(inst)) {
1253 getIP().Advance();
1254 default_register = m_inst_set->GetLibFunctionIndex(inst);
1255 getIP().SetFlagExecuted();
1256 } else {
1257 default_register = (default_register + 1) % NUM_REGISTERS;
1258 }
1259 return default_register;
1260}
1261
1262inline int cHardwareGP8::FindModifiedPreviousRegister(int default_register, bool accept_immediate)
1263{

Callers

nothing calls this directly

Calls 7

GetLibFunctionIndexMethod · 0.80
NextInstMethod · 0.45
IsNopMethod · 0.45
AdvanceMethod · 0.45
GetNopModMethod · 0.45
SetFlagExecutedMethod · 0.45
IsImmediateValueMethod · 0.45

Tested by

no test coverage detected