   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
  13  goto_if_not_ptr_iszero %r4, L1
  17  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.mapdict.AbstractAttribute.inst_terminator> -> %r0
  22  -live- %i0, %r0, %r1, %r2, %r3
  25  guard_class %r0 -> %i1
  28  getfield_raw_i %i1, FieldDescr<pypy.objspace.std.mapdict.Terminator_vtable.cls__write_terminator> -> %i1
  33  -live- %i0, %i1, %r0, %r1, %r2, %r3
  36  switch %i1, <SwitchDictDescr 0:L2, 1:L3, 2:L4>
  40  unreachable
  41  ---
  41  L2:
  41  -live- %i0, %r0, %r1, %r2, %r3
  44  goto_if_not_int_is_zero %i0, L5
  48  int_return $False
  50  ---
  50  L5:
  50  inline_call_ir_i <JitCode 'Terminator._write_terminator'>, I[%i0], R[%r0, %r1, %r2, %r3] -> %i1
  61  -live- %i1
  64  int_return %i1
  66  ---
  66  L3:
  66  -live- %i0, %r0, %r1, %r2, %r3
  69  goto_if_not_int_is_zero %i0, L6
  73  -live- %r1, %r2, %r3
  76  guard_class %r1 -> %i1
  79  getfield_raw_i %i1, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls_getdict> -> %i1
  84  -live- %i1, %r1, %r2, %r3
  87  int_guard_value %i1
  89  residual_call_r_r %i1, <IndirectCallTargets>, R[%r1], <CallDescr(r) EF=7> -> %r0
  96  -live- %r0, %r2, %r3
  99  inline_call_r_v <JitCode 'setitem_str'>, R[%r0, %r2, %r3]
 106  -live-
 109  int_return $True
 111  ---
 111  L6:
 111  inline_call_ir_i <JitCode 'Terminator._write_terminator'>, I[%i0], R[%r0, %r1, %r2, %r3] -> %i1
 122  -live- %i1
 125  int_return %i1
 127  ---
 127  L4:
 127  -live- %i0, %r0, %r1, %r2, %r3
 130  inline_call_ir_i <JitCode 'Terminator._write_terminator'>, I[%i0], R[%r0, %r1, %r2, %r3] -> %i1
 141  -live- %i1
 144  int_return %i1
 146  ---
 146  L1:
 146  -live- %r1, %r3, %r4
 149  record_quasiimmut_field %r4, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_ever_mutated>, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.mutate_ever_mutated>
 155  getfield_gc_i_pure %r4, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_ever_mutated> -> %i1
 160  -live- %i1, %r1, %r3, %r4
 163  goto_if_not %i1, L7
 167  L8:
 167  -live- %r1, %r3, %r4
 170  guard_class %r4 -> %i1
 173  getfield_raw_i %i1, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute_vtable.cls__direct_write> -> %i1
 178  -live- %i1, %r1, %r3, %r4
 181  switch %i1, <SwitchDictDescr 0:L9, 1:L10>
 185  unreachable
 186  ---
 186  L9:
 186  -live- %r1, %r3, %r4
 189  inline_call_r_v <JitCode 'UnboxedPlainAttribute._direct_write'>, R[%r4, %r1, %r3]
 196  -live-
 199  int_return $True
 201  ---
 201  L10:
 201  -live- %r1, %r3, %r4
 204  getfield_gc_i_pure %r4, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_storageindex> -> %i1
 209  -live- %i1, %r1, %r3
 212  guard_class %r1 -> %i0
 215  getfield_raw_i %i0, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls__mapdict_write_storage> -> %i0
 220  -live- %i0, %i1, %r1, %r3
 223  int_guard_value %i0
 225  residual_call_ir_v %i0, <IndirectCallTargets>, I[%i1], R[%r1, %r3], <CallDescr(rir) EF=5>
 234  -live-
 237  int_return $True
 239  ---
 239  L7:
 239  -live- %r1, %r3, %r4
 242  jit_force_quasi_immutable %r4, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.mutate_ever_mutated>
 246  setfield_gc_i %r4, $True, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_ever_mutated>
 251  goto L8
