diff options
Diffstat (limited to 'src/arch/arm/remote_gdb.hh')
-rw-r--r-- | src/arch/arm/remote_gdb.hh | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/arch/arm/remote_gdb.hh b/src/arch/arm/remote_gdb.hh index 10fcb6d4a..3e4c5ef8d 100644 --- a/src/arch/arm/remote_gdb.hh +++ b/src/arch/arm/remote_gdb.hh @@ -1,7 +1,7 @@ /* * Copyright 2015 LabWare * Copyright 2014 Google, Inc. - * Copyright (c) 2013, 2016 ARM Limited + * Copyright (c) 2013, 2016, 2018 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -50,6 +50,7 @@ #include <algorithm> +#include "arch/arm/registers.hh" #include "arch/arm/utility.hh" #include "base/compiler.hh" #include "base/remote_gdb.hh" @@ -71,9 +72,9 @@ class RemoteGDB : public BaseRemoteGDB private: struct { uint32_t gpr[16]; - uint32_t fpr[8*3]; - uint32_t fpscr; uint32_t cpsr; + uint64_t fpr[32]; + uint32_t fpscr; } M5_ATTR_PACKED r; public: char *data() const { return (char *)&r; } @@ -97,6 +98,8 @@ class RemoteGDB : public BaseRemoteGDB uint64_t pc; uint32_t cpsr; VecElem v[NumVecV8ArchRegs * NumVecElemPerVecReg]; + uint32_t fpsr; + uint32_t fpcr; } M5_ATTR_PACKED r; public: char *data() const { return (char *)&r; } @@ -116,6 +119,12 @@ class RemoteGDB : public BaseRemoteGDB public: RemoteGDB(System *_system, ThreadContext *tc, int _port); BaseGdbRegCache *gdbRegs(); + std::vector<std::string> + availableFeatures() const + { + return {"qXfer:features:read+"}; + }; + bool getXferFeaturesRead(const std::string &annex, std::string &output); }; } // namespace ArmISA |