<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 30, 2015 at 10:13 PM, Craig Topper via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: ctopper<br>
Date: Tue Dec  1 00:13:04 2015<br>
New Revision: 254382<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=254382&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=254382&view=rev</a><br>
Log:<br>
[Hexagon] Use ArrayRef to avoid needing to calculate an array size. Interestingly the original code may have had a bug because it was passing the byte size of a uint16_t array instead of the number of entries.<br>
<br>
Modified:<br>
    llvm/trunk/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp<br>
<br>
Modified: llvm/trunk/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp?rev=254382&r1=254381&r2=254382&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp?rev=254382&r1=254381&r2=254382&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp (original)<br>
+++ llvm/trunk/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp Tue Dec  1 00:13:04 2015<br>
@@ -471,12 +471,13 @@ extern const MCInstrDesc HexagonInsts[];<br>
 }<br>
<br>
 static DecodeStatus DecodeRegisterClass(MCInst &Inst, unsigned RegNo,<br>
-                                        const uint16_t Table[], size_t Size) {<br>
-  if (RegNo < Size) {<br>
+                                        ArrayRef<uint16_t> Table) {<br>
+  if (RegNo < Table.size()) {<br>
     Inst.addOperand(MCOperand::createReg(Table[RegNo]));<br>
     return MCDisassembler::Success;<br>
-  } else<br>
-    return MCDisassembler::Fail;<br>
+  }<br>
+<br>
+  return MCDisassembler::Fail;<br>
 }<br>
<br>
 static DecodeStatus DecodeIntRegsLow8RegisterClass(MCInst &Inst, unsigned RegNo,<br>
@@ -497,8 +498,7 @@ static DecodeStatus DecodeIntRegsRegiste<br>
       Hexagon::R25, Hexagon::R26, Hexagon::R27, Hexagon::R28, Hexagon::R29,<br>
       Hexagon::R30, Hexagon::R31};<br>
<br>
-  return (DecodeRegisterClass(Inst, RegNo, IntRegDecoderTable,<br>
-                              sizeof(IntRegDecoderTable)));<br>
+  return (DecodeRegisterClass(Inst, RegNo, IntRegDecoderTable));<br></blockquote><div><br></div><div>There are extra parens around all these returns - want to drop those, while you're here?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 }<br>
<br>
 static DecodeStatus DecodeVectorRegsRegisterClass(MCInst &Inst, unsigned RegNo,<br>
@@ -513,8 +513,7 @@ static DecodeStatus DecodeVectorRegsRegi<br>
       Hexagon::V25, Hexagon::V26, Hexagon::V27, Hexagon::V28, Hexagon::V29,<br>
       Hexagon::V30, Hexagon::V31};<br>
<br>
-  return (DecodeRegisterClass(Inst, RegNo, VecRegDecoderTable,<br>
-                              sizeof(VecRegDecoderTable)));<br>
+  return (DecodeRegisterClass(Inst, RegNo, VecRegDecoderTable));<br>
 }<br>
<br>
 static DecodeStatus DecodeDoubleRegsRegisterClass(MCInst &Inst, unsigned RegNo,<br>
@@ -526,8 +525,7 @@ static DecodeStatus DecodeDoubleRegsRegi<br>
       Hexagon::D8,  Hexagon::D9,  Hexagon::D10, Hexagon::D11,<br>
       Hexagon::D12, Hexagon::D13, Hexagon::D14, Hexagon::D15};<br>
<br>
-  return (DecodeRegisterClass(Inst, RegNo >> 1, DoubleRegDecoderTable,<br>
-                              sizeof(DoubleRegDecoderTable)));<br>
+  return (DecodeRegisterClass(Inst, RegNo >> 1, DoubleRegDecoderTable));<br>
 }<br>
<br>
 static DecodeStatus DecodeVecDblRegsRegisterClass(MCInst &Inst, unsigned RegNo,<br>
@@ -539,8 +537,7 @@ static DecodeStatus DecodeVecDblRegsRegi<br>
       Hexagon::W8,  Hexagon::W9,  Hexagon::W10, Hexagon::W11,<br>
       Hexagon::W12, Hexagon::W13, Hexagon::W14, Hexagon::W15};<br>
<br>
-  return (DecodeRegisterClass(Inst, RegNo >> 1, VecDblRegDecoderTable,<br>
-                              sizeof(VecDblRegDecoderTable)));<br>
+  return (DecodeRegisterClass(Inst, RegNo >> 1, VecDblRegDecoderTable));<br>
 }<br>
<br>
 static DecodeStatus DecodePredRegsRegisterClass(MCInst &Inst, unsigned RegNo,<br>
@@ -549,8 +546,7 @@ static DecodeStatus DecodePredRegsRegist<br>
   static const uint16_t PredRegDecoderTable[] = {Hexagon::P0, Hexagon::P1,<br>
                                                  Hexagon::P2, Hexagon::P3};<br>
<br>
-  return (DecodeRegisterClass(Inst, RegNo, PredRegDecoderTable,<br>
-                              sizeof(PredRegDecoderTable)));<br>
+  return (DecodeRegisterClass(Inst, RegNo, PredRegDecoderTable));<br>
 }<br>
<br>
 static DecodeStatus DecodeVecPredRegsRegisterClass(MCInst &Inst, unsigned RegNo,<br>
@@ -559,8 +555,7 @@ static DecodeStatus DecodeVecPredRegsReg<br>
   static const uint16_t VecPredRegDecoderTable[] = {Hexagon::Q0, Hexagon::Q1,<br>
                                                     Hexagon::Q2, Hexagon::Q3};<br>
<br>
-  return (DecodeRegisterClass(Inst, RegNo, VecPredRegDecoderTable,<br>
-                              sizeof(VecPredRegDecoderTable)));<br>
+  return (DecodeRegisterClass(Inst, RegNo, VecPredRegDecoderTable));<br>
 }<br>
<br>
 static DecodeStatus DecodeCtrRegsRegisterClass(MCInst &Inst, unsigned RegNo,<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>