mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35813 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
460dd9b644
commit
7b5d466c88
@ -869,7 +869,7 @@ goto find_rule; \
|
||||
#define YY_MORE_ADJ 0
|
||||
#define YY_RESTORE_YY_MORE_OFFSET
|
||||
char *yytext;
|
||||
#line 1 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 1 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
#define INITIAL 0
|
||||
/*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
|
||||
//
|
||||
@ -884,7 +884,7 @@ char *yytext;
|
||||
//
|
||||
//===----------------------------------------------------------------------===*/
|
||||
#define YY_NEVER_INTERACTIVE 1
|
||||
#line 28 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 28 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
#include "ParserInternals.h"
|
||||
#include "llvm/Module.h"
|
||||
#include <list>
|
||||
@ -1168,7 +1168,7 @@ YY_DECL
|
||||
register char *yy_cp = NULL, *yy_bp = NULL;
|
||||
register int yy_act;
|
||||
|
||||
#line 190 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 190 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
|
||||
|
||||
#line 1175 "Lexer.cpp"
|
||||
@ -1264,257 +1264,257 @@ do_action: /* This label is used only to access EOF actions. */
|
||||
{ /* beginning of action switch */
|
||||
case 1:
|
||||
YY_RULE_SETUP
|
||||
#line 192 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 192 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ /* Ignore comments for now */ }
|
||||
YY_BREAK
|
||||
case 2:
|
||||
YY_RULE_SETUP
|
||||
#line 194 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 194 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return BEGINTOK; }
|
||||
YY_BREAK
|
||||
case 3:
|
||||
YY_RULE_SETUP
|
||||
#line 195 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 195 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return ENDTOK; }
|
||||
YY_BREAK
|
||||
case 4:
|
||||
YY_RULE_SETUP
|
||||
#line 196 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 196 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return TRUETOK; }
|
||||
YY_BREAK
|
||||
case 5:
|
||||
YY_RULE_SETUP
|
||||
#line 197 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 197 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return FALSETOK; }
|
||||
YY_BREAK
|
||||
case 6:
|
||||
YY_RULE_SETUP
|
||||
#line 198 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 198 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return DECLARE; }
|
||||
YY_BREAK
|
||||
case 7:
|
||||
YY_RULE_SETUP
|
||||
#line 199 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 199 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return DEFINE; }
|
||||
YY_BREAK
|
||||
case 8:
|
||||
YY_RULE_SETUP
|
||||
#line 200 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 200 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return GLOBAL; }
|
||||
YY_BREAK
|
||||
case 9:
|
||||
YY_RULE_SETUP
|
||||
#line 201 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 201 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return CONSTANT; }
|
||||
YY_BREAK
|
||||
case 10:
|
||||
YY_RULE_SETUP
|
||||
#line 202 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 202 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return INTERNAL; }
|
||||
YY_BREAK
|
||||
case 11:
|
||||
YY_RULE_SETUP
|
||||
#line 203 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 203 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return LINKONCE; }
|
||||
YY_BREAK
|
||||
case 12:
|
||||
YY_RULE_SETUP
|
||||
#line 204 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 204 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return WEAK; }
|
||||
YY_BREAK
|
||||
case 13:
|
||||
YY_RULE_SETUP
|
||||
#line 205 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 205 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return APPENDING; }
|
||||
YY_BREAK
|
||||
case 14:
|
||||
YY_RULE_SETUP
|
||||
#line 206 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 206 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return DLLIMPORT; }
|
||||
YY_BREAK
|
||||
case 15:
|
||||
YY_RULE_SETUP
|
||||
#line 207 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 207 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return DLLEXPORT; }
|
||||
YY_BREAK
|
||||
case 16:
|
||||
YY_RULE_SETUP
|
||||
#line 208 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 208 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return HIDDEN; }
|
||||
YY_BREAK
|
||||
case 17:
|
||||
YY_RULE_SETUP
|
||||
#line 209 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 209 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return EXTERN_WEAK; }
|
||||
YY_BREAK
|
||||
case 18:
|
||||
YY_RULE_SETUP
|
||||
#line 210 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 210 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return EXTERNAL; }
|
||||
YY_BREAK
|
||||
case 19:
|
||||
YY_RULE_SETUP
|
||||
#line 211 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 211 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return ZEROINITIALIZER; }
|
||||
YY_BREAK
|
||||
case 20:
|
||||
YY_RULE_SETUP
|
||||
#line 212 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 212 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return DOTDOTDOT; }
|
||||
YY_BREAK
|
||||
case 21:
|
||||
YY_RULE_SETUP
|
||||
#line 213 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 213 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return UNDEF; }
|
||||
YY_BREAK
|
||||
case 22:
|
||||
YY_RULE_SETUP
|
||||
#line 214 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 214 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return NULL_TOK; }
|
||||
YY_BREAK
|
||||
case 23:
|
||||
YY_RULE_SETUP
|
||||
#line 215 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 215 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return TO; }
|
||||
YY_BREAK
|
||||
case 24:
|
||||
YY_RULE_SETUP
|
||||
#line 216 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 216 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return TAIL; }
|
||||
YY_BREAK
|
||||
case 25:
|
||||
YY_RULE_SETUP
|
||||
#line 217 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 217 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return TARGET; }
|
||||
YY_BREAK
|
||||
case 26:
|
||||
YY_RULE_SETUP
|
||||
#line 218 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 218 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return TRIPLE; }
|
||||
YY_BREAK
|
||||
case 27:
|
||||
YY_RULE_SETUP
|
||||
#line 219 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 219 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return DEPLIBS; }
|
||||
YY_BREAK
|
||||
case 28:
|
||||
YY_RULE_SETUP
|
||||
#line 220 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 220 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return DATALAYOUT; }
|
||||
YY_BREAK
|
||||
case 29:
|
||||
YY_RULE_SETUP
|
||||
#line 221 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 221 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return VOLATILE; }
|
||||
YY_BREAK
|
||||
case 30:
|
||||
YY_RULE_SETUP
|
||||
#line 222 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 222 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return ALIGN; }
|
||||
YY_BREAK
|
||||
case 31:
|
||||
YY_RULE_SETUP
|
||||
#line 223 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 223 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return SECTION; }
|
||||
YY_BREAK
|
||||
case 32:
|
||||
YY_RULE_SETUP
|
||||
#line 224 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 224 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return MODULE; }
|
||||
YY_BREAK
|
||||
case 33:
|
||||
YY_RULE_SETUP
|
||||
#line 225 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 225 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return ASM_TOK; }
|
||||
YY_BREAK
|
||||
case 34:
|
||||
YY_RULE_SETUP
|
||||
#line 226 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 226 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return SIDEEFFECT; }
|
||||
YY_BREAK
|
||||
case 35:
|
||||
YY_RULE_SETUP
|
||||
#line 228 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 228 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return CC_TOK; }
|
||||
YY_BREAK
|
||||
case 36:
|
||||
YY_RULE_SETUP
|
||||
#line 229 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 229 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return CCC_TOK; }
|
||||
YY_BREAK
|
||||
case 37:
|
||||
YY_RULE_SETUP
|
||||
#line 230 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 230 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return FASTCC_TOK; }
|
||||
YY_BREAK
|
||||
case 38:
|
||||
YY_RULE_SETUP
|
||||
#line 231 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 231 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return COLDCC_TOK; }
|
||||
YY_BREAK
|
||||
case 39:
|
||||
YY_RULE_SETUP
|
||||
#line 232 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 232 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return X86_STDCALLCC_TOK; }
|
||||
YY_BREAK
|
||||
case 40:
|
||||
YY_RULE_SETUP
|
||||
#line 233 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 233 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return X86_FASTCALLCC_TOK; }
|
||||
YY_BREAK
|
||||
case 41:
|
||||
YY_RULE_SETUP
|
||||
#line 235 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 235 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return INREG; }
|
||||
YY_BREAK
|
||||
case 42:
|
||||
YY_RULE_SETUP
|
||||
#line 236 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 236 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return SRET; }
|
||||
YY_BREAK
|
||||
case 43:
|
||||
YY_RULE_SETUP
|
||||
#line 237 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 237 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return NOUNWIND; }
|
||||
YY_BREAK
|
||||
case 44:
|
||||
YY_RULE_SETUP
|
||||
#line 238 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 238 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return NORETURN; }
|
||||
YY_BREAK
|
||||
case 45:
|
||||
YY_RULE_SETUP
|
||||
#line 240 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 240 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TY(Type::VoidTy, VOID); }
|
||||
YY_BREAK
|
||||
case 46:
|
||||
YY_RULE_SETUP
|
||||
#line 241 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 241 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TY(Type::FloatTy, FLOAT); }
|
||||
YY_BREAK
|
||||
case 47:
|
||||
YY_RULE_SETUP
|
||||
#line 242 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 242 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TY(Type::DoubleTy,DOUBLE);}
|
||||
YY_BREAK
|
||||
case 48:
|
||||
YY_RULE_SETUP
|
||||
#line 243 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 243 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TY(Type::LabelTy, LABEL); }
|
||||
YY_BREAK
|
||||
case 49:
|
||||
YY_RULE_SETUP
|
||||
#line 244 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 244 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return TYPE; }
|
||||
YY_BREAK
|
||||
case 50:
|
||||
YY_RULE_SETUP
|
||||
#line 245 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 245 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return OPAQUE; }
|
||||
YY_BREAK
|
||||
case 51:
|
||||
YY_RULE_SETUP
|
||||
#line 246 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 246 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ uint64_t NumBits = atoull(yytext+1);
|
||||
if (NumBits < IntegerType::MIN_INT_BITS ||
|
||||
NumBits > IntegerType::MAX_INT_BITS)
|
||||
@ -1525,347 +1525,347 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 52:
|
||||
YY_RULE_SETUP
|
||||
#line 254 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 254 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, Add, ADD); }
|
||||
YY_BREAK
|
||||
case 53:
|
||||
YY_RULE_SETUP
|
||||
#line 255 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 255 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, Sub, SUB); }
|
||||
YY_BREAK
|
||||
case 54:
|
||||
YY_RULE_SETUP
|
||||
#line 256 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 256 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, Mul, MUL); }
|
||||
YY_BREAK
|
||||
case 55:
|
||||
YY_RULE_SETUP
|
||||
#line 257 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 257 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, UDiv, UDIV); }
|
||||
YY_BREAK
|
||||
case 56:
|
||||
YY_RULE_SETUP
|
||||
#line 258 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 258 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, SDiv, SDIV); }
|
||||
YY_BREAK
|
||||
case 57:
|
||||
YY_RULE_SETUP
|
||||
#line 259 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 259 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, FDiv, FDIV); }
|
||||
YY_BREAK
|
||||
case 58:
|
||||
YY_RULE_SETUP
|
||||
#line 260 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 260 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, URem, UREM); }
|
||||
YY_BREAK
|
||||
case 59:
|
||||
YY_RULE_SETUP
|
||||
#line 261 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 261 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, SRem, SREM); }
|
||||
YY_BREAK
|
||||
case 60:
|
||||
YY_RULE_SETUP
|
||||
#line 262 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 262 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, FRem, FREM); }
|
||||
YY_BREAK
|
||||
case 61:
|
||||
YY_RULE_SETUP
|
||||
#line 263 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 263 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, Shl, SHL); }
|
||||
YY_BREAK
|
||||
case 62:
|
||||
YY_RULE_SETUP
|
||||
#line 264 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 264 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, LShr, LSHR); }
|
||||
YY_BREAK
|
||||
case 63:
|
||||
YY_RULE_SETUP
|
||||
#line 265 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 265 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, AShr, ASHR); }
|
||||
YY_BREAK
|
||||
case 64:
|
||||
YY_RULE_SETUP
|
||||
#line 266 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 266 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, And, AND); }
|
||||
YY_BREAK
|
||||
case 65:
|
||||
YY_RULE_SETUP
|
||||
#line 267 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 267 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, Or , OR ); }
|
||||
YY_BREAK
|
||||
case 66:
|
||||
YY_RULE_SETUP
|
||||
#line 268 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 268 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(BinaryOpVal, Xor, XOR); }
|
||||
YY_BREAK
|
||||
case 67:
|
||||
YY_RULE_SETUP
|
||||
#line 269 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 269 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(OtherOpVal, ICmp, ICMP); }
|
||||
YY_BREAK
|
||||
case 68:
|
||||
YY_RULE_SETUP
|
||||
#line 270 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 270 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(OtherOpVal, FCmp, FCMP); }
|
||||
YY_BREAK
|
||||
case 69:
|
||||
YY_RULE_SETUP
|
||||
#line 272 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 272 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return EQ; }
|
||||
YY_BREAK
|
||||
case 70:
|
||||
YY_RULE_SETUP
|
||||
#line 273 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 273 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return NE; }
|
||||
YY_BREAK
|
||||
case 71:
|
||||
YY_RULE_SETUP
|
||||
#line 274 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 274 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return SLT; }
|
||||
YY_BREAK
|
||||
case 72:
|
||||
YY_RULE_SETUP
|
||||
#line 275 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 275 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return SGT; }
|
||||
YY_BREAK
|
||||
case 73:
|
||||
YY_RULE_SETUP
|
||||
#line 276 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 276 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return SLE; }
|
||||
YY_BREAK
|
||||
case 74:
|
||||
YY_RULE_SETUP
|
||||
#line 277 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 277 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return SGE; }
|
||||
YY_BREAK
|
||||
case 75:
|
||||
YY_RULE_SETUP
|
||||
#line 278 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 278 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return ULT; }
|
||||
YY_BREAK
|
||||
case 76:
|
||||
YY_RULE_SETUP
|
||||
#line 279 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 279 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return UGT; }
|
||||
YY_BREAK
|
||||
case 77:
|
||||
YY_RULE_SETUP
|
||||
#line 280 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 280 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return ULE; }
|
||||
YY_BREAK
|
||||
case 78:
|
||||
YY_RULE_SETUP
|
||||
#line 281 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 281 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return UGE; }
|
||||
YY_BREAK
|
||||
case 79:
|
||||
YY_RULE_SETUP
|
||||
#line 282 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 282 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return OEQ; }
|
||||
YY_BREAK
|
||||
case 80:
|
||||
YY_RULE_SETUP
|
||||
#line 283 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 283 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return ONE; }
|
||||
YY_BREAK
|
||||
case 81:
|
||||
YY_RULE_SETUP
|
||||
#line 284 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 284 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return OLT; }
|
||||
YY_BREAK
|
||||
case 82:
|
||||
YY_RULE_SETUP
|
||||
#line 285 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 285 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return OGT; }
|
||||
YY_BREAK
|
||||
case 83:
|
||||
YY_RULE_SETUP
|
||||
#line 286 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 286 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return OLE; }
|
||||
YY_BREAK
|
||||
case 84:
|
||||
YY_RULE_SETUP
|
||||
#line 287 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 287 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return OGE; }
|
||||
YY_BREAK
|
||||
case 85:
|
||||
YY_RULE_SETUP
|
||||
#line 288 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 288 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return ORD; }
|
||||
YY_BREAK
|
||||
case 86:
|
||||
YY_RULE_SETUP
|
||||
#line 289 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 289 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return UNO; }
|
||||
YY_BREAK
|
||||
case 87:
|
||||
YY_RULE_SETUP
|
||||
#line 290 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 290 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return UEQ; }
|
||||
YY_BREAK
|
||||
case 88:
|
||||
YY_RULE_SETUP
|
||||
#line 291 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 291 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return UNE; }
|
||||
YY_BREAK
|
||||
case 89:
|
||||
YY_RULE_SETUP
|
||||
#line 293 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 293 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
|
||||
YY_BREAK
|
||||
case 90:
|
||||
YY_RULE_SETUP
|
||||
#line 294 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 294 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(OtherOpVal, Call, CALL); }
|
||||
YY_BREAK
|
||||
case 91:
|
||||
YY_RULE_SETUP
|
||||
#line 295 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 295 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(CastOpVal, Trunc, TRUNC); }
|
||||
YY_BREAK
|
||||
case 92:
|
||||
YY_RULE_SETUP
|
||||
#line 296 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 296 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(CastOpVal, ZExt, ZEXT); }
|
||||
YY_BREAK
|
||||
case 93:
|
||||
YY_RULE_SETUP
|
||||
#line 297 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 297 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(CastOpVal, SExt, SEXT); }
|
||||
YY_BREAK
|
||||
case 94:
|
||||
YY_RULE_SETUP
|
||||
#line 298 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 298 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
|
||||
YY_BREAK
|
||||
case 95:
|
||||
YY_RULE_SETUP
|
||||
#line 299 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 299 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(CastOpVal, FPExt, FPEXT); }
|
||||
YY_BREAK
|
||||
case 96:
|
||||
YY_RULE_SETUP
|
||||
#line 300 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 300 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(CastOpVal, UIToFP, UITOFP); }
|
||||
YY_BREAK
|
||||
case 97:
|
||||
YY_RULE_SETUP
|
||||
#line 301 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 301 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(CastOpVal, SIToFP, SITOFP); }
|
||||
YY_BREAK
|
||||
case 98:
|
||||
YY_RULE_SETUP
|
||||
#line 302 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 302 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(CastOpVal, FPToUI, FPTOUI); }
|
||||
YY_BREAK
|
||||
case 99:
|
||||
YY_RULE_SETUP
|
||||
#line 303 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 303 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(CastOpVal, FPToSI, FPTOSI); }
|
||||
YY_BREAK
|
||||
case 100:
|
||||
YY_RULE_SETUP
|
||||
#line 304 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 304 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(CastOpVal, IntToPtr, INTTOPTR); }
|
||||
YY_BREAK
|
||||
case 101:
|
||||
YY_RULE_SETUP
|
||||
#line 305 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 305 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
|
||||
YY_BREAK
|
||||
case 102:
|
||||
YY_RULE_SETUP
|
||||
#line 306 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 306 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(CastOpVal, BitCast, BITCAST); }
|
||||
YY_BREAK
|
||||
case 103:
|
||||
YY_RULE_SETUP
|
||||
#line 307 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 307 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(OtherOpVal, Select, SELECT); }
|
||||
YY_BREAK
|
||||
case 104:
|
||||
YY_RULE_SETUP
|
||||
#line 308 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 308 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(OtherOpVal, VAArg , VAARG); }
|
||||
YY_BREAK
|
||||
case 105:
|
||||
YY_RULE_SETUP
|
||||
#line 309 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 309 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(TermOpVal, Ret, RET); }
|
||||
YY_BREAK
|
||||
case 106:
|
||||
YY_RULE_SETUP
|
||||
#line 310 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 310 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(TermOpVal, Br, BR); }
|
||||
YY_BREAK
|
||||
case 107:
|
||||
YY_RULE_SETUP
|
||||
#line 311 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 311 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(TermOpVal, Switch, SWITCH); }
|
||||
YY_BREAK
|
||||
case 108:
|
||||
YY_RULE_SETUP
|
||||
#line 312 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 312 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(TermOpVal, Invoke, INVOKE); }
|
||||
YY_BREAK
|
||||
case 109:
|
||||
YY_RULE_SETUP
|
||||
#line 313 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 313 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(TermOpVal, Unwind, UNWIND); }
|
||||
YY_BREAK
|
||||
case 110:
|
||||
YY_RULE_SETUP
|
||||
#line 314 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 314 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
|
||||
YY_BREAK
|
||||
case 111:
|
||||
YY_RULE_SETUP
|
||||
#line 316 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 316 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(MemOpVal, Malloc, MALLOC); }
|
||||
YY_BREAK
|
||||
case 112:
|
||||
YY_RULE_SETUP
|
||||
#line 317 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 317 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
|
||||
YY_BREAK
|
||||
case 113:
|
||||
YY_RULE_SETUP
|
||||
#line 318 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 318 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(MemOpVal, Free, FREE); }
|
||||
YY_BREAK
|
||||
case 114:
|
||||
YY_RULE_SETUP
|
||||
#line 319 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 319 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(MemOpVal, Load, LOAD); }
|
||||
YY_BREAK
|
||||
case 115:
|
||||
YY_RULE_SETUP
|
||||
#line 320 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 320 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(MemOpVal, Store, STORE); }
|
||||
YY_BREAK
|
||||
case 116:
|
||||
YY_RULE_SETUP
|
||||
#line 321 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 321 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
|
||||
YY_BREAK
|
||||
case 117:
|
||||
YY_RULE_SETUP
|
||||
#line 323 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 323 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
|
||||
YY_BREAK
|
||||
case 118:
|
||||
YY_RULE_SETUP
|
||||
#line 324 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 324 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
|
||||
YY_BREAK
|
||||
case 119:
|
||||
YY_RULE_SETUP
|
||||
#line 325 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 325 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
|
||||
YY_BREAK
|
||||
case 120:
|
||||
YY_RULE_SETUP
|
||||
#line 328 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 328 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{
|
||||
UnEscapeLexed(yytext+1);
|
||||
llvmAsmlval.StrVal = strdup(yytext+1); // Skip %
|
||||
@ -1874,7 +1874,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 121:
|
||||
YY_RULE_SETUP
|
||||
#line 333 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 333 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{
|
||||
UnEscapeLexed(yytext+1);
|
||||
llvmAsmlval.StrVal = strdup(yytext+1); // Skip @
|
||||
@ -1883,7 +1883,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 122:
|
||||
YY_RULE_SETUP
|
||||
#line 338 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 338 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{
|
||||
yytext[strlen(yytext)-1] = 0; // nuke colon
|
||||
UnEscapeLexed(yytext);
|
||||
@ -1893,7 +1893,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 123:
|
||||
YY_RULE_SETUP
|
||||
#line 344 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 344 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{
|
||||
yytext[strlen(yytext)-2] = 0; // nuke colon, end quote
|
||||
UnEscapeLexed(yytext+1);
|
||||
@ -1903,7 +1903,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 124:
|
||||
YY_RULE_SETUP
|
||||
#line 351 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 351 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ // Note that we cannot unescape a string constant here! The
|
||||
// string constant might contain a \00 which would not be
|
||||
// understood by the string stuff. It is valid to make a
|
||||
@ -1916,7 +1916,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 125:
|
||||
YY_RULE_SETUP
|
||||
#line 360 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 360 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{
|
||||
yytext[strlen(yytext)-1] = 0; // nuke end quote
|
||||
llvmAsmlval.StrVal = strdup(yytext+2); // Nuke @, quote
|
||||
@ -1925,7 +1925,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 126:
|
||||
YY_RULE_SETUP
|
||||
#line 366 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 366 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ int len = strlen(yytext);
|
||||
uint32_t numBits = ((len * 64) / 19) + 1;
|
||||
APInt Tmp(numBits, yytext, len, 10);
|
||||
@ -1943,7 +1943,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 127:
|
||||
YY_RULE_SETUP
|
||||
#line 380 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 380 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ int len = strlen(yytext);
|
||||
uint32_t numBits = (((len-1) * 64) / 19) + 2;
|
||||
APInt Tmp(numBits, yytext, len, 10);
|
||||
@ -1961,7 +1961,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 128:
|
||||
YY_RULE_SETUP
|
||||
#line 395 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 395 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ int len = strlen(yytext+3) - 3;
|
||||
uint32_t bits = len * 4;
|
||||
APInt Tmp(bits, yytext+3, len, 16);
|
||||
@ -1982,7 +1982,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 129:
|
||||
YY_RULE_SETUP
|
||||
#line 413 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 413 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{
|
||||
uint64_t Val = atoull(yytext+1);
|
||||
if ((unsigned)Val != Val)
|
||||
@ -1993,7 +1993,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 130:
|
||||
YY_RULE_SETUP
|
||||
#line 420 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 420 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{
|
||||
uint64_t Val = atoull(yytext+1);
|
||||
if ((unsigned)Val != Val)
|
||||
@ -2004,16 +2004,16 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 131:
|
||||
YY_RULE_SETUP
|
||||
#line 428 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 428 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
|
||||
YY_BREAK
|
||||
case 132:
|
||||
YY_RULE_SETUP
|
||||
#line 429 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 429 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
|
||||
YY_BREAK
|
||||
case YY_STATE_EOF(INITIAL):
|
||||
#line 431 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 431 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{
|
||||
/* Make sure to free the internal buffers for flex when we are
|
||||
* done reading our input!
|
||||
@ -2024,17 +2024,17 @@ case YY_STATE_EOF(INITIAL):
|
||||
YY_BREAK
|
||||
case 133:
|
||||
YY_RULE_SETUP
|
||||
#line 439 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 439 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ /* Ignore whitespace */ }
|
||||
YY_BREAK
|
||||
case 134:
|
||||
YY_RULE_SETUP
|
||||
#line 440 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 440 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
{ return yytext[0]; }
|
||||
YY_BREAK
|
||||
case 135:
|
||||
YY_RULE_SETUP
|
||||
#line 442 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 442 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
YY_FATAL_ERROR( "flex scanner jammed" );
|
||||
YY_BREAK
|
||||
#line 2041 "Lexer.cpp"
|
||||
@ -2915,5 +2915,5 @@ int main()
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#line 442 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
|
||||
#line 442 "/proj/llvm/llvm-1/lib/AsmParser/Lexer.l"
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -299,7 +299,7 @@
|
||||
|
||||
|
||||
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
|
||||
#line 939 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
|
||||
#line 937 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
|
||||
typedef union YYSTYPE {
|
||||
llvm::Module *ModuleVal;
|
||||
llvm::Function *FunctionVal;
|
||||
@ -326,7 +326,7 @@ typedef union YYSTYPE {
|
||||
|
||||
llvm::GlobalValue::LinkageTypes Linkage;
|
||||
llvm::GlobalValue::VisibilityTypes Visibility;
|
||||
llvm::FunctionType::ParameterAttributes ParamAttrs;
|
||||
uint16_t ParamAttrs;
|
||||
llvm::APInt *APIntVal;
|
||||
int64_t SInt64Val;
|
||||
uint64_t UInt64Val;
|
||||
|
@ -200,8 +200,6 @@ static struct PerModuleInfo {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
} CurModule;
|
||||
|
||||
static struct PerFunctionInfo {
|
||||
@ -962,7 +960,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
|
||||
|
||||
llvm::GlobalValue::LinkageTypes Linkage;
|
||||
llvm::GlobalValue::VisibilityTypes Visibility;
|
||||
llvm::FunctionType::ParameterAttributes ParamAttrs;
|
||||
uint16_t ParamAttrs;
|
||||
llvm::APInt *APIntVal;
|
||||
int64_t SInt64Val;
|
||||
uint64_t UInt64Val;
|
||||
@ -1191,26 +1189,26 @@ OptCallingConv : /*empty*/ { $$ = CallingConv::C; } |
|
||||
CHECK_FOR_ERROR
|
||||
};
|
||||
|
||||
ParamAttr : ZEXT { $$ = FunctionType::ZExtAttribute; }
|
||||
| SEXT { $$ = FunctionType::SExtAttribute; }
|
||||
| INREG { $$ = FunctionType::InRegAttribute; }
|
||||
| SRET { $$ = FunctionType::StructRetAttribute; }
|
||||
ParamAttr : ZEXT { $$ = ZExtAttribute; }
|
||||
| SEXT { $$ = SExtAttribute; }
|
||||
| INREG { $$ = InRegAttribute; }
|
||||
| SRET { $$ = StructRetAttribute; }
|
||||
;
|
||||
|
||||
OptParamAttrs : /* empty */ { $$ = FunctionType::NoAttributeSet; }
|
||||
OptParamAttrs : /* empty */ { $$ = NoAttributeSet; }
|
||||
| OptParamAttrs ParamAttr {
|
||||
$$ = FunctionType::ParameterAttributes($1 | $2);
|
||||
$$ = $1 | $2;
|
||||
}
|
||||
;
|
||||
|
||||
FuncAttr : NORETURN { $$ = FunctionType::NoReturnAttribute; }
|
||||
| NOUNWIND { $$ = FunctionType::NoUnwindAttribute; }
|
||||
FuncAttr : NORETURN { $$ = NoReturnAttribute; }
|
||||
| NOUNWIND { $$ = NoUnwindAttribute; }
|
||||
| ParamAttr
|
||||
;
|
||||
|
||||
OptFuncAttrs : /* empty */ { $$ = FunctionType::NoAttributeSet; }
|
||||
OptFuncAttrs : /* empty */ { $$ = NoAttributeSet; }
|
||||
| OptFuncAttrs FuncAttr {
|
||||
$$ = FunctionType::ParameterAttributes($1 | $2);
|
||||
$$ = $1 | $2;
|
||||
}
|
||||
;
|
||||
|
||||
@ -1299,18 +1297,25 @@ Types
|
||||
}
|
||||
| Types '(' ArgTypeListI ')' OptFuncAttrs {
|
||||
std::vector<const Type*> Params;
|
||||
std::vector<FunctionType::ParameterAttributes> Attrs;
|
||||
Attrs.push_back($5);
|
||||
for (TypeWithAttrsList::iterator I=$3->begin(), E=$3->end(); I != E; ++I) {
|
||||
ParamAttrsList Attrs;
|
||||
if ($5 != NoAttributeSet)
|
||||
Attrs.addAttributes(0, $5);
|
||||
unsigned index = 1;
|
||||
TypeWithAttrsList::iterator I = $3->begin(), E = $3->end();
|
||||
for (; I != E; ++I, ++index) {
|
||||
const Type *Ty = I->Ty->get();
|
||||
Params.push_back(Ty);
|
||||
if (Ty != Type::VoidTy)
|
||||
Attrs.push_back(I->Attrs);
|
||||
if (I->Attrs != NoAttributeSet)
|
||||
Attrs.addAttributes(index, I->Attrs);
|
||||
}
|
||||
bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
|
||||
if (isVarArg) Params.pop_back();
|
||||
|
||||
FunctionType *FT = FunctionType::get(*$1, Params, isVarArg, Attrs);
|
||||
ParamAttrsList *ActualAttrs = 0;
|
||||
if (!Attrs.empty())
|
||||
ActualAttrs = new ParamAttrsList(Attrs);
|
||||
FunctionType *FT = FunctionType::get(*$1, Params, isVarArg, ActualAttrs);
|
||||
delete $3; // Delete the argument list
|
||||
delete $1; // Delete the return type handle
|
||||
$$ = new PATypeHolder(HandleUpRefs(FT));
|
||||
@ -1318,18 +1323,26 @@ Types
|
||||
}
|
||||
| VOID '(' ArgTypeListI ')' OptFuncAttrs {
|
||||
std::vector<const Type*> Params;
|
||||
std::vector<FunctionType::ParameterAttributes> Attrs;
|
||||
Attrs.push_back($5);
|
||||
for (TypeWithAttrsList::iterator I=$3->begin(), E=$3->end(); I != E; ++I) {
|
||||
ParamAttrsList Attrs;
|
||||
if ($5 != NoAttributeSet)
|
||||
Attrs.addAttributes(0, $5);
|
||||
TypeWithAttrsList::iterator I = $3->begin(), E = $3->end();
|
||||
unsigned index = 1;
|
||||
for ( ; I != E; ++I, ++index) {
|
||||
const Type* Ty = I->Ty->get();
|
||||
Params.push_back(Ty);
|
||||
if (Ty != Type::VoidTy)
|
||||
Attrs.push_back(I->Attrs);
|
||||
if (I->Attrs != NoAttributeSet)
|
||||
Attrs.addAttributes(index, I->Attrs);
|
||||
}
|
||||
bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
|
||||
if (isVarArg) Params.pop_back();
|
||||
|
||||
FunctionType *FT = FunctionType::get($1, Params, isVarArg, Attrs);
|
||||
ParamAttrsList *ActualAttrs = 0;
|
||||
if (!Attrs.empty())
|
||||
ActualAttrs = new ParamAttrsList(Attrs);
|
||||
|
||||
FunctionType *FT = FunctionType::get($1, Params, isVarArg, ActualAttrs);
|
||||
delete $3; // Delete the argument list
|
||||
$$ = new PATypeHolder(HandleUpRefs(FT));
|
||||
CHECK_FOR_ERROR
|
||||
@ -1417,14 +1430,14 @@ ArgTypeListI
|
||||
: ArgTypeList
|
||||
| ArgTypeList ',' DOTDOTDOT {
|
||||
$$=$1;
|
||||
TypeWithAttrs TWA; TWA.Attrs = FunctionType::NoAttributeSet;
|
||||
TypeWithAttrs TWA; TWA.Attrs = NoAttributeSet;
|
||||
TWA.Ty = new PATypeHolder(Type::VoidTy);
|
||||
$$->push_back(TWA);
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
| DOTDOTDOT {
|
||||
$$ = new TypeWithAttrsList;
|
||||
TypeWithAttrs TWA; TWA.Attrs = FunctionType::NoAttributeSet;
|
||||
TypeWithAttrs TWA; TWA.Attrs = NoAttributeSet;
|
||||
TWA.Ty = new PATypeHolder(Type::VoidTy);
|
||||
$$->push_back(TWA);
|
||||
CHECK_FOR_ERROR
|
||||
@ -2087,7 +2100,7 @@ ArgList : ArgListH {
|
||||
struct ArgListEntry E;
|
||||
E.Ty = new PATypeHolder(Type::VoidTy);
|
||||
E.Name = 0;
|
||||
E.Attrs = FunctionType::NoAttributeSet;
|
||||
E.Attrs = NoAttributeSet;
|
||||
$$->push_back(E);
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
@ -2096,7 +2109,7 @@ ArgList : ArgListH {
|
||||
struct ArgListEntry E;
|
||||
E.Ty = new PATypeHolder(Type::VoidTy);
|
||||
E.Name = 0;
|
||||
E.Attrs = FunctionType::NoAttributeSet;
|
||||
E.Attrs = NoAttributeSet;
|
||||
$$->push_back(E);
|
||||
CHECK_FOR_ERROR
|
||||
}
|
||||
@ -2117,24 +2130,31 @@ FunctionHeaderH : OptCallingConv ResultTypes GlobalName '(' ArgList ')'
|
||||
GEN_ERROR("Reference to abstract result: "+ $2->get()->getDescription());
|
||||
|
||||
std::vector<const Type*> ParamTypeList;
|
||||
std::vector<FunctionType::ParameterAttributes> ParamAttrs;
|
||||
ParamAttrs.push_back($7);
|
||||
ParamAttrsList ParamAttrs;
|
||||
if ($7 != NoAttributeSet)
|
||||
ParamAttrs.addAttributes(0, $7);
|
||||
if ($5) { // If there are arguments...
|
||||
for (ArgListType::iterator I = $5->begin(); I != $5->end(); ++I) {
|
||||
unsigned index = 1;
|
||||
for (ArgListType::iterator I = $5->begin(); I != $5->end(); ++I, ++index) {
|
||||
const Type* Ty = I->Ty->get();
|
||||
if (!CurFun.isDeclare && CurModule.TypeIsUnresolved(I->Ty))
|
||||
GEN_ERROR("Reference to abstract argument: " + Ty->getDescription());
|
||||
ParamTypeList.push_back(Ty);
|
||||
if (Ty != Type::VoidTy)
|
||||
ParamAttrs.push_back(I->Attrs);
|
||||
if (I->Attrs != NoAttributeSet)
|
||||
ParamAttrs.addAttributes(index, I->Attrs);
|
||||
}
|
||||
}
|
||||
|
||||
bool isVarArg = ParamTypeList.size() && ParamTypeList.back() == Type::VoidTy;
|
||||
if (isVarArg) ParamTypeList.pop_back();
|
||||
|
||||
FunctionType *FT = FunctionType::get(*$2, ParamTypeList, isVarArg,
|
||||
ParamAttrs);
|
||||
ParamAttrsList *ActualAttrs = 0;
|
||||
if (!ParamAttrs.empty())
|
||||
ActualAttrs = new ParamAttrsList(ParamAttrs);
|
||||
|
||||
FunctionType *FT = FunctionType::get(*$2, ParamTypeList, isVarArg,
|
||||
ActualAttrs);
|
||||
const PointerType *PFT = PointerType::get(FT);
|
||||
delete $2;
|
||||
|
||||
@ -2465,17 +2485,24 @@ BBTerminatorInst : RET ResolvedVal { // Return with a result...
|
||||
!(Ty = dyn_cast<FunctionType>(PFTy->getElementType()))) {
|
||||
// Pull out the types of all of the arguments...
|
||||
std::vector<const Type*> ParamTypes;
|
||||
FunctionType::ParamAttrsList ParamAttrs;
|
||||
ParamAttrs.push_back($8);
|
||||
for (ValueRefList::iterator I = $6->begin(), E = $6->end(); I != E; ++I) {
|
||||
ParamAttrsList ParamAttrs;
|
||||
if ($8 != NoAttributeSet)
|
||||
ParamAttrs.addAttributes(0, $8);
|
||||
ValueRefList::iterator I = $6->begin(), E = $6->end();
|
||||
unsigned index = 1;
|
||||
for (; I != E; ++I, ++index) {
|
||||
const Type *Ty = I->Val->getType();
|
||||
if (Ty == Type::VoidTy)
|
||||
GEN_ERROR("Short call syntax cannot be used with varargs");
|
||||
ParamTypes.push_back(Ty);
|
||||
ParamAttrs.push_back(I->Attrs);
|
||||
if (I->Attrs != NoAttributeSet)
|
||||
ParamAttrs.addAttributes(index, I->Attrs);
|
||||
}
|
||||
|
||||
Ty = FunctionType::get($3->get(), ParamTypes, false, ParamAttrs);
|
||||
ParamAttrsList *Attrs = 0;
|
||||
if (!ParamAttrs.empty())
|
||||
Attrs = new ParamAttrsList(ParamAttrs);
|
||||
Ty = FunctionType::get($3->get(), ParamTypes, false, Attrs);
|
||||
PFTy = PointerType::get(Ty);
|
||||
}
|
||||
|
||||
@ -2764,17 +2791,25 @@ InstVal : ArithmeticOps Types ValueRef ',' ValueRef {
|
||||
!(Ty = dyn_cast<FunctionType>(PFTy->getElementType()))) {
|
||||
// Pull out the types of all of the arguments...
|
||||
std::vector<const Type*> ParamTypes;
|
||||
FunctionType::ParamAttrsList ParamAttrs;
|
||||
ParamAttrs.push_back($8);
|
||||
for (ValueRefList::iterator I = $6->begin(), E = $6->end(); I != E; ++I) {
|
||||
ParamAttrsList ParamAttrs;
|
||||
if ($8 != NoAttributeSet)
|
||||
ParamAttrs.addAttributes(0, $8);
|
||||
unsigned index = 1;
|
||||
ValueRefList::iterator I = $6->begin(), E = $6->end();
|
||||
for (; I != E; ++I, ++index) {
|
||||
const Type *Ty = I->Val->getType();
|
||||
if (Ty == Type::VoidTy)
|
||||
GEN_ERROR("Short call syntax cannot be used with varargs");
|
||||
ParamTypes.push_back(Ty);
|
||||
ParamAttrs.push_back(I->Attrs);
|
||||
if (I->Attrs != NoAttributeSet)
|
||||
ParamAttrs.addAttributes(index, I->Attrs);
|
||||
}
|
||||
|
||||
Ty = FunctionType::get($3->get(), ParamTypes, false, ParamAttrs);
|
||||
ParamAttrsList *Attrs = 0;
|
||||
if (!ParamAttrs.empty())
|
||||
Attrs = new ParamAttrsList(ParamAttrs);
|
||||
|
||||
Ty = FunctionType::get($3->get(), ParamTypes, false, Attrs);
|
||||
PFTy = PointerType::get(Ty);
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -335,7 +335,7 @@
|
||||
|
||||
|
||||
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
|
||||
#line 1731 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
|
||||
#line 1741 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
|
||||
typedef union YYSTYPE {
|
||||
llvm::Module *ModuleVal;
|
||||
llvm::Function *FunctionVal;
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "llvm/InlineAsm.h"
|
||||
#include "llvm/Instructions.h"
|
||||
#include "llvm/Module.h"
|
||||
#include "llvm/ParameterAttributes.h"
|
||||
#include "llvm/ValueSymbolTable.h"
|
||||
#include "llvm/Support/GetElementPtrTypeIterator.h"
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
@ -377,14 +378,21 @@ static Signedness getElementSign(const ConstInfo& CI,
|
||||
static bool FuncTysDifferOnlyBySRet(const FunctionType *F1,
|
||||
const FunctionType *F2) {
|
||||
if (F1->getReturnType() != F2->getReturnType() ||
|
||||
F1->getNumParams() != F2->getNumParams() ||
|
||||
F1->getParamAttrs(0) != F2->getParamAttrs(0))
|
||||
F1->getNumParams() != F2->getNumParams())
|
||||
return false;
|
||||
unsigned SRetMask = ~unsigned(FunctionType::StructRetAttribute);
|
||||
ParamAttrsList PAL1;
|
||||
if (F1->getParamAttrs())
|
||||
PAL1 = *F1->getParamAttrs();
|
||||
ParamAttrsList PAL2;
|
||||
if (F2->getParamAttrs())
|
||||
PAL2 = *F2->getParamAttrs();
|
||||
if (PAL1.getParamAttrs(0) != PAL2.getParamAttrs(0))
|
||||
return false;
|
||||
unsigned SRetMask = ~unsigned(StructRetAttribute);
|
||||
for (unsigned i = 0; i < F1->getNumParams(); ++i) {
|
||||
if (F1->getParamType(i) != F2->getParamType(i) ||
|
||||
unsigned(F1->getParamAttrs(i+1)) & SRetMask !=
|
||||
unsigned(F2->getParamAttrs(i+1)) & SRetMask)
|
||||
unsigned(PAL1.getParamAttrs(i+1)) & SRetMask !=
|
||||
unsigned(PAL2.getParamAttrs(i+1)) & SRetMask)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@ -423,13 +431,15 @@ static Value* handleSRetFuncTypeMerge(Value *V, const Type* Ty) {
|
||||
if (PF1 && PF2) {
|
||||
const FunctionType *FT1 = dyn_cast<FunctionType>(PF1->getElementType());
|
||||
const FunctionType *FT2 = dyn_cast<FunctionType>(PF2->getElementType());
|
||||
if (FT1 && FT2 && FuncTysDifferOnlyBySRet(FT1, FT2))
|
||||
if (FT2->paramHasAttr(1, FunctionType::StructRetAttribute))
|
||||
if (FT1 && FT2 && FuncTysDifferOnlyBySRet(FT1, FT2)) {
|
||||
const ParamAttrsList *PAL2 = FT2->getParamAttrs();
|
||||
if (PAL2 && PAL2->paramHasAttr(1, StructRetAttribute))
|
||||
return V;
|
||||
else if (Constant *C = dyn_cast<Constant>(V))
|
||||
return ConstantExpr::getBitCast(C, PF1);
|
||||
else
|
||||
return new BitCastInst(V, PF1, "upgrd.cast", CurBB);
|
||||
}
|
||||
|
||||
}
|
||||
return 0;
|
||||
@ -2103,13 +2113,13 @@ UpRTypes
|
||||
Params.push_back(I->PAT->get());
|
||||
$$.S.add(I->S);
|
||||
}
|
||||
FunctionType::ParamAttrsList ParamAttrs;
|
||||
bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
|
||||
if (isVarArg) Params.pop_back();
|
||||
|
||||
$$.PAT = new PATypeHolder(
|
||||
HandleUpRefs(FunctionType::get($1.PAT->get(), Params, isVarArg,
|
||||
ParamAttrs), $$.S));
|
||||
const FunctionType *FTy =
|
||||
FunctionType::get($1.PAT->get(), Params, isVarArg, 0);
|
||||
|
||||
$$.PAT = new PATypeHolder( HandleUpRefs(FTy, $$.S) );
|
||||
delete $1.PAT; // Delete the return type handle
|
||||
delete $3; // Delete the argument list
|
||||
}
|
||||
@ -2891,14 +2901,15 @@ FunctionHeaderH
|
||||
|
||||
// Convert the CSRet calling convention into the corresponding parameter
|
||||
// attribute.
|
||||
FunctionType::ParamAttrsList ParamAttrs;
|
||||
ParamAttrsList *ParamAttrs = 0;
|
||||
if ($1 == OldCallingConv::CSRet) {
|
||||
ParamAttrs.push_back(FunctionType::NoAttributeSet); // result
|
||||
ParamAttrs.push_back(FunctionType::StructRetAttribute); // first arg
|
||||
ParamAttrs = new ParamAttrsList();
|
||||
ParamAttrs->addAttributes(0, NoAttributeSet); // result
|
||||
ParamAttrs->addAttributes(1, StructRetAttribute); // first arg
|
||||
}
|
||||
|
||||
const FunctionType *FT = FunctionType::get(RetTy, ParamTyList, isVarArg,
|
||||
ParamAttrs);
|
||||
const FunctionType *FT =
|
||||
FunctionType::get(RetTy, ParamTyList, isVarArg, ParamAttrs);
|
||||
const PointerType *PFT = PointerType::get(FT);
|
||||
delete $2.PAT;
|
||||
|
||||
@ -3279,10 +3290,11 @@ BBTerminatorInst
|
||||
FTySign.add(I->S);
|
||||
}
|
||||
}
|
||||
FunctionType::ParamAttrsList ParamAttrs;
|
||||
ParamAttrsList *ParamAttrs = 0;
|
||||
if ($2 == OldCallingConv::CSRet) {
|
||||
ParamAttrs.push_back(FunctionType::NoAttributeSet);
|
||||
ParamAttrs.push_back(FunctionType::StructRetAttribute);
|
||||
ParamAttrs = new ParamAttrsList();
|
||||
ParamAttrs->addAttributes(0, NoAttributeSet); // Function result
|
||||
ParamAttrs->addAttributes(1, StructRetAttribute); // first param
|
||||
}
|
||||
bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy;
|
||||
if (isVarArg) ParamTypes.pop_back();
|
||||
@ -3296,6 +3308,7 @@ BBTerminatorInst
|
||||
// and then the 0th element again to get the result type.
|
||||
$$.S.copy($3.S.get(0).get(0));
|
||||
}
|
||||
|
||||
$4.S.makeComposite(FTySign);
|
||||
Value *V = getVal(PFTy, $4); // Get the function we're calling...
|
||||
BasicBlock *Normal = getBBVal($10);
|
||||
@ -3656,7 +3669,7 @@ InstVal
|
||||
$$.S.copy($2.S);
|
||||
delete $2.P; // Free the list...
|
||||
}
|
||||
| OptTailCall OptCallingConv TypesV ValueRef '(' ValueRefListE ')' {
|
||||
| OptTailCall OptCallingConv TypesV ValueRef '(' ValueRefListE ')' {
|
||||
// Handle the short call syntax
|
||||
const PointerType *PFTy;
|
||||
const FunctionType *FTy;
|
||||
@ -3674,11 +3687,6 @@ InstVal
|
||||
}
|
||||
}
|
||||
|
||||
FunctionType::ParamAttrsList ParamAttrs;
|
||||
if ($2 == OldCallingConv::CSRet) {
|
||||
ParamAttrs.push_back(FunctionType::NoAttributeSet);
|
||||
ParamAttrs.push_back(FunctionType::StructRetAttribute);
|
||||
}
|
||||
bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy;
|
||||
if (isVarArg) ParamTypes.pop_back();
|
||||
|
||||
@ -3686,6 +3694,14 @@ InstVal
|
||||
if (!RetTy->isFirstClassType() && RetTy != Type::VoidTy)
|
||||
error("Functions cannot return aggregate types");
|
||||
|
||||
// Deal with CSRetCC
|
||||
ParamAttrsList *ParamAttrs = 0;
|
||||
if ($2 == OldCallingConv::CSRet) {
|
||||
ParamAttrs = new ParamAttrsList();
|
||||
ParamAttrs->addAttributes(0, NoAttributeSet); // function result
|
||||
ParamAttrs->addAttributes(1, StructRetAttribute); // first parameter
|
||||
}
|
||||
|
||||
FTy = FunctionType::get(RetTy, ParamTypes, isVarArg, ParamAttrs);
|
||||
PFTy = PointerType::get(FTy);
|
||||
$$.S.copy($3.S);
|
||||
|
Loading…
Reference in New Issue
Block a user