summaryrefslogtreecommitdiff
path: root/cheri
diff options
context:
space:
mode:
Diffstat (limited to 'cheri')
-rw-r--r--cheri/cheri_insts.sail2
-rw-r--r--cheri/cheri_prelude_common.sail1
2 files changed, 3 insertions, 0 deletions
diff --git a/cheri/cheri_insts.sail b/cheri/cheri_insts.sail
index e6228217..8b5d9dd0 100644
--- a/cheri/cheri_insts.sail
+++ b/cheri/cheri_insts.sail
@@ -292,6 +292,7 @@ function clause decode (0b010010 : 0b01110 : (regno) rd : (regno) cb : (regno) c
function clause decode (0b010010 : 0b01110 : (regno) rd : (regno) cb : (regno) ct : 0b000 : 0b100) = Some(CPtrCmp(rd, cb, ct, CLTU))
function clause decode (0b010010 : 0b01110 : (regno) rd : (regno) cb : (regno) ct : 0b000 : 0b101) = Some(CPtrCmp(rd, cb, ct, CLEU))
function clause decode (0b010010 : 0b01110 : (regno) rd : (regno) cb : (regno) ct : 0b000 : 0b110) = Some(CPtrCmp(rd, cb, ct, CEXEQ))
+function clause decode (0b010010 : 0b01110 : (regno) rd : (regno) cb : (regno) ct : 0b000 : 0b111) = Some(CPtrCmp(rd, cb, ct, CNEXEQ))
function clause execute(CPtrCmp(rd, cb, ct, op)) =
{
@@ -332,6 +333,7 @@ function clause execute(CPtrCmp(rd, cb, ct, op)) =
case CLTU -> [ltu]
case CLEU -> [ltu | equal]
case CEXEQ -> [cb_val == ct_val]
+ case CNEXEQ -> [cb_val != ct_val]
})
}
(* END_CPtrCmp *)
diff --git a/cheri/cheri_prelude_common.sail b/cheri/cheri_prelude_common.sail
index 13b18ac1..dcb56d01 100644
--- a/cheri/cheri_prelude_common.sail
+++ b/cheri/cheri_prelude_common.sail
@@ -115,6 +115,7 @@ typedef CPtrCmpOp = enumerate {
CLTU;
CLEU;
CEXEQ;
+ CNEXEQ;
}
typedef ClearRegSet = enumerate {