summaryrefslogtreecommitdiff
path: root/src/sim
diff options
context:
space:
mode:
Diffstat (limited to 'src/sim')
-rw-r--r--src/sim/arguments.cc4
-rw-r--r--src/sim/arguments.hh10
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;
}
};