1/*
2 * Copyright (c) 2015 LabWare
3 * Copyright (c) 2002-2005 The Regents of The University of Michigan
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

--- 37 unchanged lines hidden (view full) ---

46
47namespace AlphaISA {
48
49class RemoteGDB : public BaseRemoteGDB
50{
51 protected:
52 // Machine memory
53 bool acc(Addr addr, size_t len) override;
54 bool write(Addr addr, size_t size, const char *data) override;
54
56 void insertHardBreak(Addr addr, size_t len) override;
57
55 class AlphaGdbRegCache : public BaseGdbRegCache
56 {
57 using BaseGdbRegCache::BaseGdbRegCache;
58 private:
59 struct {
60 uint64_t gpr[32];
61 uint64_t fpr[32];
62 uint64_t pc;
63 uint64_t vfp;
64 } r;
65 public:
66 char *data() const { return (char *)&r; }
67 size_t size() const { return sizeof(r); }
68 void getRegs(ThreadContext*);
69 void setRegs(ThreadContext*) const;
73 const std::string name() const { return gdb->name() + ".AlphaGdbRegCache"; }
70 const std::string
71 name() const
72 {
73 return gdb->name() + ".AlphaGdbRegCache";
74 }
75 };
76
77 public:
77 RemoteGDB(System *system, ThreadContext *context);
78 RemoteGDB(System *system, ThreadContext *context, int _port);
79 BaseGdbRegCache *gdbRegs() override;
80};
81
82} // namespace AlphaISA
83
84#endif // __ARCH_ALPHA_REMOTE_GDB_HH__