<div dir="ltr">> <span style="font-family:arial,sans-serif;font-size:13px">Maybe the vector regs don't go through this code path. The same problem would arise for x86 with the xmm/ymm type registers.</span><div><span style="font-family:arial,sans-serif;font-size:13px"><br>
</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Right, on x86_64 Linux these are definitely handled differently.</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px">> </span><span style="font-size:13px;font-family:arial,sans-serif">In RegisterContextPOSIXProcessMon</span><span style="font-size:13px;font-family:arial,sans-serif">itor_arm64::ReadRegister this code seems to be copied from an x86 version of this impl:</span></div>
<div><span style="font-size:13px;font-family:arial,sans-serif"><br></span></div><div><span style="font-size:13px;font-family:arial,sans-serif">Hey Paul, I think that chunk can just come out.  I don't have a functional environment to test that out over here yet.  It should be relatively easy to test with a little assembly that writes the values and you read back at a breakpoint.  </span></div>
<div><span style="font-size:13px;font-family:arial,sans-serif"><br></span></div><div><span style="font-size:13px;font-family:arial,sans-serif">(And if you can figure out a way to write a unit test around it that runs when testing on arm64 Linux, that would be great).  I have some gdb-remote tests that will exercise reading/writing many of the registers surfaced by the dynamic register detection.  Right now it uses some fuzzy logic since not all registers can have all bits written and read back right, that could use a bit of improvement.</span></div>
<div><span style="font-size:13px;font-family:arial,sans-serif"><br></span></div><div><span style="font-size:13px;font-family:arial,sans-serif">-Todd</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br>
</span></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 29, 2014 at 12:49 AM, Jason Molenda <span dir="ltr"><<a href="mailto:jason@molenda.com" target="_blank">jason@molenda.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In RegisterContextPOSIXProcessMonitor_arm64::ReadRegister this code seems to be copied from an x86 version of this impl:<br>

<br>
        if (success)<br>
        {<br>
            // If our read was not aligned (for ah,bh,ch,dh), shift our returned value one byte to the right.<br>
            if (is_subreg && (reg_info->byte_offset & 0x1))<br>
                value.SetUInt64(value.GetAsUInt64() >> 8);<br>
<br>
            // If our return byte size was greater than the return value reg size, then<br>
            // use the type specified by reg_info rather than the uint64_t default<br>
            if (value.GetByteSize() > reg_info->byte_size)<br>
                value.SetType(reg_info);<br>
        }<br>
<br>
arm64 does have invalidate_registers like x86 -- w0 is the lower 32 bits of x0; and s0, d0, and q0 aka v0 also are all from the same part of the register file.  But I think this is doing something very x86 specific for supporting the 8-bit variants of eax etc registers and I don't think it is applicable..<br>

<br>
RegisterContextPOSIXProcessMonitor_arm64::ReadRegister also only handles 2/4/8 byte registers - but the v0-31 registers are 16-bytes wide each.  Maybe the vector regs don't go through this code path. The same problem would arise for x86 with the xmm/ymm type registers.<br>

<div><div class="h5"><br>
<br>
<br>
On Aug 27, 2014, at 2:08 PM, Paul Osmialowski <<a href="mailto:pawelo@king.net.pl">pawelo@king.net.pl</a>> wrote:<br>
<br>
> More on registering context on arm64. Depends on D4580 which although accepted, does not seem to be commited yet (I guess due to Host vs HostInfo problem).<br>
><br>
> <a href="http://reviews.llvm.org/D5089" target="_blank">http://reviews.llvm.org/D5089</a><br>
><br>
> Files:<br>
>  source/Plugins/Process/POSIX/CMakeLists.txt<br>
>  source/Plugins/Process/POSIX/POSIXThread.cpp<br>
>  source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_arm64.cpp<br>
>  source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_arm64.h<br>
>  source/Plugins/Process/Utility/CMakeLists.txt<br>
>  source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp<br>
>  source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h<br>
</div></div>> <D5089.13001.patch>_______________________________________________<br>
<div class="HOEnZb"><div class="h5">> lldb-commits mailing list<br>
> <a href="mailto:lldb-commits@cs.uiuc.edu">lldb-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits</a><br>
<br>
<br>
_______________________________________________<br>
lldb-commits mailing list<br>
<a href="mailto:lldb-commits@cs.uiuc.edu">lldb-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><table cellspacing="0" cellpadding="0" style="color:rgb(136,136,136);font-family:'Times New Roman'"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small">
<td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Todd Fiala |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td>
<td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tfiala@google.com" style="color:rgb(17,85,204)" target="_blank"><span style="background-color:rgb(255,255,204);color:rgb(34,34,34);background-repeat:initial initial">tfiala@google.com</span></a> |</td>
<td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"><font color="#1155cc"> <a>650-943-3180</a></font></td></tr></tbody></table><br></div>
</div>