Extend comment on ParserMatchClass .td field, and add some missing

classes for X86.

llvm-svn: 78524
This commit is contained in:
Daniel Dunbar 2009-08-09 06:00:04 +00:00
parent c32aa060bd
commit 447c4ab91d
3 changed files with 9 additions and 0 deletions

View File

@ -290,6 +290,11 @@ class Operand<ValueType ty> {
// ParserMatchClass - The "match class" that operands of this type fit
// in. Match classes are used to define the order in which instructions are
// match, to ensure that which instructions gets matched is deterministic.
//
// The target specific parser must be able to classify an parsed operand
// into a unique class, which does not partially overlap with any other
// classes. It can match a subset of some other class, in which case
// ParserMatchSuperClass should be set to the name of that class.
string ParserMatchClass = "Imm";
// ParserMatchSuperClass - The enclosing super class for this operand (if

View File

@ -33,12 +33,14 @@ def i64i8imm : Operand<i64>;
def lea64mem : Operand<i64> {
let PrintMethod = "printlea64mem";
let MIOperandInfo = (ops GR64, i8imm, GR64_NOSP, i32imm);
let ParserMatchClass = "Mem";
}
def lea64_32mem : Operand<i32> {
let PrintMethod = "printlea64_32mem";
let AsmOperandLowerMethod = "lower_lea64_32mem";
let MIOperandInfo = (ops GR32, i8imm, GR32_NOSP, i32imm);
let ParserMatchClass = "Mem";
}
//===----------------------------------------------------------------------===//

View File

@ -87,10 +87,12 @@ def sse_load_f64 : ComplexPattern<v2f64, 5, "SelectScalarSSELoad", [],
def ssmem : Operand<v4f32> {
let PrintMethod = "printf32mem";
let MIOperandInfo = (ops ptr_rc, i8imm, ptr_rc_nosp, i32imm, i8imm);
let ParserMatchClass = "Mem";
}
def sdmem : Operand<v2f64> {
let PrintMethod = "printf64mem";
let MIOperandInfo = (ops ptr_rc, i8imm, ptr_rc_nosp, i32imm, i8imm);
let ParserMatchClass = "Mem";
}
//===----------------------------------------------------------------------===//