summaryrefslogtreecommitdiffstats
path: root/llvm/lib/AsmParser/llvmAsmParser.y
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2006-09-17 20:25:45 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2006-09-17 20:25:45 +0000
commit6f7072c66a84a26644572efb1a0ba35bb7e70732 (patch)
treec3f37b02038c1aa88e40a67b768f86f21bb1347d /llvm/lib/AsmParser/llvmAsmParser.y
parentf16dc007e652c6d935abef319db8f0cbc9912416 (diff)
downloadbcm5719-llvm-6f7072c66a84a26644572efb1a0ba35bb7e70732.tar.gz
bcm5719-llvm-6f7072c66a84a26644572efb1a0ba35bb7e70732.zip
Added some eye-candy for Subtarget type checking
Added X86 StdCall & FastCall calling conventions. Codegen will follow. llvm-svn: 30446
Diffstat (limited to 'llvm/lib/AsmParser/llvmAsmParser.y')
-rw-r--r--llvm/lib/AsmParser/llvmAsmParser.y15
1 files changed, 9 insertions, 6 deletions
diff --git a/llvm/lib/AsmParser/llvmAsmParser.y b/llvm/lib/AsmParser/llvmAsmParser.y
index bdfa07af437..a3ff24346ba 100644
--- a/llvm/lib/AsmParser/llvmAsmParser.y
+++ b/llvm/lib/AsmParser/llvmAsmParser.y
@@ -1006,6 +1006,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
%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 @@ OptLinkage : INTERNAL { $$ = GlobalValue::InternalLinkage; } |
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;
OpenPOWER on IntegriCloud