summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/alpha/decoder.hh2
-rw-r--r--src/arch/arm/decoder.hh2
-rw-r--r--src/arch/mips/decoder.hh2
-rw-r--r--src/arch/power/decoder.hh3
-rw-r--r--src/arch/sparc/decoder.hh2
-rw-r--r--src/arch/x86/decoder.hh13
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;