summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp
diff options
context:
space:
mode:
authorAbhishek Aggarwal <abhishek.a.aggarwal@intel.com>2015-10-12 09:57:00 +0000
committerAbhishek Aggarwal <abhishek.a.aggarwal@intel.com>2015-10-12 09:57:00 +0000
commitb352a1c88fb5dd3207de4700100743329fcb7626 (patch)
treedd1f8df87223673c4e7c0db518dd7cbc4c816f18 /lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp
parentc3741ec8d364bb2490cf4abc0d3128cbad51f169 (diff)
downloadbcm5719-llvm-b352a1c88fb5dd3207de4700100743329fcb7626.tar.gz
bcm5719-llvm-b352a1c88fb5dd3207de4700100743329fcb7626.zip
X86: Change FTAG register size in FXSAVE structure
Summary: - Changed from 16 bits to 8 bits for Intel Architecture -- FXSAVE structure now conforms with the layout of FXSAVE area specified by IA Architecture Software Developer Manual - Modified Linux and FreeBSD specific files to support this change -- MacOSX already uses 8 bits for ftag register - Modified TestRegisters.py and a.cpp: -- Change allows 8 bit comparison of ftag values -- Change resolves Bug 24733: Removed XFAIL for Clang as the test works and passes for Clang compiler as well -- Change provides a Generic/Better way of testing Bug 24457 and Bug 25050 by using 'int3' inline assembly in inferior Signed-off-by: Abhishek Aggarwal <abhishek.a.aggarwal@intel.com> Reviewers: ovyalov, jingham, clayborg Subscribers: tfiala, emaste Differential Revision: http://reviews.llvm.org/D13587 llvm-svn: 250022
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp')
-rwxr-xr-xlldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp
index c656b820d65..1ee8e923188 100755
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp
@@ -575,6 +575,9 @@ NativeRegisterContextLinux_x86_64::ReadRegister (const RegisterInfo *reg_info, R
uint8_t *src = (uint8_t *)&m_fpr + reg_info->byte_offset - m_fctrl_offset_in_userarea;
switch (reg_info->byte_size)
{
+ case 1:
+ reg_value.SetUInt8(*(uint8_t *)src);
+ break;
case 2:
reg_value.SetUInt16(*(uint16_t *)src);
break;
@@ -644,6 +647,9 @@ NativeRegisterContextLinux_x86_64::WriteRegister (const RegisterInfo *reg_info,
uint8_t *dst = (uint8_t *)&m_fpr + reg_info->byte_offset - m_fctrl_offset_in_userarea;
switch (reg_info->byte_size)
{
+ case 1:
+ *(uint8_t *)dst = reg_value.GetAsUInt8();
+ break;
case 2:
*(uint16_t *)dst = reg_value.GetAsUInt16();
break;
OpenPOWER on IntegriCloud