aboutsummaryrefslogtreecommitdiff
path: root/lib/AsmParser
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2001-10-20 09:32:59 +0000
committerChris Lattner <sabre@nondot.org>2001-10-20 09:32:59 +0000
commit42c9e77ffbb9302a8132dcb1af94bf8f9e79647b (patch)
tree3a60dafa44c49f0886635842e8811e0a2c7f2dc5 /lib/AsmParser
parent2b3c925d02fbfce76d51737e608aa2533c300026 (diff)
Add support for And, XOR, and Or
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@924 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AsmParser')
-rw-r--r--lib/AsmParser/Lexer.l3
-rw-r--r--lib/AsmParser/llvmAsmParser.y5
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l
index 5bbe672882..e9996b2829 100644
--- a/lib/AsmParser/Lexer.l
+++ b/lib/AsmParser/Lexer.l
@@ -162,6 +162,9 @@ sub { RET_TOK(BinaryOpVal, Sub, SUB); }
mul { RET_TOK(BinaryOpVal, Mul, MUL); }
div { RET_TOK(BinaryOpVal, Div, DIV); }
rem { RET_TOK(BinaryOpVal, Rem, REM); }
+and { RET_TOK(BinaryOpVal, And, AND); }
+or { RET_TOK(BinaryOpVal, Or , OR ); }
+xor { RET_TOK(BinaryOpVal, Xor, XOR); }
setne { RET_TOK(BinaryOpVal, SetNE, SETNE); }
seteq { RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
setlt { RET_TOK(BinaryOpVal, SetLT, SETLT); }
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index e5fad6c186..128d479775 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -195,6 +195,7 @@ static const Type *getTypeVal(const ValID &D, bool DoNotImprovise = false) {
// Check that the number is within bounds...
if (Num <= CurMeth.Types.size())
return CurMeth.Types[Num];
+ break;
}
case 1: { // Is it a named definition?
string Name(D.Name);
@@ -716,7 +717,7 @@ Module *RunVMAsmParser(const string &Filename, FILE *F) {
// Binary Operators
%type <BinaryOpVal> BinaryOps // all the binary operators
-%token <BinaryOpVal> ADD SUB MUL DIV REM
+%token <BinaryOpVal> ADD SUB MUL DIV REM AND OR XOR
%token <BinaryOpVal> SETLE SETGE SETLT SETGT SETEQ SETNE // Binary Comarators
// Memory Instructions
@@ -751,7 +752,7 @@ EINT64VAL : EUINT64VAL {
// RET, BR, & SWITCH because they end basic blocks and are treated specially.
//
UnaryOps : NOT
-BinaryOps : ADD | SUB | MUL | DIV | REM
+BinaryOps : ADD | SUB | MUL | DIV | REM | AND | OR | XOR
BinaryOps : SETLE | SETGE | SETLT | SETGT | SETEQ | SETNE
ShiftOps : SHL | SHR