M jasm/assemble/assembler_impl/syntax_impl.cpp +1 -1
@@ 2244,7 2244,7 @@ const SyntaxToken *Assembler::parse_stat
break;
case SyntaxTokenType::Instruction:
- assert(t->processor == _processor_type);
+ assert(is_equivalent(t->processor, _processor_type));
t = _processor->parse_instruction(*this, generate, t, export_enabled);
break;
M jasm/processor/processor.cpp +10 -0
@@ 48,6 48,16 @@ bool is_processor(const std::string_view
return false;
}
+bool is_equivalent(ProcessorType p1, ProcessorType p2)
+{
+ if (p1 == p2) {
+ return true;
+ }
+ return
+ (p1 == ProcessorType::Mos6502 || p1 == ProcessorType::Mos6510 || p1 == ProcessorType::Mos8502) &&
+ (p2 == ProcessorType::Mos6502 || p2 == ProcessorType::Mos6510 || p2 == ProcessorType::Mos8502);
+}
+
Processor::Processor()
{
}
M jasm/processor/processor.h +1 -0
@@ 32,6 32,7 @@ enum class ProcessorType : uint8_t
std::string_view to_string(ProcessorType p);
bool is_processor(const std::string_view &processor_name, ProcessorType &processor);
+bool is_equivalent(ProcessorType p1, ProcessorType p2);
struct TokenData
{