diff options
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/alpha/decoder.hh | 2 | ||||
-rw-r--r-- | src/arch/arm/decoder.hh | 2 | ||||
-rw-r--r-- | src/arch/mips/decoder.hh | 2 | ||||
-rw-r--r-- | src/arch/power/decoder.hh | 3 | ||||
-rw-r--r-- | src/arch/sparc/decoder.hh | 2 | ||||
-rw-r--r-- | src/arch/x86/decoder.hh | 13 |
6 files changed, 24 insertions, 0 deletions
diff --git a/src/arch/alpha/decoder.hh b/src/arch/alpha/decoder.hh index 45e737e52..d33722867 100644 --- a/src/arch/alpha/decoder.hh +++ b/src/arch/alpha/decoder.hh @@ -83,6 +83,8 @@ class Decoder return instDone; } + void takeOverFrom(Decoder * old) {} + protected: /// A cache of decoded instruction objects. static GenericISA::BasicDecodeCache defaultCache; diff --git a/src/arch/arm/decoder.hh b/src/arch/arm/decoder.hh index 83a16da4c..72776bcfd 100644 --- a/src/arch/arm/decoder.hh +++ b/src/arch/arm/decoder.hh @@ -116,6 +116,8 @@ class Decoder fpscrStride = fpscr.stride; } + void takeOverFrom(Decoder *old) {} + protected: /// A cache of decoded instruction objects. static GenericISA::BasicDecodeCache defaultCache; diff --git a/src/arch/mips/decoder.hh b/src/arch/mips/decoder.hh index 080614dee..a3a68ad07 100644 --- a/src/arch/mips/decoder.hh +++ b/src/arch/mips/decoder.hh @@ -83,6 +83,8 @@ class Decoder return instDone; } + void takeOverFrom(Decoder *old) {} + protected: /// A cache of decoded instruction objects. static GenericISA::BasicDecodeCache defaultCache; diff --git a/src/arch/power/decoder.hh b/src/arch/power/decoder.hh index 830636aed..a70802ced 100644 --- a/src/arch/power/decoder.hh +++ b/src/arch/power/decoder.hh @@ -89,6 +89,9 @@ class Decoder { return instDone; } + + void takeOverFrom(Decoder *old) {} + protected: /// A cache of decoded instruction objects. static GenericISA::BasicDecodeCache defaultCache; diff --git a/src/arch/sparc/decoder.hh b/src/arch/sparc/decoder.hh index e7a806d81..b87ee682e 100644 --- a/src/arch/sparc/decoder.hh +++ b/src/arch/sparc/decoder.hh @@ -97,6 +97,8 @@ class Decoder asi = _asi; } + void takeOverFrom(Decoder *old) {} + protected: /// A cache of decoded instruction objects. static GenericISA::BasicDecodeCache defaultCache; diff --git a/src/arch/x86/decoder.hh b/src/arch/x86/decoder.hh index 6f55ab26f..ca7ef96fe 100644 --- a/src/arch/x86/decoder.hh +++ b/src/arch/x86/decoder.hh @@ -250,6 +250,19 @@ class Decoder } } + void takeOverFrom(Decoder *old) + { + mode = old->mode; + submode = old->submode; + emi.mode.mode = mode; + emi.mode.submode = submode; + altOp = old->altOp; + defOp = old->defOp; + altAddr = old->altAddr; + defAddr = old->defAddr; + stack = old->stack; + } + void reset() { state = ResetState; |