summaryrefslogtreecommitdiff
path: root/lib/AsmParser/Lexer.l.cvs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/AsmParser/Lexer.l.cvs')
-rw-r--r--lib/AsmParser/Lexer.l.cvs22
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/AsmParser/Lexer.l.cvs b/lib/AsmParser/Lexer.l.cvs
index 08a70e04d8..4df84f685e 100644
--- a/lib/AsmParser/Lexer.l.cvs
+++ b/lib/AsmParser/Lexer.l.cvs
@@ -39,8 +39,18 @@ void set_scan_string (const char * str) {
yy_scan_string (str);
}
+// Construct a token value for a non-obsolete token
#define RET_TOK(type, Enum, sym) \
- llvmAsmlval.type = Instruction::Enum; return sym
+ llvmAsmlval.type.opcode = Instruction::Enum; \
+ llvmAsmlval.type.obsolete = false; \
+ return sym
+
+// Construct a token value for an obsolete token
+#define RET_TOK_OBSOLETE(type, Enum, sym) \
+ llvmAsmlval.type.opcode = Instruction::Enum; \
+ llvmAsmlval.type.obsolete = true; \
+ return sym
+
namespace llvm {
@@ -247,8 +257,14 @@ opaque { return OPAQUE; }
add { RET_TOK(BinaryOpVal, Add, ADD); }
sub { RET_TOK(BinaryOpVal, Sub, SUB); }
mul { RET_TOK(BinaryOpVal, Mul, MUL); }
-div { RET_TOK(BinaryOpVal, Div, DIV); }
-rem { RET_TOK(BinaryOpVal, Rem, REM); }
+div { RET_TOK_OBSOLETE(BinaryOpVal, UDiv, UDIV); }
+udiv { RET_TOK(BinaryOpVal, UDiv, UDIV); }
+sdiv { RET_TOK(BinaryOpVal, SDiv, SDIV); }
+fdiv { RET_TOK(BinaryOpVal, FDiv, FDIV); }
+rem { RET_TOK_OBSOLETE(BinaryOpVal, URem, UREM); }
+urem { RET_TOK(BinaryOpVal, URem, UREM); }
+srem { RET_TOK(BinaryOpVal, SRem, SREM); }
+frem { RET_TOK(BinaryOpVal, FRem, FREM); }
and { RET_TOK(BinaryOpVal, And, AND); }
or { RET_TOK(BinaryOpVal, Or , OR ); }
xor { RET_TOK(BinaryOpVal, Xor, XOR); }