   0  residual_call_ir_r $<* fn AbstractAttribute.find_map_attr>, I[%i0], R[%r0, %r2], <CallDescr(rri) EF=0> -> %r4
  10  -live- %i0, %r0, %r1, %r2, %r3, %r4
  10  goto_if_not_ptr_iszero %r4, L1
  14  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.mapdict.AbstractAttribute.inst_terminator> -> %r0
  19  -live- %i0, %r0, %r1, %r2, %r3
  19  guard_class %r0 -> %i1
  22  getfield_raw_i %i1, FieldDescr<pypy.objspace.std.mapdict.Terminator_vtable.cls__write_terminator> -> %i1
  27  -live- %i0, %i1, %r0, %r1, %r2, %r3
  27  switch %i1, <SwitchDictDescr 0:L2, 1:L3, 2:L4>
  31  unreachable
  32  ---
  32  L2:
  32  -live- %i0, %r0, %r1, %r2, %r3
  32  -live- %i0, %r0, %r1, %r2, %r3
  32  goto_if_not_int_is_zero %i0, L5
  36  int_return $False
  38  ---
  38  L5:
  38  inline_call_ir_i <JitCode 'Terminator._write_terminator'>, I[%i0], R[%r0, %r1, %r2, %r3] -> %i1
  49  -live- %i1
  49  int_return %i1
  51  ---
  51  L3:
  51  -live- %i0, %r0, %r1, %r2, %r3
  51  -live- %i0, %r0, %r1, %r2, %r3
  51  goto_if_not_int_is_zero %i0, L6
  55  -live- %r1, %r2, %r3
  55  guard_class %r1 -> %i1
  58  getfield_raw_i %i1, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls_getdict> -> %i1
  63  getfield_raw_i %i1, FieldDescr<specfunc.variant0> -> %i1
  68  -live- %i1, %r1, %r2, %r3
  68  int_guard_value %i1
  70  residual_call_r_r %i1, <IndirectCallTargets>, R[%r1], <CallDescr(r) EF=7> -> %r0
  77  -live- %r0, %r2, %r3
  77  inline_call_r_v <JitCode 'setitem_str'>, R[%r0, %r2, %r3]
  84  -live-
  84  int_return $True
  86  ---
  86  L6:
  86  inline_call_ir_i <JitCode 'Terminator._write_terminator'>, I[%i0], R[%r0, %r1, %r2, %r3] -> %i1
  97  -live- %i1
  97  int_return %i1
  99  ---
  99  L4:
  99  -live- %i0, %r0, %r1, %r2, %r3
  99  inline_call_ir_i <JitCode 'Terminator._write_terminator'>, I[%i0], R[%r0, %r1, %r2, %r3] -> %i1
 110  -live- %i1
 110  int_return %i1
 112  ---
 112  L1:
 112  -live- %r1, %r3, %r4
 112  record_quasiimmut_field %r4, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_ever_mutated>, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.mutate_ever_mutated>
 118  getfield_gc_i_pure %r4, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_ever_mutated> -> %i1
 123  -live- %i1, %r1, %r3, %r4
 123  goto_if_not %i1, L7
 127  L8:
 127  -live- %r1, %r3, %r4
 127  guard_class %r4 -> %i1
 130  getfield_raw_i %i1, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute_vtable.cls__direct_write> -> %i1
 135  -live- %i1, %r1, %r3, %r4
 135  switch %i1, <SwitchDictDescr 0:L9, 1:L10>
 139  unreachable
 140  ---
 140  L9:
 140  -live- %r1, %r3, %r4
 140  inline_call_r_v <JitCode 'UnboxedPlainAttribute._direct_write'>, R[%r4, %r1, %r3]
 147  -live-
 147  int_return $True
 149  ---
 149  L10:
 149  -live- %r1, %r3, %r4
 149  getfield_gc_i_pure %r4, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_storageindex> -> %i1
 154  -live- %i1, %r1, %r3
 154  guard_class %r1 -> %i0
 157  getfield_raw_i %i0, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls__mapdict_write_storage> -> %i0
 162  -live- %i0, %i1, %r1, %r3
 162  int_guard_value %i0
 164  residual_call_ir_v %i0, <IndirectCallTargets>, I[%i1], R[%r1, %r3], <CallDescr(rir) EF=5>
 173  -live-
 173  int_return $True
 175  ---
 175  L7:
 175  -live- %r1, %r3, %r4
 175  jit_force_quasi_immutable %r4, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.mutate_ever_mutated>
 179  setfield_gc_i %r4, $True, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_ever_mutated>
 184  goto L8
