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/syscall.cc | |
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/syscall.cc')
-rw-r--r-- | fesvr/syscall.cc | 8 |
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]); |