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;