Go to the documentation of this file.
135 #include <sys/signal.h>
140 #include "arch/power/gdb-xml/gdb_xml_power64_core.hh"
141 #include "arch/power/gdb-xml/gdb_xml_power_core.hh"
142 #include "arch/power/gdb-xml/gdb_xml_power_fpu.hh"
143 #include "arch/power/gdb-xml/gdb_xml_powerpc_32.hh"
144 #include "arch/power/gdb-xml/gdb_xml_powerpc_64.hh"
148 #include "debug/GDBAcc.hh"
149 #include "debug/GDBMisc.hh"
156 using namespace PowerISA;
159 : BaseRemoteGDB(_system, _port), regCache32(this), regCache64(this)
181 DPRINTF(GDBAcc,
"getRegs in remotegdb \n");
184 ByteOrder order = (msr.le ? ByteOrder::little : ByteOrder::big);
210 DPRINTF(GDBAcc,
"setRegs in remotegdb \n");
213 ByteOrder order = (msr.le ? ByteOrder::little : ByteOrder::big);
236 DPRINTF(GDBAcc,
"getRegs in remotegdb \n");
239 ByteOrder order = (msr.le ? ByteOrder::little : ByteOrder::big);
264 DPRINTF(GDBAcc,
"setRegs in remotegdb \n");
267 ByteOrder order = (msr.le ? ByteOrder::little : ByteOrder::big);
300 #define GDB_XML(x, s) \
301 { x, std::string(reinterpret_cast<const char *>(Blobs::s), \
303 static const std::map<std::string, std::string> annexMap32{
304 GDB_XML(
"target.xml", gdb_xml_powerpc_32),
305 GDB_XML(
"power-core.xml", gdb_xml_power_core),
306 GDB_XML(
"power-fpu.xml", gdb_xml_power_fpu)
308 static const std::map<std::string, std::string> annexMap64{
309 GDB_XML(
"target.xml", gdb_xml_powerpc_64),
310 GDB_XML(
"power64-core.xml", gdb_xml_power64_core),
311 GDB_XML(
"power-fpu.xml", gdb_xml_power_fpu)
316 auto& annexMap = msr.sf ? annexMap64 : annexMap32;
317 auto it = annexMap.find(annex);
318 if (it == annexMap.end())
constexpr RegId Cr(IntRegClass, _CrIdx)
Addr instAddr() const
Returns the memory address of the instruction this PC points to.
virtual RegVal getReg(const RegId ®) const
static void output(const char *filename)
constexpr RegId Xer(IntRegClass, _XerIdx)
virtual const PCStateBase & pcState() const =0
const Entry * lookup(Addr vaddr)
Lookup function.
Concrete subclasses of this abstract class represent how the register values are transmitted on the w...
bool getXferFeaturesRead(const std::string &annex, std::string &output)
Get an XML target description.
constexpr RegId Ctr(IntRegClass, _CtrIdx)
@ FloatRegClass
Floating-point register.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
EmulationPageTable * pTable
T gtoh(T value, ByteOrder guest_byte_order)
RemoteGDB(System *_system, int _port)
T htog(T value, ByteOrder guest_byte_order)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
virtual Process * getProcessPtr()=0
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
@ IntRegClass
Integer register.
BaseGdbRegCache * gdbRegs()
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
constexpr RegId Lr(IntRegClass, _LrIdx)
ThreadContext * context()
constexpr RegId Fpscr(IntRegClass, _FpscrIdx)
bool acc(Addr addr, size_t len)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
constexpr RegId Msr(IntRegClass, _MsrIdx)
Register ID: describe an architectural register with its class and index.
virtual void setReg(const RegId ®, RegVal val)
Generated on Thu Jul 28 2022 13:32:24 for gem5 by doxygen 1.8.17