<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D'>Hi Artyom<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>LGTM. This brings disassembly into line with the new assembly functionality after r194253. <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Ta<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Rich<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> llvm-commits-bounces@cs.uiuc.edu [mailto:llvm-commits-bounces@cs.uiuc.edu] <b>On Behalf Of </b>Artyom Skrobov<br><b>Sent:</b> 06 November 2013 13:04<br><b>To:</b> llvm-commits@cs.uiuc.edu<br><b>Subject:</b> [ARM] Handling for coprocessor instructions that are undefined starting from ARMv8<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Hello,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>v8 ARMARM has restricted the list of coprocessors supported in AArch32 to the four required for the legacy code.<o:p></o:p></p><p class=MsoNormal>(Section E1.4 Coprocessor support: The only supported coprocessors in ARMv8 are CP15, CP14, CP10 and CP11.)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The coprocessor instructions operating on any coprocessors not in this list are to be undefined, starting from ARMv8.<o:p></o:p></p><p class=MsoNormal>(e.g. Section F7.1.204: If no coprocessor can execute the instruction, an Undefined Instruction exception is generated.)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>CP10 and CP11, used for the FP/NEON operations, are already excluded from the list of valid operands for the generic coprocessor instructions.<o:p></o:p></p><p class=MsoNormal>We’re proposing a patchset to further restrict the valid ranges for coprocessor operands, starting from ARMv8, as specified in Section G3.15.2:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>* STC and LDC are only defined for CP14<o:p></o:p></p><p class=MsoNormal>* MCRR, MRRC, MRC, MCR are defined for CP14 and CP15<o:p></o:p></p><p class=MsoNormal>* CDP, CDP2, MCR2, MRC2, MCRR2, MRRC2, LDC2, STC2 are no longer defined for any coprocessor<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Our patchset consists of three patches. The first one exports getSubtargetInfo() from MCDisassembler public interface, to allow architecture-aware disassembly, which had not been required until now. The two other patches implement the necessary changes for ARM and Thumb encodings, correspondingly. The last patch also deletes 4KLOC from test/MC/ARM/v8_IT_manual.s – these tested a bunch of encodings which are in fact invalid.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>OK to commit this?<o:p></o:p></p></div></div></body></html>