diff --git a/src/arch/arm/remote_gdb.cc b/src/arch/arm/remote_gdb.cc
index f191937..a395cd9 100644
--- a/src/arch/arm/remote_gdb.cc
+++ b/src/arch/arm/remote_gdb.cc
@@ -209,10 +209,6 @@
         r.v[i + 2] = context->readFloatRegBits(i + 0);
         r.v[i + 3] = context->readFloatRegBits(i + 1);
     }
-
-    for (int i = 0; i < 32; i ++) {
-        r.vec[i] = context->readVecReg(RegId(VecRegClass,i));
-    }
 }
 
 void
@@ -235,10 +231,6 @@
         context->setFloatRegBits(i + 0, r.v[i + 2]);
         context->setFloatRegBits(i + 1, r.v[i + 3]);
     }
-
-    for (int i = 0; i < 32; i ++) {
-        context->setVecReg(RegId(VecRegClass, i), r.vec[i]);
-    }
 }
 
 void
diff --git a/src/arch/arm/remote_gdb.hh b/src/arch/arm/remote_gdb.hh
index e5d50ee..e59d7b0 100644
--- a/src/arch/arm/remote_gdb.hh
+++ b/src/arch/arm/remote_gdb.hh
@@ -51,7 +51,7 @@
 #include <algorithm>
 
 #include "arch/arm/utility.hh"
-#include "arch/generic/vec_reg.hh"
+#include "base/compiler.hh"
 #include "base/remote_gdb.hh"
 
 class System;
@@ -74,7 +74,7 @@
           uint32_t fpr[8*3];
           uint32_t fpscr;
           uint32_t cpsr;
-        } r;
+        } M5_ATTR_PACKED r;
       public:
         char *data() const { return (char *)&r; }
         size_t size() const { return sizeof(r); }
@@ -95,10 +95,9 @@
           uint64_t x[31];
           uint64_t spx;
           uint64_t pc;
-          uint64_t cpsr;
+          uint32_t cpsr;
           uint32_t v[32*4];
-          ArmISA::VecRegContainer vec[32];
-        } r;
+        } M5_ATTR_PACKED r;
       public:
         char *data() const { return (char *)&r; }
         size_t size() const { return sizeof(r); }
