Small change to the previous checkin, read in the fpu register context
in one large block - and be sure toget the fpscr value as well when
processing a core file.
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181756 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
index da32acd..7ef4fac 100644
--- a/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
+++ b/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
@@ -305,12 +305,18 @@
case FPURegSet:
{
- uint32_t *d = &fpu.floats.s[0];
- for (uint32_t i = 0; i < count && d < d + (sizeof (fpu.floats) / sizeof (uint32_t)); i++)
+ uint8_t *fpu_reg_buf = (uint8_t*) &fpu.floats.s[0];
+ const int fpu_reg_buf_size = sizeof (fpu.floats);
+ if (data.ExtractBytes (offset, fpu_reg_buf_size, eByteOrderLittle, fpu_reg_buf) == fpu_reg_buf_size)
{
- *d++ = data.GetU32(&offset);
+ offset += fpu_reg_buf_size;
+ fpu.fpscr = data.GetU32(&offset);
+ SetError (FPURegSet, Read, 0);
}
- SetError (FPURegSet, Read, 0);
+ else
+ {
+ done = true;
+ }
}
break;