Go to file
Pavel Labath d2cfe0e597 Fix floating point register write on new x86 linux kernels
Summary:
New linux kernels (on systems that support the XSAVES instruction) will
not update the inferior registers unless the corresponding flag in the
XSAVE header is set. Normally this flag will be set in our image of the
XSAVE area (since we obtained it from the kernel), but if the inferior
has never used the corresponding register set, the respective flag can
be clear.

This fixes the issue by making sure we explicitly set the flags
corresponding to the registers we modify. I don't try to precisely match
the flags to set on each write, as the rules could get quite complicated
-- I use a simpler over-approximation instead.

This was already caught by test_fp_register_write, but that was only
because the code that ran before main() did not use some of the register
sets. Since nothing in this test relies on being stopped in main(), I
modify the test to stop at the entry point instead, so we can be sure
the inferior did not have a chance to access these registers.

Reviewers: clayborg, valentinagiusti

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D40434

llvm-svn: 319161
2017-11-28 10:56:54 +00:00
clang [test] Fix a typo in a test comment. NFC. 2017-11-28 05:47:24 +00:00
clang-tools-extra [clangd] Switch from YAMLParser to JSONExpr 2017-11-28 09:37:43 +00:00
compiler-rt Handle symbol renaming of sigaction for NetBSD 2017-11-28 10:54:58 +00:00
debuginfo-tests Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
libclc configure.py: Add gfx900 (Vega, Raven) 2017-11-27 11:14:06 +00:00
libcxx Fix problems with r'890 when building on machines where sizeof(size_t) != sizeof(unsigned long long) and C++03 2017-11-27 22:27:22 +00:00
libcxxabi Insert padding before the __cxa_exception header to ensure the thrown 2017-11-28 00:36:29 +00:00
libunwind [libunwind][CMake] Provide option to disable instalation of the library 2017-11-17 23:29:46 +00:00
lld Revert r319008, "[ELF] Do not keep symbols if they referenced only from discarded sections." 2017-11-28 08:39:40 +00:00
lldb Fix floating point register write on new x86 linux kernels 2017-11-28 10:56:54 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm [TailRecursionElimination] Skip debug intrinsics. 2017-11-28 09:32:25 +00:00
openmp doxygen: disable the html timestamp: this is breaking the reproducible build of openmp 2017-11-25 14:12:33 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [polly] Set up .arcconfig to point to new Diffusion PLO repository 2017-11-27 17:34:03 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.