diff options
Diffstat (limited to 'src/arch/arm/faults.cc')
-rw-r--r-- | src/arch/arm/faults.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/arch/arm/faults.cc b/src/arch/arm/faults.cc index 2f939ea8c..9e32a23a3 100644 --- a/src/arch/arm/faults.cc +++ b/src/arch/arm/faults.cc @@ -142,6 +142,24 @@ ArmFaultBase::invoke(ThreadContext *tc) tc->setPC(newPc); tc->setNextPC(newPc + cpsr.t ? 2 : 4 ); } + +#else + +void +UndefinedInstruction::invoke(ThreadContext *tc) +{ + assert(unknown || mnemonic != NULL); + if (unknown) { + panic("Attempted to execute unknown instruction " + "(inst 0x%08x, opcode 0x%x, binary:%s)", + machInst, machInst.opcode, inst2string(machInst)); + } else { + panic("Attempted to execute unimplemented instruction '%s' " + "(inst 0x%08x, opcode 0x%x, binary:%s)", + mnemonic, machInst, machInst.opcode, inst2string(machInst)); + } +} + #endif // FULL_SYSTEM // return via SUBS pc, lr, xxx; rfe, movs, ldm |