[PATCH] [ARM64] Correct more bounds checks/diagnostics for arithmetic shift operands

Tim Northover t.p.northover at gmail.com
Fri May 9 11:17:02 PDT 2014


Hi Bradley,

I've got one question about this one:

================
Comment at: lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp:2476-2478
@@ -2468,3 +2475,5 @@
+  // diagnostics rather than ones different from out of range 32-bit shifts.
   if ((MCE->getValue() & 0x3f) != MCE->getValue()) {
-    Error(ExprLoc, "immediate value too large for shifter operand");
-    return MatchOperand_ParseFail;
+    Operands.push_back(ARM64Operand::CreateShifter(ARM64_AM::InvalidShift, 0, S,
+                                                   E, getContext()));
+  } else {
----------------
What goes wrong if we just add the shift and let the isXYZ methods take care of it? It seems like it might be more consistent way to handle things in general.

http://reviews.llvm.org/D3700






More information about the llvm-commits mailing list