summaryrefslogtreecommitdiff
path: root/lib/rts.c
diff options
context:
space:
mode:
authorThomas Bauereiss2019-01-29 16:55:26 +0000
committerThomas Bauereiss2019-01-29 16:58:47 +0000
commit06b4141e3a06aaf74449d062d85cffb68f566b6b (patch)
tree97cd44c6a17bb7d5bd205be6f2565941cbef9ba8 /lib/rts.c
parent1f2c21b684be664e8ffffda2fd3c8d34edaba807 (diff)
parent60164a9a221ed6566f1067100dbea2ec828b47d2 (diff)
Merge branch 'sail2' into asl_flow2
Diffstat (limited to 'lib/rts.c')
-rw-r--r--lib/rts.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/rts.c b/lib/rts.c
index bc0d4732..eacf0a70 100644
--- a/lib/rts.c
+++ b/lib/rts.c
@@ -238,6 +238,21 @@ bool write_ram(const mpz_t addr_size, // Either 32 or 64
return true;
}
+sbits fast_read_ram(const int64_t data_size,
+ const uint64_t addr)
+{
+ uint64_t r = 0;
+
+ uint64_t byte;
+ for(uint64_t i = (uint64_t) data_size; i > 0; --i) {
+ byte = read_mem(addr + (i - 1));
+ r = r << 8;
+ r = r + byte;
+ }
+ sbits res = {.len = data_size * 8, .bits = r };
+ return res;
+}
+
void read_ram(lbits *data,
const mpz_t addr_size,
const mpz_t data_size_mpz,