mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-18 12:29:21 +00:00
Add support for And, XOR, and Or
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@924 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2b3c925d02
commit
42c9e77ffb
@ -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); }
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user