// #0 and #-0 differently. We flag #-0 as the magic value INT32_MIN. All other
// immediate values are as normal.
- string EncoderMethod = "getAddrModeImm12OpValue";
+ string EncoderMethod = "getAddrModeImmOpValue";
let PrintMethod = "printAddrModeImm12Operand";
let MIOperandInfo = (ops GPR:$base, i32imm:$offsimm);
}
let PrintMethod = "printAddrMode5Operand";
let MIOperandInfo = (ops GPR:$base, i32imm);
let ParserMatchClass = ARMMemMode5AsmOperand;
+ string EncoderMethod = "getAddrModeImmOpValue";
}
// addrmode6 := reg with optional writeback
AddrMode_i12, LdFrm, iii, opc, "\t$Rt, $addr",
[(set GPR:$Rt, (opnode addrmode_imm12:$addr))]> {
bits<4> Rt;
- bits<17> addr;
- let Inst{23} = addr{12}; // U (add = ('U' == 1))
- let Inst{19-16} = addr{16-13}; // Rn
+ bits<32> addr;
+ let Inst{23} = addr{16}; // U (add = ('U' == 1))
+ let Inst{19-16} = addr{20-17}; // Rn
let Inst{15-12} = Rt;
let Inst{11-0} = addr{11-0}; // imm12
}
AddrModeNone, LdFrm, iir, opc, "\t$Rt, $shift",
[(set GPR:$Rt, (opnode ldst_so_reg:$shift))]> {
bits<4> Rt;
- bits<17> shift;
- let Inst{23} = shift{12}; // U (add = ('U' == 1))
- let Inst{19-16} = shift{16-13}; // Rn
+ bits<32> shift;
+ let Inst{23} = shift{16}; // U (add = ('U' == 1))
+ let Inst{19-16} = shift{20-17}; // Rn
let Inst{11-0} = shift{11-0};
}
}