[Lldb-commits] [lldb] r311579 - Process: fix FXSAVE on x86
Hans Wennborg via lldb-commits
lldb-commits at lists.llvm.org
Wed Aug 23 11:42:41 PDT 2017
Merged in r311585. Thanks!
On Wed, Aug 23, 2017 at 11:02 AM, Greg Clayton <clayborg at gmail.com> wrote:
> Fine with me.
>
> On Aug 23, 2017, at 10:47 AM, Saleem Abdulrasool <compnerd at compnerd.org>
> wrote:
>
> This would be nice to merge to 5.0 IMO. It fixes reading the x87 FPU state.
> What do you think Greg?
>
> On Wed, Aug 23, 2017 at 10:24 AM Saleem Abdulrasool via lldb-commits
> <lldb-commits at lists.llvm.org> wrote:
>>
>> Author: compnerd
>> Date: Wed Aug 23 10:23:12 2017
>> New Revision: 311579
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=311579&view=rev
>> Log:
>> Process: fix FXSAVE on x86
>>
>> The FXSAVE member `ftw` (FPU Tag Word) was given the wrong size (8-bit)
>> instead of the correct width (16-bit) as per the x87 Programmer's
>> Manual. Adjust this to ensure that we print out the complete value for
>> the register.
>>
>> Modified:
>>
>> lldb/trunk/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py
>>
>> lldb/trunk/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp
>> lldb/trunk/source/Plugins/Process/Utility/RegisterContext_x86.h
>>
>> Modified:
>> lldb/trunk/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py?rev=311579&r1=311578&r2=311579&view=diff
>>
>> ==============================================================================
>> ---
>> lldb/trunk/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py
>> (original)
>> +++
>> lldb/trunk/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py
>> Wed Aug 23 10:23:12 2017
>> @@ -256,7 +256,7 @@ class RegisterCommandsTestCase(TestBase)
>> self.expect(
>> "register read ftag", substrs=[
>> 'ftag' + ' = ', str(
>> - "0x%0.2x" %
>> + "0x%0.4x" %
>> (reg_value_ftag_initial | (
>> 1 << fstat_top_pointer_initial)))])
>> reg_value_ftag_initial = reg_value_ftag_initial | (
>>
>> Modified:
>> lldb/trunk/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp?rev=311579&r1=311578&r2=311579&view=diff
>>
>> ==============================================================================
>> ---
>> lldb/trunk/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp
>> (original)
>> +++
>> lldb/trunk/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp Wed
>> Aug 23 10:23:12 2017
>> @@ -36,8 +36,7 @@ struct GPR {
>> struct FPR_i386 {
>> uint16_t fctrl; // FPU Control Word (fcw)
>> uint16_t fstat; // FPU Status Word (fsw)
>> - uint8_t ftag; // FPU Tag Word (ftw)
>> - uint8_t reserved_1; // Reserved
>> + uint16_t ftag; // FPU Tag Word (ftw)
>> uint16_t fop; // Last Instruction Opcode (fop)
>> union {
>> struct {
>>
>> Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContext_x86.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContext_x86.h?rev=311579&r1=311578&r2=311579&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/source/Plugins/Process/Utility/RegisterContext_x86.h
>> (original)
>> +++ lldb/trunk/source/Plugins/Process/Utility/RegisterContext_x86.h Wed
>> Aug 23 10:23:12 2017
>> @@ -257,8 +257,7 @@ struct XMMReg {
>> struct FXSAVE {
>> uint16_t fctrl; // FPU Control Word (fcw)
>> uint16_t fstat; // FPU Status Word (fsw)
>> - uint8_t ftag; // FPU Tag Word (ftw)
>> - uint8_t reserved_1; // Reserved
>> + uint16_t ftag; // FPU Tag Word (ftw)
>> uint16_t fop; // Last Instruction Opcode (fop)
>> union {
>> struct {
>>
>>
>> _______________________________________________
>> lldb-commits mailing list
>> lldb-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>
> --
> Saleem Abdulrasool
> compnerd (at) compnerd (dot) org
>
>
More information about the lldb-commits
mailing list