diff options
| -rw-r--r-- | aarch64_small/aarch64_regfp.sail | 9 | ||||
| -rw-r--r-- | aarch64_small/armV8.sail | 13 |
2 files changed, 15 insertions, 7 deletions
diff --git a/aarch64_small/aarch64_regfp.sail b/aarch64_small/aarch64_regfp.sail index 884a9e81..d4a28f67 100644 --- a/aarch64_small/aarch64_regfp.sail +++ b/aarch64_small/aarch64_regfp.sail @@ -201,14 +201,17 @@ function initial_analysis (instr:ast) -> (regfps,regfps,regfps,niafps,diafp,inst (Hint(op)) => match op { SystemHintOp_YIELD => (), - SystemHintOp_WFE => { + SystemHintOp_WFE => + /* FIXME: implement events? + { if EventRegistered() then () /* ClearEventRegister */ else { /* the execute code for this case always fails because of WaitForEvent, declared as extern but not defined */ - not_implemented("Hint(SystemHintOp_WFE);") + not_implemented("Hint(SystemHintOp_WFE);") } - }, + }, */ + (), SystemHintOp_WFI => { /* the execute code for this case always fails because of InterruptPending, declared as extern but not defined */ diff --git a/aarch64_small/armV8.sail b/aarch64_small/armV8.sail index 5754b159..40a28d35 100644 --- a/aarch64_small/armV8.sail +++ b/aarch64_small/armV8.sail @@ -367,7 +367,8 @@ function clause execute ( Hint(op) ) = { SystemHintOp_YIELD => Hint_Yield(), - SystemHintOp_WFE => { + SystemHintOp_WFE => /* FIXME: implement events? + { if EventRegistered() then ClearEventRegister() else { @@ -379,7 +380,7 @@ function clause execute ( Hint(op) ) = { AArch64_CheckForWFxTrap(EL3, true); WaitForEvent(); } - }, + } */ (), SystemHintOp_WFI => { if ~(InterruptPending()) then { @@ -394,10 +395,14 @@ function clause execute ( Hint(op) ) = { }, SystemHintOp_SEV => - SendEvent(), + /* FIXME: implement events? + SendEvent() */ + (), SystemHintOp_SEVL => - EventRegisterSet(), + /* FIXME: implement events? + EventRegisterSet()*/ + (), _ => () /* do nothing */ } |
