ARM: Rework how unrecognized/unimplemented instructions are handled.
authorGabe Black <gblack@eecs.umich.edu>
Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)
commit89060f1fd80b032c92cf4f38c8459901c4f7a898
treeab49cd165a37999c8b4e2c5d80ab8a5059718b6d
parentaa45fafb2e3667f907a2dcc491c57b9e83f8e940
ARM: Rework how unrecognized/unimplemented instructions are handled.

Instead of panic immediately when these instructions are executed, an
UndefinedInstruction fault is returned. In FS mode (not currently
implemented), this is the fault that should, to my knowledge, be triggered in
these situations and should be handled using the normal architected
mechanisms. In SE mode, the fault causes a panic when it's invoked that gives
the same information as the instruction did. When/if support for speculative
execution of ARM is supported, this will allow a mispeculated and unrecognized
and/or unimplemented instruction from causing a panic. Only once the
instruction is going to be committed will the fault be invoked, triggering the
panic.
src/arch/arm/faults.cc
src/arch/arm/faults.hh
src/arch/arm/insts/static_inst.hh
src/arch/arm/isa/formats/unimp.isa
src/arch/arm/isa/formats/unknown.isa
src/arch/arm/utility.hh