From 96ac7494e08ea6cebecbd340e4101f84c6f6fb68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20B=C3=B6ckenkamp?= Date: Tue, 19 Mar 2013 13:43:50 +0100 Subject: [PATCH] Moved get*Flag() methods from BochsCPU to X86CPUState class --- src/core/sal/x86/CPUState.hpp | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/core/sal/x86/CPUState.hpp b/src/core/sal/x86/CPUState.hpp index 4485e991..4bb7af27 100644 --- a/src/core/sal/x86/CPUState.hpp +++ b/src/core/sal/x86/CPUState.hpp @@ -23,6 +23,46 @@ public: * @return the current (E)FLAGS processor register content */ virtual regdata_t getFlagsRegister() const = 0; + + /** + * Returns \c true if the corresponding flag is set, or \c false + * otherwise. + */ + virtual bool getCarryFlag() const = 0; + virtual bool getParityFlag() const = 0; + virtual bool getZeroFlag() const = 0; + virtual bool getSignFlag() const = 0; + virtual bool getOverflowFlag() const = 0; + virtual bool getTrapFlag() const = 0; + virtual bool getInterruptFlag() const = 0; + virtual bool getDirectionFlag() const = 0; + virtual unsigned getIOPrivilegeLevel() const = 0; + virtual bool getNestedTaskFlag() const = 0; + virtual bool getResumeFlag() const = 0; + virtual bool getVMFlag() const = 0; + virtual bool getAlignmentCheckFlag() const = 0; + virtual bool getVInterruptFlag() const = 0; + virtual bool getVInterruptPendingFlag() const = 0; + virtual bool getIdentificationFlag() const = 0; + /** + * Sets/resets various status FLAGS. + */ + virtual void setCarryFlag(bool bit) = 0; + virtual void setParityFlag(bool bit) = 0; + virtual void setZeroFlag(bool bit) = 0; + virtual void setSignFlag(bool bit) = 0; + virtual void setOverflowFlag(bool bit) = 0; + virtual void setTrapFlag(bool bit) = 0; + virtual void setInterruptFlag(bool bit) = 0; + virtual void setDirectionFlag(bool bit) = 0; + virtual void setIOPrivilegeLevel(unsigned lvl) = 0; + virtual void setNestedTaskFlag(bool bit) = 0; + virtual void setResumeFlag(bool bit) = 0; + virtual void setVMFlag(bool bit) = 0; + virtual void setAlignmentCheckFlag(bool bit) = 0; + virtual void setVInterruptFlag(bool bit) = 0; + virtual void setVInterruptPendingFlag(bool bit) = 0; + virtual void setIdentificationFlag(bool bit) = 0; }; } // end-of-namespace: fail