Added some eye-candy for Subtarget type checking
Added X86 StdCall & FastCall calling conventions. Codegen will follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30446 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index bdfa07a..a3ff243 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -1006,6 +1006,7 @@
 %token OPAQUE NOT EXTERNAL TARGET TRIPLE ENDIAN POINTERSIZE LITTLE BIG ALIGN
 %token DEPLIBS CALL TAIL ASM_TOK MODULE SIDEEFFECT
 %token CC_TOK CCC_TOK CSRETCC_TOK FASTCC_TOK COLDCC_TOK
+%token X86_STDCALLCC_TOK X86_FASTCALLCC_TOK
 %type <UIntVal> OptCallingConv
 
 // Basic Block Terminating Operators
@@ -1083,12 +1084,14 @@
              EXTERN_WEAK { $$ = GlobalValue::ExternalWeakLinkage; } |
              /*empty*/   { $$ = GlobalValue::ExternalLinkage; };
 
-OptCallingConv : /*empty*/      { $$ = CallingConv::C; } |
-                 CCC_TOK        { $$ = CallingConv::C; } |
-                 CSRETCC_TOK    { $$ = CallingConv::CSRet; } |
-                 FASTCC_TOK     { $$ = CallingConv::Fast; } |
-                 COLDCC_TOK     { $$ = CallingConv::Cold; } |
-                 CC_TOK EUINT64VAL {
+OptCallingConv : /*empty*/          { $$ = CallingConv::C; } |
+                 CCC_TOK            { $$ = CallingConv::C; } |
+                 CSRETCC_TOK        { $$ = CallingConv::CSRet; } |
+                 FASTCC_TOK         { $$ = CallingConv::Fast; } |
+                 COLDCC_TOK         { $$ = CallingConv::Cold; } |
+                 X86_STDCALLCC_TOK  { $$ = CallingConv::X86_StdCall; } |
+                 X86_FASTCALLCC_TOK { $$ = CallingConv::X86_FastCall; } |
+                 CC_TOK EUINT64VAL  {
                    if ((unsigned)$2 != $2)
                      GEN_ERROR("Calling conv too large!");
                    $$ = $2;