1a2
> * Copyright (c) 2015 LabWare
28a30
> * Boris Shingarov
36,37d37
< #include "arch/sparc/types.hh"
< #include "base/pollevent.hh"
39d38
< #include "cpu/pc_event.hh"
50c49,51
< enum RegisterConstants
---
> bool acc(Addr addr, size_t len);
>
> class SPARCGdbRegCache : public BaseGdbRegCache
52,57c53,72
< RegG0 = 0, RegO0 = 8, RegL0 = 16, RegI0 = 24,
< RegF0 = 32,
< RegPc = 64, RegNpc, RegState, RegFsr, RegFprs, RegY,
< /*RegState contains data in same format as tstate */
< Reg32Y = 64, Reg32Psr, Reg32Pc, Reg32Npc, Reg32Fsr, Reg32Csr,
< NumGDBRegs
---
> using BaseGdbRegCache::BaseGdbRegCache;
> private:
> struct {
> uint32_t gpr[32];
> uint32_t hole[32];
> uint32_t y;
> uint32_t psr;
> uint32_t wim;
> uint32_t tbr;
> uint32_t pc;
> uint32_t npc;
> uint32_t fsr;
> uint32_t csr;
> } r;
> public:
> char *data() const { return (char *)&r; }
> size_t size() const { return sizeof(r); }
> void getRegs(ThreadContext*);
> void setRegs(ThreadContext*) const;
> const std::string name() const { return gdb->name() + ".SPARCGdbRegCache"; }
60,61c75,95
< public:
< RemoteGDB(System *system, ThreadContext *context);
---
> class SPARC64GdbRegCache : public BaseGdbRegCache
> {
> using BaseGdbRegCache::BaseGdbRegCache;
> private:
> struct {
> uint64_t gpr[32];
> uint64_t fpr[32];
> uint64_t pc;
> uint64_t npc;
> uint64_t state;
> uint64_t fsr;
> uint64_t fprs;
> uint64_t y;
> } r;
> public:
> char *data() const { return (char *)&r; }
> size_t size() const { return sizeof(r); }
> void getRegs(ThreadContext*);
> void setRegs(ThreadContext*) const;
> const std::string name() const { return gdb->name() + ".SPARC64GdbRegCache"; }
> };
63,67c97,99
< bool acc(Addr addr, size_t len);
<
< protected:
< void getregs();
< void setregs();
---
> public:
> RemoteGDB(System *_system, ThreadContext *tc);
> BaseGdbRegCache *gdbRegs();
68a101
> } // namespace SparcISA
70,71d102
< }
<