diff options
| author | Alastair Reid | 2018-07-03 14:00:22 +0100 |
|---|---|---|
| committer | Alastair Reid | 2018-07-03 14:00:42 +0100 |
| commit | 9502f9ffabc5ec8f423974bd89da3d9810e4df80 (patch) | |
| tree | 161350068fd8983639abd88ca953e0e6f5abbe15 | |
| parent | 4f986dfa677652e0fa984e356e22c392ea945934 (diff) | |
Main: fix SEE handling
If a SEE exception is not caught within the decoder, it is
an error in the Sail implementation or in the instruction set spec.
This change ensures that we promptly detect and unambiguously report
such errors.
| -rw-r--r-- | aarch64/elfmain.sail | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/aarch64/elfmain.sail b/aarch64/elfmain.sail index bccbbda5..44b6c14a 100644 --- a/aarch64/elfmain.sail +++ b/aarch64/elfmain.sail @@ -107,7 +107,12 @@ function Step_CPU() = { } catch { // note: if supporting AArch32 as well, call _UndefinedFault() instead Error_Undefined() => try { AArch64_UndefinedFault() } catch { _ => print("Exception during Undefined recovery\n") }, - Error_See(_) => try { AArch64_UndefinedFault() } catch { _ => print("Exception during SEE recovery\n") }, + Error_See(_) => { + print(concat_str("BROKEN: SEE support ", + concat_str(HexStr(UInt(__currentInstr)), + "\n"))); + exit() + }, Error_ReservedEncoding(_) => try { AArch64_UndefinedFault() } catch { _ => print("Exception during ReservedEncoding recovery\n") }, Error_ExceptionTaken() => { print(concat_str("ExceptionTaken during Decode/Execute from PC=", |
