aboutsummaryrefslogtreecommitdiff
path: root/fesvr/htif.h
diff options
context:
space:
mode:
authorMarcus Comstedt <marcus@mc.pp.se>2020-10-17 13:40:01 +0200
committerMarcus Comstedt <marcus@mc.pp.se>2020-11-07 15:34:19 +0100
commit8e3bcb2eef7f195a9cd61f5b79c1e67a0c3c28ff (patch)
tree191a89f0adab760eddfd0cf4a3e6ee11fbfd1b0f /fesvr/htif.h
parentec2fd09fdbb7b7b490cacdc3818ca237f9f28593 (diff)
downloadspike-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.h12
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
}