aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AsmParser
diff options
context:
space:
mode:
Diffstat (limited to 'lib/AsmParser')
-rw-r--r--lib/AsmParser/Lexer.l1
-rw-r--r--lib/AsmParser/llvmAsmParser.y7
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l
index a156629..6e69262 100644
--- a/lib/AsmParser/Lexer.l
+++ b/lib/AsmParser/Lexer.l
@@ -229,6 +229,7 @@ ret { RET_TOK(TermOpVal, Ret, RET); }
br { RET_TOK(TermOpVal, Br, BR); }
switch { RET_TOK(TermOpVal, Switch, SWITCH); }
invoke { RET_TOK(TermOpVal, Invoke, INVOKE); }
+unwind { RET_TOK(TermOpVal, Unwind, UNWIND); }
malloc { RET_TOK(MemOpVal, Malloc, MALLOC); }
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index 6971ebe..930f1aa 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -701,7 +701,7 @@ Module *RunVMAsmParser(const std::string &Filename, FILE *F) {
%token OPAQUE NOT EXTERNAL TARGET ENDIAN POINTERSIZE LITTLE BIG
// Basic Block Terminating Operators
-%token <TermOpVal> RET BR SWITCH
+%token <TermOpVal> RET BR SWITCH INVOKE UNWIND
// Binary Operators
%type <BinaryOpVal> BinaryOps // all the binary operators
@@ -714,7 +714,7 @@ Module *RunVMAsmParser(const std::string &Filename, FILE *F) {
// Other Operators
%type <OtherOpVal> ShiftOps
-%token <OtherOpVal> PHI CALL INVOKE CAST SHL SHR VA_ARG
+%token <OtherOpVal> PHI CALL CAST SHL SHR VA_ARG
%start Module
%%
@@ -1535,6 +1535,9 @@ BBTerminatorInst : RET ResolvedVal { // Return with a result...
$$ = new InvokeInst(V, Normal, Except, *$5);
}
delete $5;
+ }
+ | UNWIND {
+ $$ = new UnwindInst();
};