bool CThumbInstruction::Load(char *Name, char *Params) { bool paramfail = false; NoCheckError = false; for (int z = 0; ThumbOpcodes[z].name != NULL; z++) { if (strcmp(Name,ThumbOpcodes[z].name) == 0) { if (LoadEncoding(ThumbOpcodes[z],Params) == true) { Loaded = true; return true; } paramfail = true; } } if (NoCheckError == false) { if (paramfail == true) { Logger::printError(Logger::Error,L"THUMB parameter failure \"%S\"",Params); } else { Logger::printError(Logger::Error,L"Invalid THUMB opcode \"%S\"",Name); } } return false; }
bool CMipsInstruction::Load(char* Name, char* Params) { bool paramfail = false; NoCheckError = false; for (int z = 0; MipsOpcodes[z].name != NULL; z++) { if (MipsOpcodes[z].ver & Mips.GetVersion()) { if (parseOpcode(MipsOpcodes[z],Name) == true) { if (LoadEncoding(MipsOpcodes[z],Params) == true) { Loaded = true; return true; } paramfail = true; } } } if (NoCheckError == false) { if (paramfail == true) { Logger::printError(Logger::Error,L"MIPS parameter failure \"%S\"",Params); } else { Logger::printError(Logger::Error,L"Invalid MIPS opcode \"%S\"",Name); } } return false; }
bool CMipsInstruction::Load(char* Name, char* Params, int RamPos) { bool paramfail = false; NoCheckError = false; this->RamPos = RamPos; for (int z = 0; MipsOpcodes[z].name != NULL; z++) { if (strcmp(Name,MipsOpcodes[z].name) == 0) { if (LoadEncoding(MipsOpcodes[z],Params) == true) { Loaded = true; return true; } paramfail = true; } } if (NoCheckError == false) { if (paramfail == true) { SetAssembleError("Parameter failure \"%s\"",Params); } else { SetAssembleError("Invalid opcode \"%s\"",Name); } } return false; }
bool CArmInstruction::Load(char *Name, char *Params) { bool paramfail = false; NoCheckError = false; for (int z = 0; ArmOpcodes[z].name != NULL; z++) { if ((ArmOpcodes[z].flags & ARM_ARM9) && !Arm.isArm9()) continue; if (ParseOpcode((char*)ArmOpcodes[z].name,Name) == true) { if (LoadEncoding(ArmOpcodes[z],Params) == true) { Loaded = true; return true; } paramfail = true; } } if (NoCheckError == false) { if (paramfail == true) { Logger::printError(Logger::Error,L"ARM parameter failure \"%S\"",Params); } else { Logger::printError(Logger::Error,L"Invalid ARM opcode \"%S\"",Name); } } return false; }
bool CMipsInstruction::Load(const char* Name, const char* Params, int RamPos) { bool paramfail = false; NoCheckError = false; this->RamPos = RamPos; const MipsArchDefinition& arch = mipsArchs[MARCH_PS2]; for (int z = 0; MipsOpcodes[z].name != NULL; z++) { if ((MipsOpcodes[z].archs & arch.supportSets) == 0) continue; if ((MipsOpcodes[z].archs & arch.excludeMask) != 0) continue; if ((MipsOpcodes[z].flags & MO_64BIT) && !(arch.flags & MO_64BIT)) continue; if ((MipsOpcodes[z].flags & MO_FPU) && !(arch.flags & MO_FPU)) continue; if (parseOpcode(MipsOpcodes[z],Name) == true) { if (LoadEncoding(MipsOpcodes[z],Params) == true) { Loaded = true; return true; } paramfail = true; } } if (NoCheckError == false) { if (paramfail == true) { error = "Parameter failure."; } else { error = "Invalid opcode."; } } return false; }
bool CMipsInstruction::Load(const char* Name, const char* Params) { bool paramfail = false; NoCheckError = false; const MipsArchDefinition& arch = mipsArchs[Mips.GetVersion()]; for (int z = 0; MipsOpcodes[z].name != NULL; z++) { if ((MipsOpcodes[z].archs & arch.supportSets) == 0) continue; if ((MipsOpcodes[z].archs & arch.excludeMask) != 0) continue; if ((MipsOpcodes[z].flags & MO_64BIT) && !(arch.flags & MO_64BIT)) continue; if ((MipsOpcodes[z].flags & MO_FPU) && !(arch.flags & MO_FPU)) continue; if (parseOpcode(MipsOpcodes[z],Name) == true) { if (LoadEncoding(MipsOpcodes[z],Params) == true) { Loaded = true; return true; } paramfail = true; } } if (NoCheckError == false) { if (paramfail == true) { Logger::printError(Logger::Error,L"MIPS parameter failure \"%S\"",Params); } else { Logger::printError(Logger::Error,L"Invalid MIPS %S opcode \"%S\"",arch.name,Name); } } return false; }