Introduce arch-specific checker tests.

- The '.cfg' output is now created on target.
- Arch-specific checker tests can be created by inserting a
  suffix. For example:
      /// CHECK-START-ARM64: int Main.foo(int) register (after)
      /// CHECK-DAG:   <<Arg:i\d+>>     ParameterValue

Change-Id: I55cdb37f8e806c7ffdde6b676c8f44ac30b59051
diff --git a/tools/checker/checker.py b/tools/checker/checker.py
index 4e516de..bc5e17d 100755
--- a/tools/checker/checker.py
+++ b/tools/checker/checker.py
@@ -17,6 +17,7 @@
 import argparse
 import os
 
+from common.archs                     import archs_list
 from common.logger                    import Logger
 from file_format.c1visualizer.parser  import ParseC1visualizerStream
 from file_format.checker.parser       import ParseCheckerStream
@@ -34,6 +35,8 @@
                       help="print a list of all passes found in the tested file")
   parser.add_argument("--dump-pass", dest="dump_pass", metavar="PASS",
                       help="print a compiler pass dump")
+  parser.add_argument("--arch", dest="arch", choices=archs_list,
+                      help="Run the tests for the specified target architecture.")
   parser.add_argument("-q", "--quiet", action="store_true",
                       help="print only errors")
   return parser.parse_args()
@@ -80,13 +83,13 @@
     Logger.fail("Source path \"" + path + "\" not found")
 
 
-def RunTests(checkPrefix, checkPath, outputFilename):
+def RunTests(checkPrefix, checkPath, outputFilename, targetArch):
   c1File = ParseC1visualizerStream(os.path.basename(outputFilename), open(outputFilename, "r"))
   for checkFilename in FindCheckerFiles(checkPath):
     checkerFile = ParseCheckerStream(os.path.basename(checkFilename),
                                      checkPrefix,
                                      open(checkFilename, "r"))
-    MatchFiles(checkerFile, c1File)
+    MatchFiles(checkerFile, c1File, targetArch)
 
 
 if __name__ == "__main__":
@@ -100,4 +103,4 @@
   elif args.dump_pass:
     DumpPass(args.tested_file, args.dump_pass)
   else:
-    RunTests(args.check_prefix, args.source_path, args.tested_file)
+    RunTests(args.check_prefix, args.source_path, args.tested_file, args.arch)