aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AsmParser
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-09-08 18:54:55 +0000
committerChris Lattner <sabre@nondot.org>2003-09-08 18:54:55 +0000
commit36143fc4440ac1fc2a0fc95a4999bcadc3ec207d (patch)
tree8e8d7c349a476eb4d2997258e6e3405fa0e2a994 /lib/AsmParser
parenta6ce898dad724380b1444f664f8e422ba1e746d0 (diff)
downloadexternal_llvm-36143fc4440ac1fc2a0fc95a4999bcadc3ec207d.zip
external_llvm-36143fc4440ac1fc2a0fc95a4999bcadc3ec207d.tar.gz
external_llvm-36143fc4440ac1fc2a0fc95a4999bcadc3ec207d.tar.bz2
Add support for the unwind instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8408 91177308-0d34-0410-b5e6-96231b3b80d8
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();
};