sim: Get rid of the now unused getSyscallArg method.
authorGabe Black <gabeblack@google.com>
Sun, 8 Dec 2019 09:52:06 +0000 (01:52 -0800)
committerGabe Black <gabeblack@google.com>
Thu, 12 Mar 2020 07:21:13 +0000 (07:21 +0000)
Change-Id: I2f78420d8687da7530feb66784fe3e6d2357baf8
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23462
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Gabe Black <gabeblack@google.com>

18 files changed:
src/arch/arm/freebsd/process.hh
src/arch/arm/linux/process.hh
src/arch/arm/process.cc
src/arch/arm/process.hh
src/arch/mips/process.cc
src/arch/mips/process.hh
src/arch/power/linux/process.cc
src/arch/power/linux/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.cc
src/sim/process.hh

index 835acc5b28bb2ef3e3ce137a5de94096140e70c7..d731b69c79abee78150db30ff3f6afc2fba3d7d6 100644 (file)
@@ -97,9 +97,6 @@ class ArmFreebsdProcess32 : public ArmProcess32, public ArmFreebsdProcessBits
 
     void syscall(ThreadContext *tc, Fault *fault) override;
 
-    /// Explicitly import the otherwise hidden getSyscallArg
-    using ArmProcess::getSyscallArg;
-
     /// A page to hold "kernel" provided functions. The name might be wrong.
     static const Addr commPage;
 
index 8204f43004a2db5dd3fd1ea9ee3be580f7c03165..2edd31ef77e7a403783b373f756588eb7d3894b7 100644 (file)
@@ -97,9 +97,6 @@ class ArmLinuxProcess32 : public ArmProcess32, public ArmLinuxProcessBits
 
     void syscall(ThreadContext *tc, Fault *fault) override;
 
-    /// Explicitly import the otherwise hidden getSyscallArg
-    using ArmProcess::getSyscallArg;
-
     /// A page to hold "kernel" provided functions. The name might be wrong.
     static const Addr commPage;
 
index 7eb263dcedd23762c2582548f871a929bb6df39d..b997d6c8f8354603834ff99fdc82e929f3e884ec 100644 (file)
@@ -478,45 +478,6 @@ const std::vector<int> ArmProcess64::SyscallABI::ArgumentRegs = {
     0, 1, 2, 3, 4, 5, 6
 };
 
-RegVal
-ArmProcess32::getSyscallArg(ThreadContext *tc, int &i)
-{
-    assert(i < 6);
-    return tc->readIntReg(ArgumentReg0 + i++);
-}
-
-RegVal
-ArmProcess64::getSyscallArg(ThreadContext *tc, int &i)
-{
-    assert(i < 8);
-    return tc->readIntReg(ArgumentReg0 + i++);
-}
-
-RegVal
-ArmProcess32::getSyscallArg(ThreadContext *tc, int &i, int width)
-{
-    assert(width == 32 || width == 64);
-    if (width == 32)
-        return getSyscallArg(tc, i);
-
-    // 64 bit arguments are passed starting in an even register
-    if (i % 2 != 0)
-       i++;
-
-    // Registers r0-r6 can be used
-    assert(i < 5);
-    uint64_t val;
-    val = tc->readIntReg(ArgumentReg0 + i++);
-    val |= ((uint64_t)tc->readIntReg(ArgumentReg0 + i++) << 32);
-    return val;
-}
-
-RegVal
-ArmProcess64::getSyscallArg(ThreadContext *tc, int &i, int width)
-{
-    return getSyscallArg(tc, i);
-}
-
 void
 ArmProcess32::setSyscallReturn(ThreadContext *tc, SyscallReturn sysret)
 {
index 1650ff680ac927db41b97883471eef2fb2a84f0e..4ebe614f6a3cbb369614cb1afccd86bb18bf0d2e 100644 (file)
@@ -86,8 +86,6 @@ class ArmProcess32 : public ArmProcess
 
   public:
 
-    RegVal getSyscallArg(ThreadContext *tc, int &i, int width) override;
-    RegVal getSyscallArg(ThreadContext *tc, int &i) override;
     void setSyscallReturn(ThreadContext *tc,
             SyscallReturn return_value) override;
 
@@ -135,8 +133,6 @@ class ArmProcess64 : public ArmProcess
 
   public:
 
-    RegVal getSyscallArg(ThreadContext *tc, int &i, int width) override;
-    RegVal getSyscallArg(ThreadContext *tc, int &i) override;
     void setSyscallReturn(ThreadContext *tc,
             SyscallReturn return_value) override;
 
index 93b64ffa3fe5c3c2351772ed417019259a2a7df8..f3bb38751164838da0735d4a452d7c5355b864f3 100644 (file)
@@ -189,13 +189,6 @@ MipsProcess::argsInit(int pageSize)
 }
 
 
