<div dir="ltr">Excellent, thanks!!<br><br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Aug 8, 2015 at 1:53 AM, David Wiberg <span dir="ltr"><<a href="mailto:dwiberg@gmail.com" target="_blank">dwiberg@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
James made some improvements and committed it in r244064.<br>
<br>
Best regards<br>
<span class="HOEnZb"><font color="#888888">David<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
2015-08-08 4:08 GMT+02:00 Jun Koi <<a href="mailto:junkoi2004@gmail.com">junkoi2004@gmail.com</a>>:<br>
> James, is the fix of David accepted?<br>
><br>
> Thanks.<br>
><br>
><br>
><br>
> On Fri, Jul 31, 2015 at 10:02 AM, David Wiberg <<a href="mailto:dwiberg@gmail.com">dwiberg@gmail.com</a>> wrote:<br>
>><br>
>> Hi James,<br>
>><br>
>> Not sure if you've already found the problem but I've been looking at this<br>
>> issue a bit as a way to learn. What I've seen is that the wrong operand<br>
>> names are used for the instruction which causes the decoder emitter to fail<br>
>> to recognize the operands.<br>
>><br>
>> The attached patch changes the names of the operands and adds a test for<br>
>> the disassembly of the instruction. I haven't checked if there are more<br>
>> instructions which lack test cases. I have no commit access, if you think<br>
>> the patch is correct I would appreciate your help in committing it.<br>
>><br>
>> Regards<br>
>> David<br>
>><br>
>> 2015-07-31 16:56 GMT+02:00 James Y Knight <<a href="mailto:jyknight@google.com">jyknight@google.com</a>>:<br>
>>><br>
>>> I'll look into it, thanks for the report.<br>
>>><br>
>>> On Thu, Jul 30, 2015 at 11:01 PM, Jun Koi <<a href="mailto:junkoi2004@gmail.com">junkoi2004@gmail.com</a>> wrote:<br>
>>>><br>
>>>> Any ideas on this bug?<br>
>>>><br>
>>>> Thanks.<br>
>>>><br>
>>>><br>
>>>> On Wed, Jul 29, 2015 at 12:17 AM, Jun Koi <<a href="mailto:junkoi2004@gmail.com">junkoi2004@gmail.com</a>> wrote:<br>
>>>>><br>
>>>>> Hello,<br>
>>>>><br>
>>>>> There is an issue in the latest Sparc code: while we can encode POPC,<br>
>>>>> decode results in crash in llvm-mc<br>
>>>>><br>
>>>>> $ echo "popc %g1, %g2" | ./Release+Asserts/bin/llvm-mc -assemble<br>
>>>>> -triple=sparcv9 -show-encoding<br>
>>>>>     .text<br>
>>>>>     popc %g1, %g2                   ! encoding: [0x85,0x70,0x00,0x01]<br>
>>>>><br>
>>>>> $ echo "0x85,0x70,0x00,0x01"|./Release+Asserts/bin/llvm-mc -disassemble<br>
>>>>> -triple=sparcv9<br>
>>>>>     .text<br>
>>>>>     popc Assertion failed: (idx < size()), function operator[], file<br>
>>>>> /Users/jun/projects/llvm/sparc-2.git/include/llvm/ADT/SmallVector.h, line<br>
>>>>> 143.<br>
>>>>> 0  llvm-mc                  0x00000001096a5099<br>
>>>>> llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 57<br>
>>>>> 1  llvm-mc                  0x00000001096a45c6<br>
>>>>> llvm::sys::RunSignalHandlers() + 102<br>
>>>>> 2  llvm-mc                  0x00000001096a5b95 SignalHandler(int) + 693<br>
>>>>> 3  libsystem_platform.dylib 0x00007fff86d78f1a _sigtramp + 26<br>
>>>>> 4  libsystem_platform.dylib 0x0000000000000002 _sigtramp + 2032693506<br>
>>>>> 5  llvm-mc                  0x00000001096a5836 abort + 22<br>
>>>>> 6  llvm-mc                  0x00000001096a5811 __assert_rtn + 81<br>
>>>>> 7  llvm-mc                  0x000000010963f4e8<br>
>>>>> llvm::SparcInstPrinter::printOperand(llvm::MCInst const*, int,<br>
>>>>> llvm::MCSubtargetInfo const&, llvm::raw_ostream&) + 136<br>
>>>>> 8  llvm-mc                  0x000000010963eae0<br>
>>>>> llvm::SparcInstPrinter::printInstruction(llvm::MCInst const*,<br>
>>>>> llvm::MCSubtargetInfo const&, llvm::raw_ostream&) + 256<br>
>>>>> 9  llvm-mc                  0x000000010964f5e6<br>
>>>>> llvm::SparcInstPrinter::printInst(llvm::MCInst const*, llvm::raw_ostream&,<br>
>>>>> llvm::StringRef, llvm::MCSubtargetInfo const&) + 86<br>
>>>>> 10 llvm-mc                  0x000000010965f90f (anonymous<br>
>>>>> namespace)::MCAsmStreamer::EmitInstruction(llvm::MCInst const&,<br>
>>>>> llvm::MCSubtargetInfo const&) + 2879<br>
>>>>> 11 llvm-mc                  0x00000001096043b3<br>
>>>>> llvm::Disassembler::disassemble(llvm::Target const&,<br>
>>>>> std::__1::basic_string<char, std::__1::char_traits<char>,<br>
>>>>> std::__1::allocator<char> > const&, llvm::MCSubtargetInfo&,<br>
>>>>> llvm::MCStreamer&, llvm::MemoryBuffer&, llvm::SourceMgr&,<br>
>>>>> llvm::raw_ostream&) + 2147<br>
>>>>> 12 llvm-mc                  0x0000000109607460 main + 9760<br>
>>>>> 13 libdyld.dylib            0x00007fff8f34d5c9 start + 1<br>
>>>>> 14 libdyld.dylib            0x0000000000000003 start + 1892362811<br>
>>>>> Stack dump:<br>
>>>>> 0.    Program arguments: ./Release+Asserts/bin/llvm-mc -disassemble<br>
>>>>> -triple=sparcv9<br>
>>>>> Illegal instruction: 4<br>
>>>>><br>
>>>>><br>
>>>>> Any ideas on what is wrong, and how to fix this?<br>
>>>>><br>
>>>>><br>
>>>>> Thank you.<br>
>>>><br>
>>>><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> LLVM Developers mailing list<br>
>>>> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
>>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
>>>><br>
>>><br>
>>><br>
>>> _______________________________________________<br>
>>> LLVM Developers mailing list<br>
>>> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
>>><br>
>><br>
><br>
</div></div></blockquote></div><br></div>