isa: Add parameter to pick different decoder inside ISA
authorRekai Gonzalez Alberquilla <Rekai.GonzalezAlberquilla@arm.com>
Fri, 9 Oct 2015 19:50:54 +0000 (14:50 -0500)
committerRekai Gonzalez Alberquilla <Rekai.GonzalezAlberquilla@arm.com>
Fri, 9 Oct 2015 19:50:54 +0000 (14:50 -0500)
commitd3d159749a0a6c3b69a9181fab8db34b6ba0f7a1
tree477a11d57b4428685247f1ad4bb5863b948f9c99
parent7624fc1fb461f1dd127763521d85f63e81617d71
isa: Add parameter to pick different decoder inside ISA

The decoder is responsible for splitting instructions in micro
operations (uops). Given that different micro architectures may split
operations differently, this patch allows to specify which micro
architecture each isa implements, so different cores in the system can
split instructions differently, also decoupling uop splitting
(microArch) from ISA (Arch). This is done making the decodification
calls templates that receive a type 'DecoderFlavour' that maps the
name of the operation to the class that implements it. This way there
is only one selection point (converting the command line enum to the
appropriate DecodeFeatures object). In addition, there is no explicit
code replication: template instantiation hides that, and the compiler
should be able to resolve a number of things at compile-time.
15 files changed:
src/arch/alpha/decoder.hh
src/arch/arm/ArmISA.py
src/arch/arm/decoder.cc
src/arch/arm/decoder.hh
src/arch/arm/isa.cc
src/arch/arm/isa.hh
src/arch/arm/isa/formats/aarch64.isa
src/arch/arm/isa/formats/neon64.isa
src/arch/arm/isa/includes.isa
src/arch/arm/isa/insts/neon64.isa
src/arch/mips/decoder.hh
src/arch/power/decoder.hh
src/arch/sparc/decoder.hh
src/arch/x86/decoder.hh
src/cpu/o3/fetch_impl.hh