Home | History | Annotate | Download | only in target-i386

Lines Matching refs:modrm

1965 static void gen_lea_modrm(DisasContext *s, int modrm, int *reg_ptr, int *offset_ptr)
1979 mod = (modrm >> 6) & 3;
1980 rm = modrm & 7;
2149 static void gen_nop_modrm(DisasContext *s, int modrm)
2153 mod = (modrm >> 6) & 3;
2156 rm = modrm & 7;
2223 /* generate modrm memory load or store of 'reg'. TMP0 is used if reg ==
2225 static void gen_ldst_modrm(DisasContext *s, int modrm, int ot, int reg, int is_store)
2229 mod = (modrm >> 6) & 3;
2230 rm = (modrm & 7) | REX_B(s);
2242 gen_lea_modrm(s, modrm, &opreg, &disp);
3091 int modrm, mod, rm, reg, reg_addr, offset_addr;
3147 modrm = ldub_code(s->pc++);
3148 reg = ((modrm >> 3) & 7);
3151 mod = (modrm >> 6) & 3;
3158 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3167 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3173 gen_ldst_modrm(s, modrm, OT_QUAD, OR_TMP0, 0);
3178 gen_ldst_modrm(s, modrm, OT_LONG, OR_TMP0, 0);
3188 gen_ldst_modrm(s, modrm, OT_QUAD, OR_TMP0, 0);
3195 gen_ldst_modrm(s, modrm, OT_LONG, OR_TMP0, 0);
3204 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3207 rm = (modrm & 7);
3221 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3224 rm = (modrm & 7) | REX_B(s);
3231 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3239 rm = (modrm & 7) | REX_B(s);
3246 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3252 rm = (modrm & 7) | REX_B(s);
3260 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3264 rm = (modrm & 7) | REX_B(s);
3271 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3274 rm = (modrm & 7) | REX_B(s);
3287 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3290 rm = (modrm & 7) | REX_B(s);
3300 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3304 rm = (modrm & 7) | REX_B(s);
3311 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3314 rm = (modrm & 7) | REX_B(s);
3330 gen_ldst_modrm(s, modrm, OT_QUAD, OR_TMP0, 1);
3336 gen_ldst_modrm(s, modrm, OT_LONG, OR_TMP0, 1);
3344 gen_ldst_modrm(s, modrm, OT_QUAD, OR_TMP0, 1);
3350 gen_ldst_modrm(s, modrm, OT_LONG, OR_TMP0, 1);
3355 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3358 rm = (modrm & 7) | REX_B(s);
3366 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3369 rm = (modrm & 7);
3381 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3384 rm = (modrm & 7) | REX_B(s);
3391 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3395 rm = (modrm & 7) | REX_B(s);
3402 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3405 rm = (modrm & 7) | REX_B(s);
3413 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3422 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3448 sse_op2 = sse_op_table2[((b - 1) & 3) * 8 + (((modrm >> 3)) & 7)][b1];
3452 rm = (modrm & 7) | REX_B(s);
3455 rm = (modrm & 7);
3463 rm = (modrm & 7) | REX_B(s);
3471 rm = (modrm & 7) | REX_B(s);
3482 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3486 rm = (modrm & 7);
3505 gen_ldst_modrm(s, modrm, ot, OR_TMP0, 0);
3522 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3526 rm = (modrm & 7) | REX_B(s);
3553 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3562 rm = (modrm & 7) | REX_B(s);
3579 gen_ldst_modrm(s, modrm, OT_WORD, OR_TMP0, 0);
3599 rm = (modrm & 7) | REX_B(s);
3604 rm = (modrm & 7);
3608 reg = ((modrm >> 3) & 7) | rex_r;
3613 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3616 rm = (modrm & 7) | REX_B(s);
3624 rm = (modrm & 7);
3631 rm = (modrm & 7) | REX_B(s);
3640 rm = (modrm & 7) | REX_B(s);
3644 rm = (modrm & 7);
3649 reg = ((modrm >> 3) & 7) | rex_r;
3656 b = modrm;
3657 modrm = ldub_code(s->pc++);
3658 rm = modrm & 7;
3659 reg = ((modrm >> 3) & 7) | rex_r;
3660 mod = (modrm >> 6) & 3;
3674 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3709 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3725 b = modrm;
3726 modrm = ldub_code(s->pc++);
3727 reg = ((modrm >> 3) & 7) | rex_r;
3746 modrm, ot, OR_TMP0, 0);
3755 b = modrm;
3756 modrm = ldub_code(s->pc++);
3757 rm = modrm & 7;
3758 reg = ((modrm >> 3) & 7) | rex_r;
3759 mod = (modrm >> 6) & 3;
3769 rm = (modrm & 7) | REX_B(s);
3771 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3772 reg = ((modrm >> 3) & 7) | rex_r;
3903 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3912 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3947 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3964 rm = (modrm & 7) | REX_B(s);
3970 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
3974 rm = (modrm & 7);
4045 int modrm, reg, rm, mod, reg_addr, op, opreg, offset_addr, val;
4205 modrm = ldub_code(s->pc++);
4206 reg = ((modrm >> 3) & 7) | rex_r;
4207 mod = (modrm >> 6) & 3;
4208 rm = (modrm & 7) | REX_B(s);
4210 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
4227 modrm = ldub_code(s->pc++);
4228 mod = (modrm >> 6) & 3;
4229 reg = ((modrm >> 3) & 7) | rex_r;
4230 rm = (modrm & 7) | REX_B(s);
4232 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
4264 modrm = ldub_code(s->pc++);
4265 mod = (modrm >> 6) & 3;
4266 rm = (modrm & 7) | REX_B(s);
4267 op = (modrm >> 3) & 7;
4274 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
4313 modrm = ldub_code(s->pc++);
4314 mod = (modrm >> 6) & 3;
4315 rm = (modrm & 7) | REX_B(s);
4316 op = (modrm >> 3) & 7;
4320 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
4545 modrm = ldub_code(s->pc++);
4546 mod = (modrm >> 6) & 3;
4547 rm = (modrm & 7) | REX_B(s);
4548 op = (modrm >> 3) & 7;
4566 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
4659 modrm = ldub_code(s->pc++);
4660 mod = (modrm >> 6) & 3;
4661 rm = (modrm & 7) | REX_B(s);
4662 reg = ((modrm >> 3) & 7) | rex_r;
4664 gen_ldst_modrm(s, modrm, ot, OR_TMP0, 0);
4726 modrm = ldub_code(s->pc++);
4727 reg = ((modrm >> 3) & 7) | rex_r;
4732 gen_ldst_modrm(s, modrm, ot, OR_TMP0, 0);
4790 modrm = ldub_code(s->pc++);
4791 reg = ((modrm >> 3) & 7) | rex_r;
4792 mod = (modrm >> 6) & 3;
4794 rm = (modrm & 7) | REX_B(s);
4801 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
4821 modrm = ldub_code(s->pc++);
4822 reg = ((modrm >> 3) & 7) | rex_r;
4823 mod = (modrm >> 6) & 3;
4830 rm = (modrm & 7) | REX_B(s);
4833 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
4867 modrm = ldub_code(s->pc++);
4868 mod = (modrm >> 6) & 3;
4869 if ((mod == 3) || ((modrm & 0x38) != 0x8))
4878 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
4888 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
4941 modrm = ldub_code(s->pc++);
4942 mod = (modrm >> 6) & 3;
4947 rm = (modrm & 7) | REX_B(s);
4952 gen_ldst_modrm(s, modrm, ot, OR_TMP0, 1);
5042 modrm = ldub_code(s->pc++);
5043 reg = ((modrm >> 3) & 7) | rex_r;
5046 gen_ldst_modrm(s, modrm, ot, reg, 1);
5054 modrm = ldub_code(s->pc++);
5055 mod = (modrm >> 6) & 3;
5058 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
5065 gen_op_mov_reg_T0(ot, (modrm & 7) | REX_B(s));
5073 modrm = ldub_code(s->pc++);
5074 reg = ((modrm >> 3) & 7) | rex_r;
5076 gen_ldst_modrm(s, modrm, ot, OR_TMP0, 0);
5080 modrm = ldub_code(s->pc++);
5081 reg = (modrm >> 3) & 7;
5084 gen_ldst_modrm(s, modrm, OT_WORD, OR_TMP0, 0);
5100 modrm = ldub_code(s->pc++);
5101 reg = (modrm >> 3) & 7;
5102 mod = (modrm >> 6) & 3;
5110 gen_ldst_modrm(s, modrm, ot, OR_TMP0, 1);
5123 modrm = ldub_code(s->pc++);
5124 reg = ((modrm >> 3) & 7) | rex_r;
5125 mod = (modrm >> 6) & 3;
5126 rm = (modrm & 7) | REX_B(s);
5147 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
5160 modrm = ldub_code(s->pc++);
5161 mod = (modrm >> 6) & 3;
5164 reg = ((modrm >> 3) & 7) | rex_r;
5169 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
5270 modrm = ldub_code(s->pc++);
5271 reg = ((modrm >> 3) & 7) | rex_r;
5272 mod = (modrm >> 6) & 3;
5274 rm = (modrm & 7) | REX_B(s);
5281 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
5313 modrm = ldub_code(s->pc++);
5314 reg = ((modrm >> 3) & 7) | rex_r;
5315 mod = (modrm >> 6) & 3;
5318 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
5345 modrm = ldub_code(s->pc++);
5346 mod = (modrm >> 6) & 3;
5347 op = (modrm >> 3) & 7;
5353 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
5356 opreg = (modrm & 7) | REX_B(s);
5398 modrm = ldub_code(s->pc++);
5399 mod = (modrm >> 6) & 3;
5400 rm = (modrm & 7) | REX_B(s);
5401 reg = ((modrm >> 3) & 7) | rex_r;
5403 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
5428 modrm = ldub_code(s->pc++);
5429 mod = (modrm >> 6) & 3;
5430 rm = modrm & 7;
5431 op = ((b & 7) << 3) | ((modrm >> 3) & 7);
5434 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
6296 modrm = ldub_code(s->pc++);
6298 gen_ldst_modrm(s, modrm, OT_BYTE, OR_TMP0, 1);
6306 modrm = ldub_code(s->pc++);
6307 reg = ((modrm >> 3) & 7) | rex_r;
6308 mod = (modrm >> 6) & 3;
6311 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
6314 rm = (modrm & 7) | REX_B(s);
6447 modrm = ldub_code(s->pc++);
6448 op = (modrm >> 3) & 7;
6449 mod = (modrm >> 6) & 3;
6450 rm = (modrm & 7) | REX_B(s);
6453 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
6478 modrm = ldub_code(s->pc++);
6479 reg = ((modrm >> 3) & 7) | rex_r;
6480 mod = (modrm >> 6) & 3;
6481 rm = (modrm & 7) | REX_B(s);
6484 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
6539 modrm = ldub_code(s->pc++);
6540 reg = ((modrm >> 3) & 7) | rex_r;
6541 gen_ldst_modrm(s, modrm, ot, OR_TMP0, 0);
6709 modrm = ldub_code(s->pc++);
6710 reg = (modrm >> 3) & 7;
6711 mod = (modrm >> 6) & 3;
6715 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
6911 modrm = ldub_code(s->pc++);
6912 mod = (modrm >> 6) & 3;
6913 op = (modrm >> 3) & 7;
6923 gen_ldst_modrm(s, modrm, ot, OR_TMP0, 1);
6932 gen_ldst_modrm(s, modrm, OT_WORD, OR_TMP0, 0);
6946 gen_ldst_modrm(s, modrm, ot, OR_TMP0, 1);
6955 gen_ldst_modrm(s, modrm, OT_WORD, OR_TMP0, 0);
6965 gen_ldst_modrm(s, modrm, OT_WORD, OR_TMP0, 0);
6979 modrm = ldub_code(s->pc++);
6980 mod = (modrm >> 6) & 3;
6981 op = (modrm >> 3) & 7;
6982 rm = modrm & 7;
6988 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7037 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7139 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7161 gen_ldst_modrm(s, modrm, OT_WORD, OR_TMP0, 1);
7168 gen_ldst_modrm(s, modrm, OT_WORD, OR_TMP0, 0);
7195 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7222 modrm = ldub_code(s->pc++);
7223 reg = ((modrm >> 3) & 7) | rex_r;
7224 mod = (modrm >> 6) & 3;
7225 rm = (modrm & 7) | REX_B(s);
7234 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7254 modrm = ldub_code(s->pc++);
7255 reg = (modrm >> 3) & 7;
7256 mod = (modrm >> 6) & 3;
7257 rm = modrm & 7;
7259 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7298 modrm = ldub_code(s->pc++);
7299 reg = ((modrm >> 3) & 7) | rex_r;
7300 gen_ldst_modrm(s, modrm, OT_WORD, OR_TMP0, 0);
7318 modrm = ldub_code(s->pc++);
7319 mod = (modrm >> 6) & 3;
7320 op = (modrm >> 3) & 7;
7328 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7332 gen_nop_modrm(s, modrm);
7337 modrm = ldub_code(s->pc++);
7338 gen_nop_modrm(s, modrm);
7345 modrm = ldub_code(s->pc++);
7346 if ((modrm & 0xc0) != 0xc0)
7348 rm = (modrm & 7) | REX_B(s);
7349 reg = ((modrm >> 3) & 7) | rex_r;
7383 modrm = ldub_code(s->pc++);
7384 if ((modrm & 0xc0) != 0xc0)
7386 rm = (modrm & 7) | REX_B(s);
7387 reg = ((modrm >> 3) & 7) | rex_r;
7424 modrm = ldub_code(s->pc++);
7425 mod = (modrm >> 6) & 3;
7428 reg = ((modrm >> 3) & 7) | rex_r;
7430 gen_ldst_modrm(s, modrm, ot, reg, 1);
7433 modrm = ldub_code(s->pc++);
7434 mod = (modrm >> 6) & 3;
7435 op = (modrm >> 3) & 7;
7445 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7459 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7474 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7485 if ((modrm & 0xc7) != 0xc0 || !(s->cpuid_features & CPUID_SSE))
7489 if ((modrm & 0xc7) == 0xc0) {
7498 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7506 modrm = ldub_code(s->pc++);
7507 mod = (modrm >> 6) & 3;
7510 gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7532 modrm = ldub_code(s->pc++);
7533 reg = ((modrm >> 3) & 7);
7542 gen_ldst_modrm(s, modrm, ot, OR_TMP0, 0);