sim, x86: Make clone a virtual function

This fixes the function call to clone in syscall_emul.hh where
the x86 version should be called before the base implementation
of clone.

Change-Id: Iccd2f680ff6e3a5536037d688a80ab3f236bbd98
Signed-off-by: Sean Wilson <spwilson2@wisc.edu>
Reviewed-on: https://gem5-review.googlesource.com/3902
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
Sean Wilson
2017-06-28 14:21:29 -05:00
parent c305e15004
commit 352c1ad714
2 changed files with 5 additions and 5 deletions

View File

@@ -84,7 +84,7 @@ namespace X86ISA
void setSyscallReturn(ThreadContext *tc,
SyscallReturn return_value) override;
void clone(ThreadContext *old_tc, ThreadContext *new_tc,
Process *process, TheISA::IntReg flags);
Process *process, TheISA::IntReg flags) override;
X86Process &
operator=(const X86Process &in)
@@ -140,7 +140,7 @@ namespace X86ISA
void setSyscallArg(ThreadContext *tc, int i,
X86ISA::IntReg val) override;
void clone(ThreadContext *old_tc, ThreadContext *new_tc,
Process *process, TheISA::IntReg flags);
Process *process, TheISA::IntReg flags) override;
};
class I386Process : public X86Process
@@ -186,7 +186,7 @@ namespace X86ISA
void setSyscallArg(ThreadContext *tc, int i,
X86ISA::IntReg val) override;
void clone(ThreadContext *old_tc, ThreadContext *new_tc,
Process *process, TheISA::IntReg flags);
Process *process, TheISA::IntReg flags) override;
};
/**

View File

@@ -161,8 +161,8 @@ class Process : public SimObject
void replicatePage(Addr vaddr, Addr new_paddr, ThreadContext *old_tc,
ThreadContext *new_tc, bool alloc_page);
void clone(ThreadContext *old_tc, ThreadContext *new_tc, Process *new_p,
TheISA::IntReg flags);
virtual void clone(ThreadContext *old_tc, ThreadContext *new_tc,
Process *new_p, TheISA::IntReg flags);
// thread contexts associated with this process
std::vector<ContextID> contextIds;