Moving instruction set data (instructions, pseudo-instructions, and relocations) to virtual functions in ISAInfoBase that are then filled out by individual ISAInfo templates (ex: ISAInfo<ISA::RV32I>).
Replaced ISA-specific assemblers (ex: RV32I_Assembler) with a single template class ISA_Assembler (ex: ISA_Assembler<ISA::RV32I>).
Also added an ISAInfoBase cache in the class ISAInfoRegistry. This can be utilized to reduce the number of instruction set instantiations.
Also helpful towards #297 (allows ISAs to be queried easily) and #307 (closer to separating libraries).
Completes #303 by:
ISAInfoBase
that are then filled out by individualISAInfo
templates (ex:ISAInfo<ISA::RV32I>
).RV32I_Assembler
) with a single template classISA_Assembler
(ex:ISA_Assembler<ISA::RV32I>
).Also added an
ISAInfoBase
cache in the classISAInfoRegistry
. This can be utilized to reduce the number of instruction set instantiations.Also helpful towards #297 (allows ISAs to be queried easily) and #307 (closer to separating libraries).