-RegVal
-MipsProcess::getSyscallArg(ThreadContext *tc, int &i)
-{
-    assert(i < 6);
-    return tc->readIntReg(FirstArgumentReg + i++);
-}
-
 void
 MipsProcess::setSyscallReturn(ThreadContext *tc, SyscallReturn sysret)
 {
index c1539794479537fcb280a33cfa3002df1da71ed8..124dd56fc93a3f0d096c5a603704a23361cdcd26 100644 (file)
@@ -49,9 +49,6 @@ class MipsProcess : public Process
     void argsInit(int pageSize);
 
   public:
-    RegVal getSyscallArg(ThreadContext *tc, int &i);
-    /// Explicitly import the otherwise hidden getSyscallArg
-    using Process::getSyscallArg;
     void setSyscallReturn(ThreadContext *tc, SyscallReturn return_value);
 
     struct SyscallABI : public GenericSyscallABI64
index 0653c3123a3c91786ff4fc167e08bbd4d09faa7a..3c74ac4f0ccfa746a3d973ef05cc2496eec7cc82 100644 (file)
@@ -468,12 +468,3 @@ PowerLinuxProcess::syscall(ThreadContext *tc, Fault *fault)
 {
     doSyscall(tc->readIntReg(0), tc, fault);
 }
-
-RegVal
-PowerLinuxProcess::getSyscallArg(ThreadContext *tc, int &i)
-{
-    // Linux apparently allows more parameter than the ABI says it should.
-    // This limit may need to be increased even further.
-    assert(i < 6);
-    return tc->readIntReg(ArgumentReg0 + i++);
-}
index 5ff462fc60cd10e201b17e96e9fe6daee86a5e3e..43afef8b7269c9bc58944c78cfd54b4b488210a0 100644 (file)
@@ -46,10 +46,6 @@ class PowerLinuxProcess : public PowerProcess
 
     void syscall(ThreadContext *tc, Fault *fault) override;
 
-    RegVal getSyscallArg(ThreadContext *tc, int &i) override;
-    /// Explicitly import the otherwise hidden getSyscallArg
-    using Process::getSyscallArg;
-
     /// Array of syscall descriptors, indexed by call number.
     static SyscallDescABI<SyscallABI> syscallDescs[];
 
index d74563b92e043255a10c82a0c1e5c850d8658ed0..dd161fdf3f4efacb7ad5655ca56fd0d2dfc4ff45 100644 (file)
@@ -269,13 +269,6 @@ PowerProcess::argsInit(int intSize, int pageSize)
     memState->setStackMin(roundDown(stack_min, pageSize));
 }
 
