Lines Matching refs:regoff
156 static bool check_seg_overrides(struct insn *insn, int regoff) in check_seg_overrides() argument
158 if (regoff == offsetof(struct pt_regs, di) && is_string_insn(insn)) in check_seg_overrides()
283 static int resolve_seg_reg(struct insn *insn, struct pt_regs *regs, int regoff) in resolve_seg_reg() argument
293 if (regoff == offsetof(struct pt_regs, ip)) { in resolve_seg_reg()
303 if (!check_seg_overrides(insn, regoff)) in resolve_seg_reg()
304 return resolve_default_seg(insn, regs, regoff); in resolve_seg_reg()
311 return resolve_default_seg(insn, regs, regoff); in resolve_seg_reg()
424 static const int regoff[] = { in get_reg_offset() local
444 int nr_registers = ARRAY_SIZE(regoff); in get_reg_offset()
512 return regoff[regno]; in get_reg_offset()
879 int regoff, unsigned long *base, in get_seg_base_limit() argument
887 seg_reg_idx = resolve_seg_reg(insn, regs, regoff); in get_seg_base_limit()
929 int *regoff, long *eff_addr) in get_eff_addr_reg() argument
940 *regoff = get_reg_offset(insn, regs, REG_TYPE_RM); in get_eff_addr_reg()
941 if (*regoff < 0) in get_eff_addr_reg()
946 *eff_addr = regs_get_register(regs, *regoff) & 0xffff; in get_eff_addr_reg()
948 *eff_addr = regs_get_register(regs, *regoff) & 0xffffffff; in get_eff_addr_reg()
950 *eff_addr = regs_get_register(regs, *regoff); in get_eff_addr_reg()
978 int *regoff, long *eff_addr) in get_eff_addr_modrm() argument
993 *regoff = get_reg_offset(insn, regs, REG_TYPE_RM); in get_eff_addr_modrm()
1000 if (*regoff == -EDOM) { in get_eff_addr_modrm()
1005 } else if (*regoff < 0) { in get_eff_addr_modrm()
1008 tmp = regs_get_register(regs, *regoff); in get_eff_addr_modrm()
1045 int *regoff, short *eff_addr) in get_eff_addr_modrm_16() argument
1085 *regoff = addr_offset1; in get_eff_addr_modrm_16()
1199 int ret, regoff; in get_addr_ref_16() local
1210 ret = get_eff_addr_reg(insn, regs, ®off, &tmp); in get_addr_ref_16()
1216 ret = get_eff_addr_modrm_16(insn, regs, ®off, &eff_addr); in get_addr_ref_16()
1221 ret = get_seg_base_limit(insn, regs, regoff, &seg_base, &seg_limit); in get_addr_ref_16()
1263 int eff_addr, regoff; in get_addr_ref_32() local
1271 ret = get_eff_addr_reg(insn, regs, ®off, &tmp); in get_addr_ref_32()
1279 ret = get_eff_addr_sib(insn, regs, ®off, &tmp); in get_addr_ref_32()
1285 ret = get_eff_addr_modrm(insn, regs, ®off, &tmp); in get_addr_ref_32()
1293 ret = get_seg_base_limit(insn, regs, regoff, &seg_base, &seg_limit); in get_addr_ref_32()
1357 int regoff, ret; in get_addr_ref_64() local
1364 ret = get_eff_addr_reg(insn, regs, ®off, &eff_addr); in get_addr_ref_64()
1370 ret = get_eff_addr_sib(insn, regs, ®off, &eff_addr); in get_addr_ref_64()
1374 ret = get_eff_addr_modrm(insn, regs, ®off, &eff_addr); in get_addr_ref_64()
1381 ret = get_seg_base_limit(insn, regs, regoff, &seg_base, NULL); in get_addr_ref_64()