Lines Matching full:imm

104 static DecodeStatus decodeCallOperand(MCInst &Inst, uint64_t Imm,
106 assert(isUInt<18>(Imm) && "Invalid immediate");
107 Inst.addOperand(MCOperand::createImm(SignExtend64<20>(Imm << 2)));
111 static DecodeStatus decodeJumpOperand(MCInst &Inst, uint64_t Imm,
113 assert(isUInt<18>(Imm) && "Invalid immediate");
114 Inst.addOperand(MCOperand::createImm(SignExtend64<18>(Imm)));
118 static DecodeStatus decodeBranchOperand(MCInst &Inst, uint64_t Imm,
125 assert(isUInt<12>(Imm) && "Invalid immediate");
126 if (!tryAddingSymbolicOperand(SignExtend64<12>(Imm) + 4 + Address, true,
128 Inst.addOperand(MCOperand::createImm(SignExtend64<12>(Imm)));
131 assert(isUInt<8>(Imm) && "Invalid immediate");
132 if (!tryAddingSymbolicOperand(SignExtend64<8>(Imm) + 4 + Address, true,
134 Inst.addOperand(MCOperand::createImm(SignExtend64<8>(Imm)));
139 static DecodeStatus decodeL32ROperand(MCInst &Inst, uint64_t Imm,
142 assert(isUInt<16>(Imm) && "Invalid immediate");
144 SignExtend64<17>((Imm << 2) + 0x40000 + (Address & 0x3))));
148 static DecodeStatus decodeImm8Operand(MCInst &Inst, uint64_t Imm,
150 assert(isUInt<8>(Imm) && "Invalid immediate");
151 Inst.addOperand(MCOperand::createImm(SignExtend64<8>(Imm)));
155 static DecodeStatus decodeImm8_sh8Operand(MCInst &Inst, uint64_t Imm,
158 assert(isUInt<8>(Imm) && "Invalid immediate");
159 Inst.addOperand(MCOperand::createImm(SignExtend64<16>(Imm << 8)));
163 static DecodeStatus decodeImm12Operand(MCInst &Inst, uint64_t Imm,
165 assert(isUInt<12>(Imm) && "Invalid immediate");
166 Inst.addOperand(MCOperand::createImm(SignExtend64<12>(Imm)));
170 static DecodeStatus decodeUimm4Operand(MCInst &Inst, uint64_t Imm,
172 assert(isUInt<4>(Imm) && "Invalid immediate");
173 Inst.addOperand(MCOperand::createImm(Imm));
177 static DecodeStatus decodeUimm5Operand(MCInst &Inst, uint64_t Imm,
179 assert(isUInt<5>(Imm) && "Invalid immediate");
180 Inst.addOperand(MCOperand::createImm(Imm));
184 static DecodeStatus decodeImm1_16Operand(MCInst &Inst, uint64_t Imm,
186 assert(isUInt<4>(Imm) && "Invalid immediate");
187 Inst.addOperand(MCOperand::createImm(Imm + 1));
191 static DecodeStatus decodeImm1n_15Operand(MCInst &Inst, uint64_t Imm,
194 assert(isUInt<4>(Imm) && "Invalid immediate");
195 if (!Imm)
198 Inst.addOperand(MCOperand::createImm(Imm));
202 static DecodeStatus decodeImm32n_95Operand(MCInst &Inst, uint64_t Imm,
205 assert(isUInt<7>(Imm) && "Invalid immediate");
206 if ((Imm & 0x60) == 0x60)
207 Inst.addOperand(MCOperand::createImm((~0x1f) | Imm));
209 Inst.addOperand(MCOperand::createImm(Imm));
213 static DecodeStatus decodeShimm1_31Operand(MCInst &Inst, uint64_t Imm,
216 assert(isUInt<5>(Imm) && "Invalid immediate");
217 Inst.addOperand(MCOperand::createImm(32 - Imm));
223 static DecodeStatus decodeB4constOperand(MCInst &Inst, uint64_t Imm,
225 assert(isUInt<4>(Imm) && "Invalid immediate");
227 Inst.addOperand(MCOperand::createImm(TableB4const[Imm]));
233 static DecodeStatus decodeB4constuOperand(MCInst &Inst, uint64_t Imm,
236 assert(isUInt<4>(Imm) && "Invalid immediate");
238 Inst.addOperand(MCOperand::createImm(TableB4constu[Imm]));
242 static DecodeStatus decodeMem8Operand(MCInst &Inst, uint64_t Imm,
244 assert(isUInt<12>(Imm) && "Invalid immediate");
245 DecodeARRegisterClass(Inst, Imm & 0xf, Address, Decoder);
246 Inst.addOperand(MCOperand::createImm((Imm >> 4) & 0xff));
250 static DecodeStatus decodeMem16Operand(MCInst &Inst, uint64_t Imm,
252 assert(isUInt<12>(Imm) && "Invalid immediate");
253 DecodeARRegisterClass(Inst, Imm & 0xf, Address, Decoder);
254 Inst.addOperand(MCOperand::createImm((Imm >> 3) & 0x1fe));
258 static DecodeStatus decodeMem32Operand(MCInst &Inst, uint64_t Imm,
260 assert(isUInt<12>(Imm) && "Invalid immediate");
261 DecodeARRegisterClass(Inst, Imm & 0xf, Address, Decoder);
262 Inst.addOperand(MCOperand::createImm((Imm >> 2) & 0x3fc));
266 static DecodeStatus decodeMem32nOperand(MCInst &Inst, uint64_t Imm,
268 assert(isUInt<8>(Imm) && "Invalid immediate");
269 DecodeARRegisterClass(Inst, Imm & 0xf, Address, Decoder);
270 Inst.addOperand(MCOperand::createImm((Imm >> 2) & 0x3c));