diff options
Diffstat (limited to 'gdb/i386-tdep.c')
-rw-r--r-- | gdb/i386-tdep.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 6a919bf..eb8ddfc 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -4951,6 +4951,17 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, } break; + case 0x74: /* VPCMPEQB */ + case 0x75: /* VPCMPEQB */ + case 0x76: /* VPCMPEQB */ + { + i386_record_modrm (ir); + int reg_offset = ir->reg + vex_r * 8; + record_full_arch_list_add_reg (ir->regcache, + tdep->ymm0_regnum + reg_offset); + } + break; + case 0x78: /* VPBROADCASTB */ case 0x79: /* VPBROADCASTW */ case 0x58: /* VPBROADCASTD */ @@ -4981,6 +4992,25 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, break; } + case 0xd7: /* VPMOVMSKB */ + { + i386_record_modrm (ir); + record_full_arch_list_add_reg (ir->regcache, + ir->regmap[X86_RECORD_REAX_REGNUM + + ir->reg + 8 * vex_r]); + } + break; + + case 0xef: /* VPXOR */ + case 0xeb: /* VPOR */ + { + i386_record_modrm (ir); + int reg_offset = ir->reg + vex_r * 8; + record_full_arch_list_add_reg (ir->regcache, + tdep->ymm0_regnum + reg_offset); + break; + } + default: gdb_printf (gdb_stderr, _("Process record does not support VEX instruction 0x%02x " |