// Address operands
def op_addr_mode1 : Operand<iPTR> {
let PrintMethod = "printAddrMode1";
- let NumMIOperands = 3;
let MIOperandInfo = (ops ptr_rc, ptr_rc, i32imm);
}
def op_addr_mode5 : Operand<iPTR> {
let PrintMethod = "printAddrMode5";
- let NumMIOperands = 2;
let MIOperandInfo = (ops ptr_rc, i32imm);
}
def memri : Operand<iPTR> {
let PrintMethod = "printMemRegImm";
- let NumMIOperands = 2;
let MIOperandInfo = (ops i32imm, ptr_rc);
}
//
class X86MemOperand<string printMethod> : Operand<iPTR> {
let PrintMethod = printMethod;
- let NumMIOperands = 4;
let MIOperandInfo = (ops ptr_rc, i8imm, ptr_rc, i32imm);
}
def lea32mem : Operand<i32> {
let PrintMethod = "printi32mem";
- let NumMIOperands = 4;
let MIOperandInfo = (ops GR32, i8imm, GR32, i32imm);
}
def ssmem : Operand<v4f32> {
let PrintMethod = "printf32mem";
- let NumMIOperands = 4;
let MIOperandInfo = (ops ptr_rc, i8imm, ptr_rc, i32imm);
}
def sdmem : Operand<v2f64> {
let PrintMethod = "printf64mem";
- let NumMIOperands = 4;
let MIOperandInfo = (ops ptr_rc, i8imm, ptr_rc, i32imm);
}
def lea64mem : Operand<i64> {
let PrintMethod = "printi64mem";
- let NumMIOperands = 4;
let MIOperandInfo = (ops GR64, i8imm, GR64, i32imm);
}
def lea64_32mem : Operand<i32> {
let PrintMethod = "printlea64_32mem";
- let NumMIOperands = 4;
let MIOperandInfo = (ops GR32, i8imm, GR32, i32imm);
}