Lines Matching refs:emi

50     emi.rex = 0;
51 emi.legacy = 0;
52 emi.vex = 0;
54 emi.opcode.type = BadOpcode;
55 emi.opcode.op = 0;
58 emi.immediate = 0;
59 emi.displacement = 0;
60 emi.dispSize = 0;
62 emi.modRM = 0;
63 emi.sib = 0;
183 if (prefix == RexPrefix && emi.mode.submode != SixtyFourBitMode)
192 emi.legacy.op = true;
196 emi.legacy.addr = true;
206 emi.legacy.seg = prefix;
210 emi.legacy.lock = true;
214 emi.legacy.rep = true;
218 emi.legacy.repne = true;
222 emi.rex = nextByte;
226 emi.vex.present = 1;
231 emi.vex.present = 1;
250 emi.rex.r = !vex.r;
252 emi.vex.l = vex.l;
253 emi.vex.v = ~vex.v;
259 emi.legacy.op = 1;
262 emi.legacy.rep = 1;
265 emi.legacy.repne = 1;
269 emi.opcode.type = TwoByteOpcode;
277 if (emi.mode.submode != SixtyFourBitMode && bits(nextByte, 7, 6) == 0x3) {
279 emi.vex.present = 0;
280 emi.opcode.type = OneByteOpcode;
281 emi.opcode.op = 0xC4;
289 emi.rex.r = !vex.r;
290 emi.rex.x = !vex.x;
291 emi.rex.b = !vex.b;
295 emi.opcode.type = TwoByteOpcode;
298 emi.opcode.type = ThreeByte0F38Opcode;
301 emi.opcode.type = ThreeByte0F3AOpcode;
307 emi.opcode.type = TwoByteOpcode;
308 emi.opcode.op = 0x0B;
318 if (emi.mode.submode != SixtyFourBitMode && bits(nextByte, 7, 6) == 0x3) {
320 emi.vex.present = 0;
321 emi.opcode.type = OneByteOpcode;
322 emi.opcode.op = 0xC5;
330 emi.rex.w = vex.w;
332 emi.vex.l = vex.l;
333 emi.vex.v = ~vex.v;
339 emi.legacy.op = 1;
342 emi.legacy.rep = 1;
345 emi.legacy.repne = 1;
357 emi.opcode.op = nextByte;
360 switch (emi.opcode.type) {
370 panic("Unrecognized opcode type %d.\n", emi.opcode.type);
387 emi.opcode.type = OneByteOpcode;
388 emi.opcode.op = nextByte;
411 emi.opcode.type = TwoByteOpcode;
412 emi.opcode.op = nextByte;
427 emi.opcode.type = ThreeByte0F38Opcode;
428 emi.opcode.op = nextByte;
441 emi.opcode.type = ThreeByte0F3AOpcode;
442 emi.opcode.op = nextByte;
454 const uint8_t opcode = emi.opcode.op;
459 if (emi.rex.w)
461 else if (emi.legacy.op)
467 emi.opSize = 1 << logOpSize;
472 if (emi.legacy.addr)
478 emi.addrSize = 1 << logAddrSize;
482 emi.stackSize = 1 << stack;
535 if (emi.opcode.type == OneByteOpcode && (modRM.reg & 0x6) == 0) {
536 if (emi.opcode.op == 0xF6)
538 else if (emi.opcode.op == 0xF7)
539 immediateSize = (emi.opSize == 8) ? 4 : emi.opSize;
557 emi.modRM = modRM;
568 emi.sib = nextByte;
571 if (emi.modRM.mod == 0 && emi.sib.base == 5)
592 emi.displacement,
605 emi.displacement = sext<8>(emi.displacement);
608 emi.displacement = sext<16>(emi.displacement);
611 emi.displacement = sext<32>(emi.displacement);
617 emi.displacement);
625 emi.dispSize = displacementSize;
640 emi.immediate,
662 emi.immediate = sext<32>(emi.immediate);
665 emi.immediate = sext<8>(emi.immediate);
669 emi.immediate);
733 si = decode(emi, origPC);