[Lldb-commits] [lldb] r318262 - Roll back r318260 because it is causing the windows bot to

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Wed Nov 15 13:18:21 PST 2017


It sounds to me like what you *really* need is for the VReg type itself to
be aligned 16.  How about changing this:

struct VReg {
    uint8_t bytes[16];
  };

to this:

struct VReg {
    llvm::AlignedCharArray<16, 16> bytes;
};

Then the FPU struct can remain unchanged.

MSVC does have a 128 bit type, but in practice you shouldnt' really use it,
and it will end up making the code look uglier because it will need a
#define or typedef.

On Wed, Nov 15, 2017 at 12:52 PM Jason Molenda <jmolenda at apple.com> wrote:

> Hi Zachary, do you have a suggestion on how to specify this alignment in a
> way that works with MSVC?
>
> > On Nov 14, 2017, at 7:41 PM, Jason Molenda via lldb-commits <
> lldb-commits at lists.llvm.org> wrote:
> >
> > Author: jmolenda
> > Date: Tue Nov 14 19:41:47 2017
> > New Revision: 318262
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=318262&view=rev
> > Log:
> > Roll back r318260 because it is causing the windows bot to
> > break.  The alignas(__uint128_t) is not recognized with MSVC
> > it looks like.  Zachary, is there a similar type on windows?
> > I suppose I can go with alignas(16) here but I'd prefer to
> > specify the type alignment that I want & let the ABI dictate
> > how much padding is required.
> >
> > Modified:
> >    lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
> >
> lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h
> >
> > Modified: lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp?rev=318262&r1=318261&r2=318262&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
> (original)
> > +++ lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp Tue
> Nov 14 19:41:47 2017
> > @@ -686,7 +686,7 @@ public:
> >       case FPURegSet: {
> >         uint8_t *fpu_reg_buf = (uint8_t *)&fpu.v[0];
> >         const int fpu_reg_buf_size = sizeof(fpu);
> > -        if (fpu_reg_buf_size == count * sizeof(uint32_t) &&
> > +        if (fpu_reg_buf_size == count &&
> >             data.ExtractBytes(offset, fpu_reg_buf_size, eByteOrderLittle,
> >                               fpu_reg_buf) == fpu_reg_buf_size) {
> >           SetError(FPURegSet, Read, 0);
> >
> > Modified:
> lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h?rev=318262&r1=318261&r2=318262&view=diff
> >
> ==============================================================================
> > ---
> lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h
> (original)
> > +++
> lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h Tue
> Nov 14 19:41:47 2017
> > @@ -83,7 +83,7 @@ public:
> >
> >   // mirrors <mach/arm/thread_status.h> arm_neon_state64_t
> >   struct FPU {
> > -    alignas(__uint128_t) VReg v[32];
> > +    VReg v[32];
> >     uint32_t fpsr;
> >     uint32_t fpcr;
> >   };
> >
> >
> > _______________________________________________
> > lldb-commits mailing list
> > lldb-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20171115/25b76690/attachment.html>


More information about the lldb-commits mailing list