Fail* directories reorganized, Code-cleanup (-> coding-style), Typos+comments fixed.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1321 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
51
simulators/ovp/OVPStatusRegister.hpp
Normal file
51
simulators/ovp/OVPStatusRegister.hpp
Normal file
@ -0,0 +1,51 @@
|
||||
#ifndef __OVP_STATUS_REGISTER_HPP__
|
||||
#define __OVP_STATUS_REGISTER_HPP__
|
||||
|
||||
#include "sal/ovp/OVPRegister.hpp"
|
||||
|
||||
/**
|
||||
* \class OVPStatusRegister
|
||||
* Abstract class for status register implementation
|
||||
*/
|
||||
class OVPStatusRegister : public fail::OVPRegister {
|
||||
protected:
|
||||
|
||||
public:
|
||||
OVPStatusRegister(uint32_t width, void *link)
|
||||
: fail::OVPRegister(width, 32, link, fail::RT_ST) { }
|
||||
~OVPStatusRegister() {}
|
||||
|
||||
virtual bool getSignFlag() const = 0;
|
||||
virtual bool getZeroFlag() const = 0;
|
||||
virtual bool getCarryFlag() const = 0;
|
||||
virtual bool getOverflowFlag() const = 0;
|
||||
|
||||
virtual void setSignFlag(bool) = 0;
|
||||
virtual void setZeroFlag(bool) = 0;
|
||||
virtual void setCarryFlag(bool) = 0;
|
||||
virtual void setOverflowFlag(bool) = 0;
|
||||
|
||||
/**
|
||||
* Invert bit at specific position of status register
|
||||
* @param pos position of bit to invert
|
||||
*/
|
||||
/* void invertBit(int pos) {
|
||||
size_t val;
|
||||
size_t chpos = 1 << pos;
|
||||
|
||||
icmReadRegInfoValue(cpuP, cpsr, (void *)&val);
|
||||
|
||||
// get bit
|
||||
bool bit = (val >> pos) & 0x1;
|
||||
|
||||
if(bit == 0) {
|
||||
chpos = ~chpos;
|
||||
val = val & chpos;
|
||||
} else {
|
||||
val = val | chpos;
|
||||
}
|
||||
|
||||
}*/
|
||||
};
|
||||
|
||||
#endif // __OVP_STATUS_REGISTER_HPP__
|
||||
Reference in New Issue
Block a user