-RegVal
-PowerProcess::getSyscallArg(ThreadContext *tc, int &i)
-{
-    assert(i < 5);
-    return tc->readIntReg(ArgumentReg0 + i++);
-}
-
 void
 PowerProcess::setSyscallReturn(ThreadContext *tc, SyscallReturn sysret)
 {
index 7f6eede192e806432a2f4ad263265d8e0ba64c32..91152aadf4a5b58ef9fc900b32b393222b756a93 100644 (file)
@@ -48,9 +48,6 @@ class PowerProcess : public Process
 
   public:
     void argsInit(int intSize, int pageSize);
-    RegVal getSyscallArg(ThreadContext *tc, int &i) override;
-    /// Explicitly import the otherwise hidden getSyscallArg
-    using Process::getSyscallArg;
     void setSyscallReturn(ThreadContext *tc,
             SyscallReturn return_value) override;
 
index 9041bf3160b29a3080d491f8fa097d38f18a8644..88dbf7cd506b3eeb354be61ab7329a4f9ec2e0b1 100644 (file)
@@ -243,18 +243,6 @@ RiscvProcess::argsInit(int pageSize)
     memState->setStackMin(roundDown(memState->getStackMin(), pageSize));
 }
 
-RegVal
-RiscvProcess::getSyscallArg(ThreadContext *tc, int &i)
-{
-    // If a larger index is requested than there are syscall argument
-    // registers, return 0
-    RegVal retval = 0;
-    if (i < SyscallArgumentRegs.size())
-        retval = tc->readIntReg(SyscallArgumentRegs[i]);
-    i++;
-    return retval;
-}
-
 void
 RiscvProcess::setSyscallReturn(ThreadContext *tc, SyscallReturn sysret)
 {
index f3f8462b711146cbc068192fddd5430cc137cd6d..806a914161d75a091257410b11ce4660dc1a211f 100644 (file)
@@ -48,9 +48,6 @@ class RiscvProcess : public Process
     void argsInit(int pageSize);
 
   public:
-    RegVal getSyscallArg(ThreadContext *tc, int &i) override;
-    /// Explicitly import the otherwise hidden getSyscallArg
-    using Process::getSyscallArg;
     void setSyscallReturn(ThreadContext *tc,
                           SyscallReturn return_value) override;
 
index 0104b1a580d1a3d69f6d7aef330bc81ff64c74fa..046a053a1b6c0defd030055ad55ae728a668f870 100644 (file)
@@ -493,20 +493,6 @@ Sparc64Process::flushWindows(ThreadContext *tc)
 
 static const int FirstArgumentReg = 8;
 
-RegVal
-Sparc32Process::getSyscallArg(ThreadContext *tc, int &i)
-{
-    assert(i < 6);
-    return bits(tc->readIntReg(FirstArgumentReg + i++), 31, 0);
-}
-
-RegVal
-Sparc64Process::getSyscallArg(ThreadContext *tc, int &i)
-{
-    assert(i < 6);
-    return tc->readIntReg(FirstArgumentReg + i++);
-}
-
 void
 SparcProcess::setSyscallReturn(ThreadContext *tc, SyscallReturn sysret)
 {
index 4bd99a83447e902ff9bc1328e8bc69c1f052323c..c958e7d872fe5fb1fbe738e938d913e1318be287 100644 (file)
@@ -152,10 +152,6 @@ class Sparc32Process : public SparcProcess
 
     void flushWindows(ThreadContext *tc) override;
 
-    RegVal getSyscallArg(ThreadContext *tc, int &i) override;
-    /// Explicitly import the otherwise hidden getSyscallArg
-    using Process::getSyscallArg;
-
     struct SyscallABI : public GenericSyscallABI32,
                         public SparcProcess::SyscallABI
     {};
@@ -220,10 +216,6 @@ class Sparc64Process : public SparcProcess
 
     void flushWindows(ThreadContext *tc) override;
 
-    RegVal getSyscallArg(ThreadContext *tc, int &i) override;
-    /// Explicitly import the otherwise hidden getSyscallArg
-    using Process::getSyscallArg;
-
     struct SyscallABI : public GenericSyscallABI64,
                         public SparcProcess::SyscallABI
     {};
index 3fed1d3289259fcb382459d6ca891fef3e5b27d5..9db4eab33a942c768c732f38336812a77abc5230 100644 (file)
@@ -1047,13 +1047,6 @@ X86Process::setSyscallReturn(ThreadContext *tc, SyscallReturn retval)
     tc->setIntReg(INTREG_RAX, retval.encodedValue());
 }
 
-RegVal
-X86_64Process::getSyscallArg(ThreadContext *tc, int &i)
-{
-    assert(i < NumArgumentRegs);
-    return tc->readIntReg(ArgumentReg[i++]);
-}
-
 void
 X86_64Process::clone(ThreadContext *old_tc, ThreadContext *new_tc,
                      Process *p, RegVal flags)
@@ -1062,24 +1055,6 @@ X86_64Process::clone(ThreadContext *old_tc, ThreadContext *new_tc,
     ((X86_64Process*)p)->vsyscallPage = vsyscallPage;
 }
 
-RegVal
-I386Process::getSyscallArg(ThreadContext *tc, int &i)
-{
-    assert(i < NumArgumentRegs32);
-    return tc->readIntReg(ArgumentReg32[i++]);
-}
-
-RegVal
-I386Process::getSyscallArg(ThreadContext *tc, int &i, int width)
-{
-    assert(width == 32 || width == 64);
-    assert(i < NumArgumentRegs);
-    uint64_t retVal = tc->readIntReg(ArgumentReg32[i++]) & mask(32);
-    if (width == 64)
-        retVal |= ((uint64_t)tc->readIntReg(ArgumentReg[i++]) << 32);
-    return retVal;
-}
-
 void
 I386Process::clone(ThreadContext *old_tc, ThreadContext *new_tc,
                    Process *p, RegVal flags)
index 31187300495c2d3b0528ab660e1e664985a62534..7a9f691adb435b1dfdb4389c59363cf99e38a3e0 100644 (file)
@@ -133,9 +133,6 @@ namespace X86ISA
         void argsInit(int pageSize);
         void initState() override;
 
-        RegVal getSyscallArg(ThreadContext *tc, int &i) override;
-        /// Explicitly import the otherwise hidden getSyscallArg
-        using Process::getSyscallArg;
         void clone(ThreadContext *old_tc, ThreadContext *new_tc,
                    Process *process, RegVal flags) override;
     };
