Lines Matching refs:IRICB
50 static IRICB iricb;
54 LibVEX_InitIRI(const IRICB *iricb_in)
56 iricb = *iricb_in; // copy in
190 block iricb. */
197 if (iricb.rounding_mode != NO_ROUNDING_MODE) {
198 rounding_mode = mkU32(iricb.rounding_mode);
201 switch (iricb.num_operands) {
203 opnd1 = load(endian, iricb.t_opnd1, iricb.opnd1);
205 data = binop(iricb.op, rounding_mode, opnd1);
207 data = unop(iricb.op, opnd1);
211 opnd1 = load(endian, iricb.t_opnd1, iricb.opnd1);
213 if (iricb.shift_amount_is_immediate) {
215 vassert(iricb.t_opnd2 == Ity_I8);
216 opnd2 = mkU8(*((Char *)iricb.opnd2));
218 opnd2 = load(endian, iricb.t_opnd2, iricb.opnd2);
222 data = triop(iricb.op, rounding_mode, opnd1, opnd2);
224 data = binop(iricb.op, opnd1, opnd2);
228 opnd1 = load(endian, iricb.t_opnd1, iricb.opnd1);
229 opnd2 = load(endian, iricb.t_opnd2, iricb.opnd2);
230 opnd3 = load(endian, iricb.t_opnd3, iricb.opnd3);
232 data = qop(iricb.op, rounding_mode, opnd1, opnd2, opnd3);
234 data = triop(iricb.op, opnd1, opnd2, opnd3);
239 opnd1 = load(endian, iricb.t_opnd1, iricb.opnd1);
240 opnd2 = load(endian, iricb.t_opnd2, iricb.opnd2);
241 opnd3 = load(endian, iricb.t_opnd3, iricb.opnd3);
242 opnd4 = load(endian, iricb.t_opnd4, iricb.opnd4);
243 data = qop(iricb.op, opnd1, opnd2, opnd3, opnd4);
250 store(irsb, endian, iricb.result, data);
254 if (iricb.t_result == Ity_I1 || sizeofIRType(iricb.t_result) <= 8) {
256 } else if (sizeofIRType(iricb.t_result) == 16) {