remote_gdb.hh (11274:d9a0136ab8cc) remote_gdb.hh (12031:46116545e745)
1/*
2 * Copyright 2015 LabWare
3 * Copyright 2014 Google, Inc.
4 * Copyright (c) 2013 ARM Limited
5 * All rights reserved
6 *
7 * The license below extends only to copyright in the software and shall
8 * not be construed as granting a license to any other intellectual

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

74 uint32_t fpscr;
75 uint32_t cpsr;
76 } r;
77 public:
78 char *data() const { return (char *)&r; }
79 size_t size() const { return sizeof(r); }
80 void getRegs(ThreadContext*);
81 void setRegs(ThreadContext*) const;
1/*
2 * Copyright 2015 LabWare
3 * Copyright 2014 Google, Inc.
4 * Copyright (c) 2013 ARM Limited
5 * All rights reserved
6 *
7 * The license below extends only to copyright in the software and shall
8 * not be construed as granting a license to any other intellectual

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

74 uint32_t fpscr;
75 uint32_t cpsr;
76 } r;
77 public:
78 char *data() const { return (char *)&r; }
79 size_t size() const { return sizeof(r); }
80 void getRegs(ThreadContext*);
81 void setRegs(ThreadContext*) const;
82 const std::string name() const { return gdb->name() + ".AArch32GdbRegCache"; }
82 const std::string
83 name() const
84 {
85 return gdb->name() + ".AArch32GdbRegCache";
86 }
83 };
84
85 class AArch64GdbRegCache : public BaseGdbRegCache
86 {
87 using BaseGdbRegCache::BaseGdbRegCache;
88 private:
89 struct {
90 uint64_t x[31];
91 uint64_t spx;
92 uint64_t pc;
93 uint64_t cpsr;
94 uint32_t v[32*4];
95 } r;
96 public:
97 char *data() const { return (char *)&r; }
98 size_t size() const { return sizeof(r); }
99 void getRegs(ThreadContext*);
100 void setRegs(ThreadContext*) const;
87 };
88
89 class AArch64GdbRegCache : public BaseGdbRegCache
90 {
91 using BaseGdbRegCache::BaseGdbRegCache;
92 private:
93 struct {
94 uint64_t x[31];
95 uint64_t spx;
96 uint64_t pc;
97 uint64_t cpsr;
98 uint32_t v[32*4];
99 } r;
100 public:
101 char *data() const { return (char *)&r; }
102 size_t size() const { return sizeof(r); }
103 void getRegs(ThreadContext*);
104 void setRegs(ThreadContext*) const;
101 const std::string name() const { return gdb->name() + ".AArch64GdbRegCache"; }
105 const std::string
106 name() const
107 {
108 return gdb->name() + ".AArch64GdbRegCache";
109 }
102 };
103
110 };
111
112 AArch32GdbRegCache regCache32;
113 AArch64GdbRegCache regCache64;
114
104 public:
105 RemoteGDB(System *_system, ThreadContext *tc);
106 BaseGdbRegCache *gdbRegs();
107};
108} // namespace ArmISA
109
110#endif /* __ARCH_ARM_REMOTE_GDB_H__ */
115 public:
116 RemoteGDB(System *_system, ThreadContext *tc);
117 BaseGdbRegCache *gdbRegs();
118};
119} // namespace ArmISA
120
121#endif /* __ARCH_ARM_REMOTE_GDB_H__ */