(no commit message)
authorlkcl <lkcl@web>
Fri, 14 Jun 2019 14:01:43 +0000 (15:01 +0100)
committerIkiWiki <ikiwiki.info>
Fri, 14 Jun 2019 14:01:43 +0000 (15:01 +0100)
isa_conflict_resolution/isamux_isans.mdwn

index 75943937482bc257137434d1ea7b85dd626aa745..d3f3d43c15a108fa08e56a2df73e2936949e09f7 100644 (file)
@@ -118,22 +118,17 @@ MISANS, MTRAPISANS, MLASTISANS and so on):
 <pre>
 trap_entry()
 {
-    if (ISANS != TRAP_ISANS) // musn't change if already there
-    {
-        LAST-ISANS = ISANS // record the old NS
-        ISANS = TRAP_ISANS // traps are executed in "trap" NS
-    }
+
+    LAST-ISANS = ISANS // record the old NS
+    ISANS = TRAP_ISANS // traps are executed in "trap" NS
 }
 
 and trap_exit:
 
 trap_exit():
 {
-    if (LAST-ISANS != TRAP_ISANS)
-    {
-        ISANS = LAST-ISANS
-        LAST-ISANS = TRAP_ISANS
-    }
+    ISANS = LAST-ISANS
+    LAST-ISANS = TRAP_ISANS
 }
 </pre>
 </code>
@@ -151,22 +146,16 @@ Open question: see <https://groups.google.com/a/groups.riscv.org/d/msg/isa-dev/I
 <pre>
 trap_entry(x_cause)
 {
-    if (ISANS != TRAP_ISANS[xcause]) // musn't change if already there
-    {
-        LAST-ISANS = ISANS // record the old NS
-        ISANS = TRAP_ISANS[xcause] // traps are executed in "trap" NS
-    }
+    LAST-ISANS = ISANS // record the old NS
+    ISANS = TRAP_ISANS[xcause] // traps are executed in "trap" NS
 }
 
 and trap_exit:
 
 trap_exit(x_cause):
 {
-    if (LAST-ISANS != TRAP_ISANS[x_cause])
-    {
-        ISANS = LAST-ISANS
-        LAST-ISANS = TRAP_ISANS[x_cause]
-    }
+    ISANS = LAST-ISANS
+    LAST-ISANS = TRAP_ISANS[x_cause]
 }
 </pre>
 </code>