diff -r 46ce8ad0ccc5 -r 7733539322e0 src/arch/alpha/utility.hh --- a/src/arch/alpha/utility.hh Mon Oct 11 00:20:44 2010 -0700 +++ b/src/arch/alpha/utility.hh Wed Oct 13 01:10:42 2010 -0700 @@ -41,7 +41,7 @@ namespace AlphaISA { -uint64_t getArgument(ThreadContext *tc, int &number, uint8_t size, bool fp); +uint64_t getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp); inline bool inUserMode(ThreadContext *tc) diff -r 46ce8ad0ccc5 -r 7733539322e0 src/arch/alpha/utility.cc --- a/src/arch/alpha/utility.cc Mon Oct 11 00:20:44 2010 -0700 +++ b/src/arch/alpha/utility.cc Wed Oct 13 01:10:42 2010 -0700 @@ -40,7 +40,7 @@ namespace AlphaISA { uint64_t -getArgument(ThreadContext *tc, int &number, uint8_t size, bool fp) +getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp) { #if FULL_SYSTEM const int NumArgumentRegs = 6; diff -r 46ce8ad0ccc5 -r 7733539322e0 src/arch/arm/utility.hh --- a/src/arch/arm/utility.hh Mon Oct 11 00:20:44 2010 -0700 +++ b/src/arch/arm/utility.hh Wed Oct 13 01:10:42 2010 -0700 @@ -156,7 +156,7 @@ return !cpacr.asedis && vfpEnabled(cpacr, cpsr, fpexc); } -uint64_t getArgument(ThreadContext *tc, int &number, uint8_t size, bool fp); +uint64_t getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp); Fault setCp15Register(uint32_t &Rd, int CRn, int opc1, int CRm, int opc2); Fault readCp15Register(uint32_t &Rd, int CRn, int opc1, int CRm, int opc2); diff -r 46ce8ad0ccc5 -r 7733539322e0 src/arch/arm/utility.cc --- a/src/arch/arm/utility.cc Mon Oct 11 00:20:44 2010 -0700 +++ b/src/arch/arm/utility.cc Wed Oct 13 01:10:42 2010 -0700 @@ -39,6 +39,7 @@ #include "arch/arm/faults.hh" +#include "arch/arm/isa_traits.hh" #include "arch/arm/utility.hh" #include "cpu/thread_context.hh" @@ -61,8 +62,12 @@ reset->invoke(tc); } -uint64_t getArgument(ThreadContext *tc, int &number, uint8_t size, bool fp) { +uint64_t +getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp) +{ #if FULL_SYSTEM + if (size == (uint16_t)(-1)) + size = ArmISA::MachineBytes; if (fp) panic("getArgument(): Floating point arguments not implemented\n"); diff -r 46ce8ad0ccc5 -r 7733539322e0 src/arch/mips/utility.hh --- a/src/arch/mips/utility.hh Mon Oct 11 00:20:44 2010 -0700 +++ b/src/arch/mips/utility.hh Wed Oct 13 01:10:42 2010 -0700 @@ -45,7 +45,7 @@ namespace MipsISA { -uint64_t getArgument(ThreadContext *tc, int &number, uint8_t size, bool fp); +uint64_t getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp); //////////////////////////////////////////////////////////////////////// // diff -r 46ce8ad0ccc5 -r 7733539322e0 src/arch/mips/utility.cc --- a/src/arch/mips/utility.cc Mon Oct 11 00:20:44 2010 -0700 +++ b/src/arch/mips/utility.cc Wed Oct 13 01:10:42 2010 -0700 @@ -52,7 +52,7 @@ namespace MipsISA { uint64_t -getArgument(ThreadContext *tc, int &number, uint8_t size, bool fp) +getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp) { #if FULL_SYSTEM if (number < 4) { diff -r 46ce8ad0ccc5 -r 7733539322e0 src/arch/sparc/utility.hh --- a/src/arch/sparc/utility.hh Mon Oct 11 00:20:44 2010 -0700 +++ b/src/arch/sparc/utility.hh Wed Oct 13 01:10:42 2010 -0700 @@ -41,7 +41,8 @@ namespace SparcISA { - uint64_t getArgument(ThreadContext *tc, int &number, uint8_t size, bool fp); + uint64_t + getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp); static inline bool inUserMode(ThreadContext *tc) diff -r 46ce8ad0ccc5 -r 7733539322e0 src/arch/sparc/utility.cc --- a/src/arch/sparc/utility.cc Mon Oct 11 00:20:44 2010 -0700 +++ b/src/arch/sparc/utility.cc Wed Oct 13 01:10:42 2010 -0700 @@ -45,7 +45,9 @@ //the sixth are passed on the stack past the 16 word window save area, //space for the struct/union return pointer, and space reserved for the //first 6 arguments which the caller may use but doesn't have to. -uint64_t getArgument(ThreadContext *tc, int &number, uint8_t size, bool fp) { +uint64_t +getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp) +{ #if FULL_SYSTEM const int NumArgumentRegs = 6; if (number < NumArgumentRegs) { diff -r 46ce8ad0ccc5 -r 7733539322e0 src/arch/x86/utility.hh --- a/src/arch/x86/utility.hh Mon Oct 11 00:20:44 2010 -0700 +++ b/src/arch/x86/utility.hh Wed Oct 13 01:10:42 2010 -0700 @@ -52,7 +52,8 @@ namespace X86ISA { - uint64_t getArgument(ThreadContext *tc, int &number, uint8_t size, bool fp); + uint64_t + getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp); static inline bool inUserMode(ThreadContext *tc) diff -r 46ce8ad0ccc5 -r 7733539322e0 src/arch/x86/utility.cc --- a/src/arch/x86/utility.cc Mon Oct 11 00:20:44 2010 -0700 +++ b/src/arch/x86/utility.cc Wed Oct 13 01:10:42 2010 -0700 @@ -52,7 +52,9 @@ namespace X86ISA { -uint64_t getArgument(ThreadContext *tc, int &number, uint8_t size, bool fp) { +uint64_t +getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp) +{ #if FULL_SYSTEM panic("getArgument() not implemented for x86!\n"); #else diff -r 46ce8ad0ccc5 -r 7733539322e0 src/sim/arguments.hh --- a/src/sim/arguments.hh Mon Oct 11 00:20:44 2010 -0700 +++ b/src/sim/arguments.hh Wed Oct 13 01:10:42 2010 -0700 @@ -45,7 +45,7 @@ protected: ThreadContext *tc; int number; - uint64_t getArg(uint8_t size, bool fp = false); + uint64_t getArg(uint16_t size = (uint16_t)(-1), bool fp = false); protected: class Data : public RefCounted @@ -82,7 +82,7 @@ // for checking if an argument is NULL bool operator!() { - return getArg(TheISA::MachineBytes) == 0; + return getArg() == 0; } Arguments &operator++() { @@ -143,7 +143,7 @@ operator char *() { char *buf = data->alloc(2048); - CopyStringOut(tc, buf, getArg(TheISA::MachineBytes), 2048); + CopyStringOut(tc, buf, getArg(), 2048); return buf; } }; diff -r 46ce8ad0ccc5 -r 7733539322e0 src/sim/arguments.cc --- a/src/sim/arguments.cc Mon Oct 11 00:20:44 2010 -0700 +++ b/src/sim/arguments.cc Wed Oct 13 01:10:42 2010 -0700 @@ -50,7 +50,7 @@ } uint64_t -Arguments::getArg(uint8_t size, bool fp) +Arguments::getArg(uint16_t size, bool fp) { return TheISA::getArgument(tc, number, size, fp); }