early-access version 1262

This commit is contained in:
pineappleEA
2020-12-30 00:04:04 +00:00
parent a5ba8b4937
commit ac593731e0
118 changed files with 8331 additions and 4646 deletions

View File

@@ -55,7 +55,7 @@ public:
bool SingleStepping() const { return single_stepping; }
bool operator == (const LocationDescriptor& o) const {
return std::tie(arm_pc, cpsr, fpscr, single_stepping) == std::tie(o.arm_pc, o.cpsr, o.fpscr, single_stepping);
return std::tie(arm_pc, cpsr, fpscr, single_stepping) == std::tie(o.arm_pc, o.cpsr, o.fpscr, o.single_stepping);
}
bool operator != (const LocationDescriptor& o) const {

View File

@@ -45,7 +45,7 @@ public:
bool SingleStepping() const { return single_stepping; }
bool operator == (const LocationDescriptor& o) const {
return std::tie(pc, fpcr, single_stepping) == std::tie(o.pc, o.fpcr, single_stepping);
return std::tie(pc, fpcr, single_stepping) == std::tie(o.pc, o.fpcr, o.single_stepping);
}
bool operator != (const LocationDescriptor& o) const {

View File

@@ -63,15 +63,12 @@ private:
*/
template<size_t N>
static auto GetArgInfo(const char* const bitstring) {
const auto one = static_cast<opcode_type>(1);
std::array<opcode_type, N> masks = {};
std::array<size_t, N> shifts = {};
size_t arg_index = 0;
char ch = 0;
for (size_t i = 0; i < opcode_bitsize; i++) {
const size_t bit_position = opcode_bitsize - i - 1;
if (bitstring[i] == '0' || bitstring[i] == '1' || bitstring[i] == '-') {
if (ch != 0) {
ch = 0;
@@ -85,9 +82,15 @@ private:
arg_index++;
}
ASSERT(arg_index < N);
masks[arg_index] |= one << bit_position;
shifts[arg_index] = bit_position;
if constexpr (N > 0) {
const size_t bit_position = opcode_bitsize - i - 1;
ASSERT(arg_index < N);
masks[arg_index] |= static_cast<opcode_type>(1) << bit_position;
shifts[arg_index] = bit_position;
} else {
ASSERT_FALSE();
}
}
}