aboutsummaryrefslogtreecommitdiff
path: root/fesvr/syscall.cc
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/syscall.cc
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/syscall.cc')
-rw-r--r--fesvr/syscall.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/fesvr/syscall.cc b/fesvr/syscall.cc
index 6feb13b..18bdc13 100644
--- a/fesvr/syscall.cc
+++ b/fesvr/syscall.cc
@@ -299,10 +299,10 @@ reg_t syscall_t::sys_getcwd(reg_t pbuf, reg_t size, reg_t a2, reg_t a3, reg_t a4
reg_t syscall_t::sys_getmainvars(reg_t pbuf, reg_t limit, reg_t a2, reg_t a3, reg_t a4, reg_t a5, reg_t a6)
{
std::vector<std::string> args = htif->target_args();
- std::vector<uint64_t> words(args.size() + 3);
+ std::vector<target_endian<uint64_t>> words(args.size() + 3);
words[0] = htif->to_target<uint64_t>(args.size());
- words[args.size()+1] = 0; // argv[argc] = NULL
- words[args.size()+2] = 0; // envp[0] = NULL
+ words[args.size()+1] = target_endian<uint64_t>::zero; // argv[argc] = NULL
+ words[args.size()+2] = target_endian<uint64_t>::zero; // envp[0] = NULL
size_t sz = (args.size() + 3) * sizeof(words[0]);
for (size_t i = 0; i < args.size(); i++)
@@ -340,7 +340,7 @@ reg_t syscall_t::sys_chdir(reg_t path, reg_t a1, reg_t a2, reg_t a3, reg_t a4, r
void syscall_t::dispatch(reg_t mm)
{
- reg_t magicmem[8];
+ target_endian<reg_t> magicmem[8];
memif->read(mm, sizeof(magicmem), magicmem);
reg_t n = htif->from_target(magicmem[0]);