diff options
author | Chris Lattner <sabre@nondot.org> | 2001-10-20 09:32:59 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2001-10-20 09:32:59 +0000 |
commit | 42c9e77ffbb9302a8132dcb1af94bf8f9e79647b (patch) | |
tree | 3a60dafa44c49f0886635842e8811e0a2c7f2dc5 /lib/AsmParser | |
parent | 2b3c925d02fbfce76d51737e608aa2533c300026 (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.l | 3 | ||||
-rw-r--r-- | lib/AsmParser/llvmAsmParser.y | 5 |
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 |