summaryrefslogtreecommitdiff
path: root/src/arch/sparc/utility.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/sparc/utility.cc')
-rw-r--r--src/arch/sparc/utility.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/arch/sparc/utility.cc b/src/arch/sparc/utility.cc
index 9a062e841..e14be48e2 100644
--- a/src/arch/sparc/utility.cc
+++ b/src/arch/sparc/utility.cc
@@ -45,7 +45,7 @@ namespace SparcISA {
//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, bool fp) {
+uint64_t getArgument(ThreadContext *tc, int &number, uint8_t size, bool fp) {
#if FULL_SYSTEM
const int NumArgumentRegs = 6;
if (number < NumArgumentRegs) {
@@ -219,6 +219,16 @@ copyRegs(ThreadContext *src, ThreadContext *dest)
}
void
+skipFunction(ThreadContext *tc)
+{
+ Addr newpc = tc->readIntReg(ReturnAddressReg);
+ tc->setPC(newpc);
+ tc->setNextPC(tc->readPC() + sizeof(TheISA::MachInst));
+ tc->setNextPC(tc->readNextPC() + sizeof(TheISA::MachInst));
+}
+
+
+void
initCPU(ThreadContext *tc, int cpuId)
{
static Fault por = new PowerOnReset();