diff options
author | Marcus Comstedt <marcus@mc.pp.se> | 2020-10-17 13:40:01 +0200 |
---|---|---|
committer | Marcus Comstedt <marcus@mc.pp.se> | 2020-11-07 15:34:19 +0100 |
commit | 8e3bcb2eef7f195a9cd61f5b79c1e67a0c3c28ff (patch) | |
tree | 191a89f0adab760eddfd0cf4a3e6ee11fbfd1b0f /fesvr/htif.h | |
parent | ec2fd09fdbb7b7b490cacdc3818ca237f9f28593 (diff) | |
download | spike-8e3bcb2eef7f195a9cd61f5b79c1e67a0c3c28ff.zip spike-8e3bcb2eef7f195a9cd61f5b79c1e67a0c3c28ff.tar.gz spike-8e3bcb2eef7f195a9cd61f5b79c1e67a0c3c28ff.tar.bz2 |
Tag target endian values to help guide conversion code
Diffstat (limited to 'fesvr/htif.h')
-rw-r--r-- | fesvr/htif.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fesvr/htif.h b/fesvr/htif.h index 66a626d..3cee25f 100644 --- a/fesvr/htif.h +++ b/fesvr/htif.h @@ -29,27 +29,27 @@ class htif_t : public chunked_memif_t virtual memif_t& memif() { return mem; } - template<typename T> inline T from_target(T n) const + template<typename T> inline T from_target(target_endian<T> n) const { #ifdef RISCV_ENABLE_DUAL_ENDIAN memif_endianness_t endianness = get_target_endianness(); assert(endianness == memif_endianness_little || endianness == memif_endianness_big); - return endianness == memif_endianness_big? from_be(n) : from_le(n); + return endianness == memif_endianness_big? n.from_be() : n.from_le(); #else - return from_le(n); + return n.from_le(); #endif } - template<typename T> inline T to_target(T n) const + template<typename T> inline target_endian<T> to_target(T n) const { #ifdef RISCV_ENABLE_DUAL_ENDIAN memif_endianness_t endianness = get_target_endianness(); assert(endianness == memif_endianness_little || endianness == memif_endianness_big); - return endianness == memif_endianness_big? to_be(n) : to_le(n); + return endianness == memif_endianness_big? target_endian<T>::to_be(n) : target_endian<T>::to_le(n); #else - return to_le(n); + return target_endian<T>::to_le(n); #endif } |