<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
<!--
@font-face
        {font-family:Calibri}
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif"}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline}
span.EmailStyle17
        {font-family:"Calibri","sans-serif";
        color:windowtext}
.MsoChpDefault
        {font-family:"Calibri","sans-serif"}
@page WordSection1
        {margin:72.0pt 72.0pt 72.0pt 72.0pt}
-->
</style><style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1" lang="EN-GB" link="blue" vlink="purple">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Besides the long line:<br>
<br>
MipsSETargetLowering::addMSAType(MVT::SimpleValueType Ty, const TargetRegisterClass *RC) {<br>
line too long= 137 len= 90 lib/Target/Mips/MipsSEISelLowering.cpp<br>
<br>
LGTM,<br>
<br>
Jack<br>
<br>
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<hr tabindex="-1">
<div style="direction: ltr;" id="divRpF873879"><font color="#000000" face="Tahoma" size="2"><b>From:</b> Daniel Sanders<br>
<b>Sent:</b> Wednesday, August 21, 2013 6:47 AM<br>
<b>To:</b> Jack Carter<br>
<b>Cc:</b> llvm-commits@cs.uiuc.edu<br>
<b>Subject:</b> [PATCH] [mips][msa] Split MSA128 regset into size-specific sets containing the same registers.<br>
</font><br>
</div>
<div></div>
<div>
<div class="WordSection1">
<p class="MsoNormal">This patch splits the MSA128 register class into element-size specific sets containing the same registers. This is necessary to implement spill/reload for MSA registers correctly.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">In big-endian mode, vectors elements are stored in big-endian order but the elements themselves are stored in array order. For example the byte order for v8i16 is 1032547698BADCFE. This means that the implementation of TargetInstrInfo::storeRegToStackSlot
 must choose between multiple store instructions according to the EVT (or more precisely, the size of the elements). Unfortunately storeRegToStackSlot does not provide the EVT. However, we can use register classes (which are provided) as a proxy for the EVT.
 This patch lays the groundwork to do this.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">This patch should not cause any regressions in the existing MSA support. My next patch will implement bitcasts of big and little-endian vectors which will be needed to test spill and reload. The patch after that will implement spill/reload
 for MSA registers.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal" style="text-align:justify"><b><span style="font-size:12.0pt; font-family:"Arial","sans-serif"; color:#3333FF">Daniel Sanders</span></b></p>
<p class="MsoNormal" style="text-align:justify"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"; color:#3333FF">Leading Software Design Engineer, MIPS Processor IP</span></p>
<p class="MsoNormal" style="text-align:justify"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"; color:#3333FF">Imagination Technologies Limited</span></p>
<p class="MsoNormal" style="text-align:justify"><a href="http://www.imgtec.com/" target="_blank"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"; color:blue">www.imgtec.com</span></a><span style="font-size:10.0pt; font-family:"Arial","sans-serif""></span></p>
<p class="MsoNormal"> </p>
</div>
</div>
</div>
</div>
</body>
</html>