summaryrefslogtreecommitdiff
path: root/aarch64_small/aarch64_regfp.sail
diff options
context:
space:
mode:
Diffstat (limited to 'aarch64_small/aarch64_regfp.sail')
-rw-r--r--aarch64_small/aarch64_regfp.sail26
1 files changed, 26 insertions, 0 deletions
diff --git a/aarch64_small/aarch64_regfp.sail b/aarch64_small/aarch64_regfp.sail
index 55f4a16b..ce155f0a 100644
--- a/aarch64_small/aarch64_regfp.sail
+++ b/aarch64_small/aarch64_regfp.sail
@@ -240,6 +240,32 @@ function initial_analysis (instr:ast) -> (regfps,regfps,regfps,niafps,diafp,inst
IK_barrier(Barrier_ISB)
};
},
+
+ (DataCache(t,dc_op)) => {
+ iR = appendL(iR,xFP(t));
+
+ ik = match dc_op {
+ IVAC => not_implemented("DC IVAC"),
+ ISW => not_implemented("DC ISW"),
+ CSW => not_implemented("DC CSW"),
+ CISW => not_implemented("DC CISW"),
+ ZVA => not_implemented("DC ZVA"),
+ CVAC => not_implemented("DC CVAC"),
+ CVAU => IK_cache_op(Cache_op_D_CVAU),
+ CIVAC => not_implemented("DC CIVAC")
+ };
+ },
+
+ (InstructionCache(t,ic_op)) => {
+ iR = appendL(iR,xFP(t));
+
+ ik = match ic_op {
+ IALLUIS => not_implemented("IC IALLUIS"),
+ IALLU => not_implemented("IC IALLU"),
+ IVAU => IK_cache_op(Cache_op_I_IVAU)
+ };
+ },
+
(System(t,sys_op0,sys_op1,sys_op2,sys_crn,sys_crm,has_result)) => {
oR = appendL(oR,xFP(t));
not_implemented("System"); /* because SysOp_R and SysOp_W */