summaryrefslogtreecommitdiff
path: root/src/gen_lib/power_extras.lem
diff options
context:
space:
mode:
authorChristopher Pulte2016-10-11 08:18:22 +0100
committerChristopher Pulte2016-10-11 08:18:22 +0100
commitfd67067a8adc95617a70152f8a896016d210d604 (patch)
treeb157095dd802cc473a57a1033fbf4870bf75177e /src/gen_lib/power_extras.lem
parent966daf663e0e5c816f5d2dad2a181e27bfcb7148 (diff)
move armv8_extras and power_extras to idl/power and idlarm, fixes
Diffstat (limited to 'src/gen_lib/power_extras.lem')
-rw-r--r--src/gen_lib/power_extras.lem47
1 files changed, 0 insertions, 47 deletions
diff --git a/src/gen_lib/power_extras.lem b/src/gen_lib/power_extras.lem
deleted file mode 100644
index c16b197f..00000000
--- a/src/gen_lib/power_extras.lem
+++ /dev/null
@@ -1,47 +0,0 @@
-open import Pervasives
-open import Sail_impl_base
-open import Vector
-open import Sail_values
-open import Prompt
-
-val MEMr : forall 'e. (vector bitU * integer) -> M 'e (vector bitU)
-val MEMr_reserve : forall 'e. (vector bitU * integer) -> M 'e (vector bitU)
-
-let MEMr (addr,size) = read_memory Read_plain addr size
-let MEMr_reserve (addr,size) = read_memory Read_reserve addr size
-
-
-val MEMw_EA : forall 'e. (vector bitU * integer) -> M 'e unit
-val MEMr_EA_cond : forall 'e. (vector bitU * integer) -> M 'e unit
-
-let MEMw_EA (addr,size) = write_memory_ea Write_plain addr size
-let MEMw_EA_cond (addr,size) = write_memory_ea Write_conditional addr size
-
-
-val MEMw : forall 'e. (vector bitU * integer * vector bitU) -> M 'e unit
-val MEMw_conditional : forall 'e. (vector bitU * integer * vector bitU) -> M 'e bitU
-
-let MEMw (_,_,value) = write_memory_val value >>= fun _ -> return ()
-let MEMw_conditional (_,_,value) = write_memory_val value >>= fun b -> return (bool_to_bit b)
-
-
-val I_Sync : forall 'e. unit -> M 'e unit
-val H_Sync : forall 'e. unit -> M 'e unit
-val LW_Sync : forall 'e. unit -> M 'e unit
-val EIEIO_Sync : forall 'e. unit -> M 'e unit
-
-let I_Sync () = barrier Isync
-let H_Sync () = barrier Sync
-let LW_Sync () = barrier LwSync
-let EIEIO_Sync () = barrier Eieio
-
-let recalculate_dependency () = footprint
-
-let trap () = exit "error"
-(* this needs to change, but for that we'd have to make the type checker know about trap
- * as an effect *)
-
-val countLeadingZeroes : vector bitU * integer -> integer
-let countLeadingZeroes (Vector bits _ _ ,n) =
- let (_,bits) = List.splitAt (natFromInteger n) bits in
- integerFromNat (List.length (takeWhile ((=) O) bits))