diff options
Diffstat (limited to 'lib/AsmParser')
-rw-r--r-- | lib/AsmParser/Lexer.l | 1 | ||||
-rw-r--r-- | lib/AsmParser/llvmAsmParser.y | 7 |
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(); }; |