@@ -174,8 +171,6 @@ namespace X86ISA
         void argsInit(int pageSize);
         void initState() override;
 
-        RegVal getSyscallArg(ThreadContext *tc, int &i) override;
-        RegVal getSyscallArg(ThreadContext *tc, int &i, int width) override;
         void clone(ThreadContext *old_tc, ThreadContext *new_tc,
                    Process *process, RegVal flags) override;
     };
index 254583b0729666276751f4a3885a382a62e63246..709983227427c951ce5ac9e31407b302d88b037b 100644 (file)
@@ -433,12 +433,6 @@ Process::doSyscall(int64_t callnum, ThreadContext *tc, Fault *fault)
     desc->doSyscall(callnum, tc, fault);
 }
 
-RegVal
-Process::getSyscallArg(ThreadContext *tc, int &i, int width)
-{
-    return getSyscallArg(tc, i);
-}
-
 EmulatedDriver *
 Process::findDriver(std::string filename)
 {
index 72a6bba2760a388fbb3a4877017da0b8b33a8443..e40e741b9e5049a495b66ebe579eb48571fc1413 100644 (file)
@@ -74,8 +74,6 @@ class Process : public SimObject
     DrainState drain() override;
 
     virtual void syscall(ThreadContext *tc, Fault *fault) = 0;
-    virtual RegVal getSyscallArg(ThreadContext *tc, int &i) = 0;
-    virtual RegVal getSyscallArg(ThreadContext *tc, int &i, int width);
     virtual void setSyscallReturn(ThreadContext *tc,
                                   SyscallReturn return_value) = 0;
     virtual SyscallDesc *getDesc(int callnum) = 0;