1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-22 12:33:29 +00:00

Reduce failures to 205/324.

This commit is contained in:
Thomas Harte 2023-09-19 13:45:19 -04:00
parent e5dfc882cb
commit 9b3199d97b
2 changed files with 22 additions and 4 deletions

View File

@ -81,10 +81,22 @@ std::string InstructionSet::x86::to_string(Operation operation, DataSize size) {
constexpr char sizes[][6] = { "cmpsb", "cmpsw", "cmpsd", "?" };
return sizes[static_cast<int>(size)];
}
case Operation::LODS: return "lods";
case Operation::MOVS: return "movs";
case Operation::SCAS: return "scas";
case Operation::STOS: return "stos";
case Operation::LODS: {
constexpr char sizes[][6] = { "lodsb", "lodsw", "lodsd", "?" };
return sizes[static_cast<int>(size)];
}
case Operation::MOVS: {
constexpr char sizes[][6] = { "movsb", "movsw", "movsd", "?" };
return sizes[static_cast<int>(size)];
}
case Operation::SCAS: {
constexpr char sizes[][6] = { "scasb", "scasw", "scasd", "?" };
return sizes[static_cast<int>(size)];
}
case Operation::STOS: {
constexpr char sizes[][6] = { "stosb", "stosw", "stosd", "?" };
return sizes[static_cast<int>(size)];
}
case Operation::LOOP: return "loop";
case Operation::LOOPE: return "loope";

View File

@ -366,6 +366,8 @@ constexpr int num_operands(Operation operation) {
case Operation::IDIV:
case Operation::RETfar:
case Operation::ESC:
case Operation::AAM: case Operation::AAD:
case Operation::INT:
return 1;
// Pedantically, these have an displacement rather than an operand.
@ -387,6 +389,10 @@ constexpr int num_operands(Operation operation) {
case Operation::STI:
case Operation::CMC:
case Operation::LAHF: case Operation::SAHF:
case Operation::AAA: case Operation::AAS:
case Operation::DAA: case Operation::DAS:
case Operation::CBW: case Operation::CWD:
case Operation::INTO:
case Operation::Invalid:
return 0;
}