diff options
Diffstat (limited to 'src/sim')
-rw-r--r-- | src/sim/arguments.cc | 4 | ||||
-rw-r--r-- | src/sim/arguments.hh | 10 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/sim/arguments.cc b/src/sim/arguments.cc index 339a57f90..511fc630d 100644 --- a/src/sim/arguments.cc +++ b/src/sim/arguments.cc @@ -50,8 +50,8 @@ Arguments::Data::alloc(size_t size) } uint64_t -Arguments::getArg(bool fp) +Arguments::getArg(uint8_t size, bool fp) { - return TheISA::getArgument(tc, number, fp); + return TheISA::getArgument(tc, number, size, fp); } diff --git a/src/sim/arguments.hh b/src/sim/arguments.hh index abc3da812..97b848e03 100644 --- a/src/sim/arguments.hh +++ b/src/sim/arguments.hh @@ -45,7 +45,7 @@ class Arguments protected: ThreadContext *tc; int number; - uint64_t getArg(bool fp = false); + uint64_t getArg(uint8_t size, bool fp = false); protected: class Data : public RefCounted @@ -82,7 +82,7 @@ class Arguments // for checking if an argument is NULL bool operator!() { - return getArg() == 0; + return getArg(TheISA::MachineBytes) == 0; } Arguments &operator++() { @@ -130,20 +130,20 @@ class Arguments template <class T> operator T() { assert(sizeof(T) <= sizeof(uint64_t)); - T data = static_cast<T>(getArg()); + T data = static_cast<T>(getArg(sizeof(T))); return data; } template <class T> operator T *() { T *buf = (T *)data->alloc(sizeof(T)); - CopyData(tc, buf, getArg(), sizeof(T)); + CopyData(tc, buf, getArg(sizeof(T)), sizeof(T)); return buf; } operator char *() { char *buf = data->alloc(2048); - CopyStringOut(tc, buf, getArg(), 2048); + CopyStringOut(tc, buf, getArg(TheISA::MachineBytes), 2048); return buf; } }; |