arch,cpu: Make branching() a virtual member of PCStateBase.

Change-Id: I4422d07024e97dbd67e97ad95a16e1b06fd6be12
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/52066
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
This commit is contained in:
Gabe Black
2021-10-16 04:13:08 -07:00
parent f8b8ab90ac
commit 9f2fa6c4ce
7 changed files with 11 additions and 12 deletions

View File

@@ -196,7 +196,7 @@ class PCState : public GenericISA::UPCState<4>
uint8_t size() const { return _size; }
bool
branching() const
branching() const override
{
return ((this->pc() + this->size()) != this->npc());
}

View File

@@ -127,6 +127,7 @@ class PCStateBase : public Serializable
}
virtual void advance() = 0;
virtual bool branching() const = 0;
void
serialize(CheckpointOut &cp) const override
@@ -365,7 +366,7 @@ class SimplePCState : public PCStateCommon
};
bool
branching() const
branching() const override
{
return this->npc() != this->pc() + InstWidth;
}
@@ -414,7 +415,7 @@ class UPCState : public SimplePCState<InstWidth>
explicit UPCState(Addr val) { set(val); }
bool
branching() const
branching() const override
{
return this->npc() != this->pc() + InstWidth ||
this->nupc() != this->upc() + 1;
@@ -486,7 +487,7 @@ class DelaySlotPCState : public SimplePCState<InstWidth>
explicit DelaySlotPCState(Addr val) { set(val); }
bool
branching() const
branching() const override
{
return !(this->nnpc() == this->npc() + InstWidth &&
(this->npc() == this->pc() + InstWidth ||
@@ -559,7 +560,7 @@ class DelaySlotUPCState : public DelaySlotPCState<InstWidth>
explicit DelaySlotUPCState(Addr val) { set(val); }
bool
branching() const
branching() const override
{
return Base::branching() || this->nupc() != this->upc() + 1;
}

View File

@@ -77,7 +77,7 @@ class PCState : public GenericISA::UPCState<4>
bool rv32() const { return _rv32; }
bool
branching() const
branching() const override
{
if (_compressed) {
return npc() != pc() + 2 || nupc() != upc() + 1;

View File

@@ -88,7 +88,7 @@ class PCState : public GenericISA::UPCState<8>
void size(uint8_t newSize) { _size = newSize; }
bool
branching() const
branching() const override
{
return (this->npc() != this->pc() + size()) ||
(this->nupc() != this->upc() + 1);