diff options
| author | Abhishek Aggarwal <abhishek.a.aggarwal@intel.com> | 2015-10-12 09:57:00 +0000 |
|---|---|---|
| committer | Abhishek Aggarwal <abhishek.a.aggarwal@intel.com> | 2015-10-12 09:57:00 +0000 |
| commit | b352a1c88fb5dd3207de4700100743329fcb7626 (patch) | |
| tree | dd1f8df87223673c4e7c0db518dd7cbc4c816f18 /lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp | |
| parent | c3741ec8d364bb2490cf4abc0d3128cbad51f169 (diff) | |
| download | bcm5719-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-x | lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp | 6 |
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; |

