+ o->op_ppaddr = oi->old_pp;
+ break;
+ case OP_RV2HV:
+ if (o->op_ppaddr != a_pp_rv2hv && o->op_ppaddr != a_pp_rv2hv_simple)
+ break;
+ oi = a_map_fetch(o);
+ if (!oi)
+ break;
+ if (!(oi->flags & A_HINT_DEREF)) {
+ o->op_ppaddr = oi->old_pp;
+ break;
+ }
+#if A_HAS_SCALARKEYS_OPT
+ flags = oi->flags;
+ if ((flags & A_HINT_KEYS) && (flags & A_HINT_SECOND)) {
+ U8 want = o->op_flags & OPf_WANT;
+ if (want == OPf_WANT_VOID || want == OPf_WANT_SCALAR)
+ o->op_ppaddr = a_pp_rv2hv_dokeys;
+ else if (oi->old_pp == a_pp_rv2hv || oi->old_pp == a_pp_rv2hv_simple)
+ o->op_ppaddr = oi->old_pp;
+ }
+#endif