Lines Matching defs:regoff

145  * @regoff:	Operand offset, in pt_regs, for which the check is performed
154 * in @regoff. False if otherwise.
156 static bool check_seg_overrides(struct insn *insn, int regoff)
158 if (regoff == offsetof(struct pt_regs, di) && is_string_insn(insn))
235 * @regoff: Operand offset, in pt_regs, used to deterimine segment register
255 * operand indicated by @regoff. If allowed, obtain such overridden segment
262 * The operand register, @regoff, is represented as the offset from the base of
267 * must be valid. However, if @regoff indicates rIP, we don't need to inspect
283 static int resolve_seg_reg(struct insn *insn, struct pt_regs *regs, int regoff)
293 if (regoff == offsetof(struct pt_regs, ip)) {
303 if (!check_seg_overrides(insn, regoff))
304 return resolve_default_seg(insn, regs, regoff);
311 return resolve_default_seg(insn, regs, regoff);
424 static const int regoff[] = {
444 int nr_registers = ARRAY_SIZE(regoff);
512 return regoff[regno];
861 * @regoff: Operand offset, in pt_regs, used to resolve segment descriptor
866 * @regoff and, if any or allowed, override prefixes in @insn. This function is
879 int regoff, unsigned long *base,
887 seg_reg_idx = resolve_seg_reg(insn, regs, regoff);
909 * @regoff: Obtained operand offset, in pt_regs, with the effective address
915 * register operand, as an offset from the base of pt_regs, is saved in @regoff;
923 * operand indicated by ModRM. @regoff will have such operand as an offset from
929 int *regoff, long *eff_addr)
940 *regoff = get_reg_offset(insn, regs, REG_TYPE_RM);
941 if (*regoff < 0)
946 *eff_addr = regs_get_register(regs, *regoff) & 0xffff;
948 *eff_addr = regs_get_register(regs, *regoff) & 0xffffffff;
950 *eff_addr = regs_get_register(regs, *regoff);
959 * @regoff: Obtained operand offset, in pt_regs, associated with segment
966 * segment is stored in @regoff, this parameter can later be used to determine
971 * 0 on success. @eff_addr will have the referenced effective address. @regoff
978 int *regoff, long *eff_addr)
993 *regoff = get_reg_offset(insn, regs, REG_TYPE_RM);
1000 if (*regoff == -EDOM) {
1005 } else if (*regoff < 0) {
1008 tmp = regs_get_register(regs, *regoff);
1026 * @regoff: Obtained operand offset, in pt_regs, associated with segment
1033 * the associated segment is stored in @regoff, this parameter can later be used
1038 * 0 on success. @eff_addr will have the referenced effective address. @regoff
1045 int *regoff, short *eff_addr)
1085 *regoff = addr_offset1;
1094 * @regoff: Obtained operand offset, in pt_regs, associated with segment
1101 * associated segment is stored in @regoff, this parameter can later be used to
1199 int ret, regoff;
1210 ret = get_eff_addr_reg(insn, regs, &regoff, &tmp);
1216 ret = get_eff_addr_modrm_16(insn, regs, &regoff, &eff_addr);
1221 ret = get_seg_base_limit(insn, regs, regoff, &seg_base, &seg_limit);
1263 int eff_addr, regoff;
1271 ret = get_eff_addr_reg(insn, regs, &regoff, &tmp);
1279 ret = get_eff_addr_sib(insn, regs, &regoff, &tmp);
1285 ret = get_eff_addr_modrm(insn, regs, &regoff, &tmp);
1293 ret = get_seg_base_limit(insn, regs, regoff, &seg_base, &seg_limit);
1357 int regoff, ret;
1364 ret = get_eff_addr_reg(insn, regs, &regoff, &eff_addr);
1370 ret = get_eff_addr_sib(insn, regs, &regoff, &eff_addr);
1374 ret = get_eff_addr_modrm(insn, regs, &regoff, &eff_addr);
1381 ret = get_seg_base_limit(insn, regs, regoff, &seg_base, NULL);