diff options
author | Andreas Sandberg <Andreas.Sandberg@ARM.com> | 2013-01-07 13:05:44 -0500 |
---|---|---|
committer | Andreas Sandberg <Andreas.Sandberg@ARM.com> | 2013-01-07 13:05:44 -0500 |
commit | e2dad8236a95b5d7b1c1470385d0b543d3c7af4a (patch) | |
tree | 5b10bce38b63a506733c0d219a8abecce1eb013d /src/cpu/checker/thread_context.hh | |
parent | 17b47d35e1d0dedca7a3336f1193b1a502bcd78b (diff) | |
download | gem5-e2dad8236a95b5d7b1c1470385d0b543d3c7af4a.tar.xz |
cpu: Implement a flat register interface in thread contexts
Some architectures map registers differently depending on their mode
of operations. There is currently no architecture independent way of
accessing all registers. This patch introduces a flat register
interface to the ThreadContext class. This interface is useful, for
example, when serializing or copying thread contexts.
Diffstat (limited to 'src/cpu/checker/thread_context.hh')
-rw-r--r-- | src/cpu/checker/thread_context.hh | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/cpu/checker/thread_context.hh b/src/cpu/checker/thread_context.hh index 967f15572..80726ff19 100644 --- a/src/cpu/checker/thread_context.hh +++ b/src/cpu/checker/thread_context.hh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011 ARM Limited + * Copyright (c) 2011-2012 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -302,6 +302,24 @@ class CheckerThreadContext : public ThreadContext bool misspeculating() { return actualTC->misspeculating(); } Counter readFuncExeInst() { return actualTC->readFuncExeInst(); } + + uint64_t readIntRegFlat(int idx) + { return actualTC->readIntRegFlat(idx); } + + void setIntRegFlat(int idx, uint64_t val) + { actualTC->setIntRegFlat(idx, val); } + + FloatReg readFloatRegFlat(int idx) + { return actualTC->readFloatRegFlat(idx); } + + void setFloatRegFlat(int idx, FloatReg val) + { actualTC->setFloatRegFlat(idx, val); } + + FloatRegBits readFloatRegBitsFlat(int idx) + { return actualTC->readFloatRegBitsFlat(idx); } + + void setFloatRegBitsFlat(int idx, FloatRegBits val) + { actualTC->setFloatRegBitsFlat(idx, val); } }; #endif // __CPU_CHECKER_EXEC_CONTEXT_HH__ |