diff options
author | Ali Saidi <saidi@eecs.umich.edu> | 2006-11-10 20:17:54 -0500 |
---|---|---|
committer | Ali Saidi <saidi@eecs.umich.edu> | 2006-11-10 20:17:54 -0500 |
commit | 77254e513d71ed666bf2f923d0f115b9b86aca1b (patch) | |
tree | 5743c796ce5ddab95d6c711a78893a3c667efa18 /src/arch | |
parent | e89eaf8b801b39713b28f2df7e89ea8a518974ec (diff) | |
parent | aa19b2e7bca481b5f8fd2c54f2396b53259cf742 (diff) | |
download | gem5-77254e513d71ed666bf2f923d0f115b9b86aca1b.tar.xz |
Merge zizzer:/bk/newmem
into zeep.pool:/z/saidi/work/m5.newmem
--HG--
extra : convert_revision : e4f9bb663099662a94c5522e6b4955c2a83bac8d
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/sparc/faults.cc | 2 | ||||
-rw-r--r-- | src/arch/sparc/isa/base.isa | 7 | ||||
-rw-r--r-- | src/arch/sparc/tlb.hh | 5 | ||||
-rw-r--r-- | src/arch/sparc/utility.hh | 1 |
4 files changed, 12 insertions, 3 deletions
diff --git a/src/arch/sparc/faults.cc b/src/arch/sparc/faults.cc index 2564bc6a9..4cf411d3b 100644 --- a/src/arch/sparc/faults.cc +++ b/src/arch/sparc/faults.cc @@ -494,7 +494,7 @@ void doNormalFault(ThreadContext *tc, TrapType tt, bool gotoHpriv) void getREDVector(MiscReg TT, Addr & PC, Addr & NPC) { //XXX The following constant might belong in a header file. - const Addr RSTVAddr = 0xFFFFFFFFF0000000ULL; + const Addr RSTVAddr = 0xFFF0000000ULL; PC = RSTVAddr | ((TT << 5) & 0xFF); NPC = PC + sizeof(MachInst); } diff --git a/src/arch/sparc/isa/base.isa b/src/arch/sparc/isa/base.isa index 122ad2b52..aa24c75be 100644 --- a/src/arch/sparc/isa/base.isa +++ b/src/arch/sparc/isa/base.isa @@ -244,7 +244,12 @@ output decoder {{ bool passesCondition(uint32_t codes, uint32_t condition) { CondCodes condCodes; - condCodes.bits = codes; + condCodes.bits = 0; + condCodes.c = codes & 0x1 ? 1 : 0; + condCodes.v = codes & 0x2 ? 1 : 0; + condCodes.z = codes & 0x4 ? 1 : 0; + condCodes.n = codes & 0x8 ? 1 : 0; + switch(condition) { case Always: diff --git a/src/arch/sparc/tlb.hh b/src/arch/sparc/tlb.hh index 7a9a6aea1..136103f44 100644 --- a/src/arch/sparc/tlb.hh +++ b/src/arch/sparc/tlb.hh @@ -40,6 +40,9 @@ class ThreadContext; namespace SparcISA { + const int PAddrImplBits = 40; + const Addr PAddrImplMask = (ULL(1) << PAddrImplBits) - 1; + class TLB : public SimObject { public: @@ -59,7 +62,7 @@ namespace SparcISA { //For now, always assume the address is already physical. //Also assume that there are 40 bits of physical address space. - req->setPaddr(req->getVaddr() & ((1ULL << 40) - 1)); + req->setPaddr(req->getVaddr() & PAddrImplMask); return NoFault; } }; diff --git a/src/arch/sparc/utility.hh b/src/arch/sparc/utility.hh index e51677cdf..5c7fe343d 100644 --- a/src/arch/sparc/utility.hh +++ b/src/arch/sparc/utility.hh @@ -33,6 +33,7 @@ #include "arch/sparc/faults.hh" #include "arch/sparc/isa_traits.hh" +#include "arch/sparc/tlb.hh" #include "base/misc.hh" #include "base/bitfield.hh" #include "cpu/thread_context.hh" |