diff options
Diffstat (limited to 'src/arch/arm/decoder.hh')
-rw-r--r-- | src/arch/arm/decoder.hh | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/arch/arm/decoder.hh b/src/arch/arm/decoder.hh index a5f2c88a5..9099e3e2e 100644 --- a/src/arch/arm/decoder.hh +++ b/src/arch/arm/decoder.hh @@ -58,6 +58,9 @@ class Decoder bool foundIt; ITSTATE itBits; + int fpscrLen; + int fpscrStride; + public: void reset() { @@ -69,7 +72,8 @@ class Decoder foundIt = false; } - Decoder(ThreadContext * _tc) : tc(_tc), data(0) + Decoder(ThreadContext * _tc) : tc(_tc), data(0), + fpscrLen(0), fpscrStride(0) { reset(); } @@ -121,6 +125,12 @@ class Decoder return (!emi.thumb || emi.bigThumb) ? 4 : 2; } + void setContext(FPSCR fpscr) + { + fpscrLen = fpscr.len; + fpscrStride = fpscr.stride; + } + protected: /// A cache of decoded instruction objects. static GenericISA::BasicDecodeCache defaultCache; |