arch,sim: Get rid of the now unused setSyscallReturn method.
authorGabe Black <gabeblack@google.com>
Tue, 10 Dec 2019 00:59:01 +0000 (16:59 -0800)
committerGabe Black <gabeblack@google.com>
Thu, 12 Mar 2020 07:21:13 +0000 (07:21 +0000)
Change-Id: I61741ab2eca4c77a2c8884e2b5c328479e2b3c90
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23505
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Gabe Black <gabeblack@google.com>

13 files changed:
src/arch/arm/process.cc
src/arch/arm/process.hh
src/arch/mips/process.cc
src/arch/mips/process.hh
src/arch/power/process.cc
src/arch/power/process.hh
src/arch/riscv/process.cc
src/arch/riscv/process.hh
src/arch/sparc/process.cc
src/arch/sparc/process.hh
src/arch/x86/process.cc
src/arch/x86/process.hh
src/sim/process.hh

index b997d6c8f8354603834ff99fdc82e929f3e884ec..9cfa43127c94ae0e00d1c0aca84d8dfa47bd6f4e 100644 (file)
@@ -477,41 +477,3 @@ const std::vector<int> ArmProcess32::SyscallABI::ArgumentRegs = {
 const std::vector<int> ArmProcess64::SyscallABI::ArgumentRegs = {
     0, 1, 2, 3, 4, 5, 6
 };
-
-void
-ArmProcess32::setSyscallReturn(ThreadContext *tc, SyscallReturn sysret)
-{
-
-    if (objFile->getOpSys() == ObjectFile::FreeBSD) {
-        // Decode return value
-        if (sysret.encodedValue() >= 0)
-            // FreeBSD checks the carry bit to determine if syscall is succeeded
-            tc->setCCReg(CCREG_C, 0);
-        else {
-            sysret = -sysret.encodedValue();
-        }
-    }
-
-    tc->setIntReg(ReturnValueReg, sysret.encodedValue());
-    if (sysret.count() > 1)
-        tc->setIntReg(SyscallPseudoReturnReg, sysret.value2());
-}
-
-void
-ArmProcess64::setSyscallReturn(ThreadContext *tc, SyscallReturn sysret)
-{
-
-    if (objFile->getOpSys() == ObjectFile::FreeBSD) {
-        // Decode return value
-        if (sysret.encodedValue() >= 0)
-            // FreeBSD checks the carry bit to determine if syscall is succeeded
-            tc->setCCReg(CCREG_C, 0);
-        else {
-            sysret = -sysret.encodedValue();
-        }
-    }
-
-    tc->setIntReg(ReturnValueReg, sysret.encodedValue());
-    if (sysret.count() > 1)
-        tc->setIntReg(SyscallPseudoReturnReg, sysret.value2());
-}
index 4ebe614f6a3cbb369614cb1afccd86bb18bf0d2e..08100fcd46c75233b019b0e5b7372bfa91ce0ed6 100644 (file)
@@ -85,10 +85,6 @@ class ArmProcess32 : public ArmProcess
     uint32_t armHwcapImpl() const override;
 
   public:
-
-    void setSyscallReturn(ThreadContext *tc,
-            SyscallReturn return_value) override;
-
     struct SyscallABI : public GenericSyscallABI32
     {
         static const std::vector<int> ArgumentRegs;
@@ -132,10 +128,6 @@ class ArmProcess64 : public ArmProcess
     uint32_t armHwcapImpl() const override;
 
   public:
-
-    void setSyscallReturn(ThreadContext *tc,
-            SyscallReturn return_value) override;
-
     struct SyscallABI : public GenericSyscallABI64
     {
         static const std::vector<int> ArgumentRegs;
index f3bb38751164838da0735d4a452d7c5355b864f3..afeef8bd15419b640d0012329ce5d633d6dfe041 100644 (file)
@@ -188,23 +188,6 @@ MipsProcess::argsInit(int pageSize)
     tc->pcState(getStartPC());
 }
 
-
-void
-MipsProcess::setSyscallReturn(ThreadContext *tc, SyscallReturn sysret)
-{
-    if (sysret.successful()) {
-        // no error
-        tc->setIntReg(SyscallSuccessReg, 0);
-        tc->setIntReg(ReturnValueReg, sysret.returnValue());
-    } else {
-        // got an error, return details
-        tc->setIntReg(SyscallSuccessReg, (uint32_t)(-1));
-        tc->setIntReg(ReturnValueReg, sysret.errnoValue());
-    }
-    if (sysret.count() > 1)
-        tc->setIntReg(SyscallPseudoReturnReg, sysret.value2());
-}
-
 const std::vector<int> MipsProcess::SyscallABI::ArgumentRegs = {
     4, 5, 6, 7, 8, 9
 };
index 124dd56fc93a3f0d096c5a603704a23361cdcd26..d7b233fe1b127a84d144cb803c75c83ada560389 100644 (file)
@@ -49,8 +49,6 @@ class MipsProcess : public Process
     void argsInit(int pageSize);
 
   public:
-    void setSyscallReturn(ThreadContext *tc, SyscallReturn return_value);
-
     struct SyscallABI : public GenericSyscallABI64
     {
         static const std::vector<int> ArgumentRegs;
index dd161fdf3f4efacb7ad5655ca56fd0d2dfc4ff45..3af8788ed4e5496ea324e66d4a788a4639b5e733 100644 (file)
@@ -269,19 +269,6 @@ PowerProcess::argsInit(int intSize, int pageSize)
     memState->setStackMin(roundDown(stack_min, pageSize));
 }
 
-void
-PowerProcess::setSyscallReturn(ThreadContext *tc, SyscallReturn sysret)
-{
-    Cr cr = tc->readIntReg(INTREG_CR);
-    if (sysret.successful()) {
-        cr.cr0.so = 0;
-    } else {
-        cr.cr0.so = 1;
-    }
-    tc->setIntReg(INTREG_CR, cr);
-    tc->setIntReg(ReturnValueReg, sysret.encodedValue());
-}
-
 const std::vector<int> PowerProcess::SyscallABI::ArgumentRegs = {
     3, 4, 5, 6, 7, 8
 };
index 91152aadf4a5b58ef9fc900b32b393222b756a93..cd973931b2644711c206505870fe93402b20b9d1 100644 (file)
@@ -48,8 +48,6 @@ class PowerProcess : public Process
 
   public:
     void argsInit(int intSize, int pageSize);
-    void setSyscallReturn(ThreadContext *tc,
-            SyscallReturn return_value) override;
 
     struct SyscallABI : public GenericSyscallABI64
     {
index 88dbf7cd506b3eeb354be61ab7329a4f9ec2e0b1..360ff11b6775fa458d8dedc1229a371e2987330d 100644 (file)
@@ -243,18 +243,6 @@ RiscvProcess::argsInit(int pageSize)
     memState->setStackMin(roundDown(memState->getStackMin(), pageSize));
 }
 
-void
-RiscvProcess::setSyscallReturn(ThreadContext *tc, SyscallReturn sysret)
-{
-    if (sysret.successful()) {
-        // no error
-        tc->setIntReg(SyscallPseudoReturnReg, sysret.returnValue());
-    } else {
-        // got an error, return details
-        tc->setIntReg(SyscallPseudoReturnReg, sysret.encodedValue());
-    }
-}
-
 const std::vector<int> RiscvProcess::SyscallABI::ArgumentRegs = {
     10, 11, 12, 13, 14, 15, 16
 };
index 806a914161d75a091257410b11ce4660dc1a211f..b256962d3a8c40d4c7a128758f53420c6f69b9de 100644 (file)
@@ -48,9 +48,6 @@ class RiscvProcess : public Process
     void argsInit(int pageSize);
 
   public:
-    void setSyscallReturn(ThreadContext *tc,
-                          SyscallReturn return_value) override;
-
     virtual bool mmapGrowsDown() const override { return false; }
 
     //FIXME RISCV needs to handle 64 bit arguments in its 32 bit ISA.
index 046a053a1b6c0defd030055ad55ae728a668f870..f2d1de2e741d13c98da34af90c2166f679629e78 100644 (file)
@@ -490,29 +490,3 @@ Sparc64Process::flushWindows(ThreadContext *tc)
     tc->setIntReg(INTREG_CANRESTORE, Canrestore);
     tc->setMiscReg(MISCREG_CWP, origCWP);
 }
-
-static const int FirstArgumentReg = 8;
-
-void
-SparcProcess::setSyscallReturn(ThreadContext *tc, SyscallReturn sysret)
-{
-    // check for error condition.  SPARC syscall convention is to
-    // indicate success/failure in reg the carry bit of the ccr
-    // and put the return value itself in the standard return value reg.
-    PSTATE pstate = tc->readMiscRegNoEffect(MISCREG_PSTATE);
-    CCR ccr = tc->readIntReg(INTREG_CCR);
-    RegVal val;
-    if (sysret.successful()) {
-        ccr.xcc.c = ccr.icc.c = 0;
-        val = sysret.returnValue();
-    } else {
-        ccr.xcc.c = ccr.icc.c = 1;
-        val = sysret.errnoValue();
-    }
-    tc->setIntReg(INTREG_CCR, ccr);
-    if (pstate.am)
-        val = bits(val, 31, 0);
-    tc->setIntReg(ReturnValueReg, val);
-    if (sysret.count() > 1)
-        tc->setIntReg(SyscallPseudoReturnReg, sysret.value2());
-}
index c958e7d872fe5fb1fbe738e938d913e1318be287..79e3e41fb3610eb2b2a3b89b7d8ff4ada68889db 100644 (file)
@@ -67,8 +67,6 @@ class SparcProcess : public Process
     Addr readSpillStart() { return spillStart; }
 
     virtual void flushWindows(ThreadContext *tc) = 0;
-    void setSyscallReturn(ThreadContext *tc,
-            SyscallReturn return_value) override;
 
     struct SyscallABI
     {
index 9db4eab33a942c768c732f38336812a77abc5230..04c9db9b9c60e577312f36c462bca2e0d3b683b9 100644 (file)
@@ -1041,12 +1041,6 @@ I386Process::argsInit(int pageSize)
     X86Process::argsInit<uint32_t>(pageSize, extraAuxvs);
 }
 
-void
-X86Process::setSyscallReturn(ThreadContext *tc, SyscallReturn retval)
-{
-    tc->setIntReg(INTREG_RAX, retval.encodedValue());
-}
-
 void
 X86_64Process::clone(ThreadContext *old_tc, ThreadContext *new_tc,
                      Process *p, RegVal flags)
index 7a9f691adb435b1dfdb4389c59363cf99e38a3e0..3d39241550c73c6bdf34f418cc52d36e5fff6273 100644 (file)
@@ -80,8 +80,6 @@ namespace X86ISA
 
         SyscallDesc* getDesc(int callnum) override;
 
-        void setSyscallReturn(ThreadContext *tc,
-                              SyscallReturn return_value) override;
         void clone(ThreadContext *old_tc, ThreadContext *new_tc,
                    Process *process, RegVal flags) override;
 
index e40e741b9e5049a495b66ebe579eb48571fc1413..35be983b00097b4ee0724a49aa717aa2493f3867 100644 (file)
@@ -74,8 +74,6 @@ class Process : public SimObject
     DrainState drain() override;
 
     virtual void syscall(ThreadContext *tc, Fault *fault) = 0;
-    virtual void setSyscallReturn(ThreadContext *tc,
-                                  SyscallReturn return_value) = 0;
     virtual SyscallDesc *getDesc(int callnum) = 0;
 
     inline uint64_t uid() { return _uid; }