   0  -live- %r0, %r1, %r2
   3  guard_class %r0 -> %i0
   6  getfield_raw_i %i0, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute_vtable.cls__prim_direct_read> -> %i0
  11  -live- %i0, %r0, %r1, %r2
  14  switch %i0, <SwitchDictDescr 0:L1, 1:L2>
  18  unreachable
  19  ---
  19  L1:
  19  -live- %r0, %r1, %r2
  22  inline_call_r_r <JitCode 'UnboxedPlainAttribute._prim_direct_read'>, R[%r0, %r1] -> %r4
  29  L3:
  29  -live- %r0, %r2, %r4
  32  getfield_gc_r %r2, FieldDescr<pypy.objspace.std.mapdict.Object.inst_map> -> %r1
  37  -live- %r0, %r1, %r2, %r4
  40  ref_guard_value %r1
  42  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_name> -> %r3
  47  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_attrkind> -> %i0
  52  inline_call_ir_v <JitCode 'AbstractAttribute.add_attr'>, I[%i0], R[%r1, %r2, %r3, %r4]
  62  -live-
  65  void_return
  66  ---
  66  L2:
  66  -live- %r0, %r1, %r2
  69  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_storageindex> -> %i0
  74  -live- %i0, %r0, %r1, %r2
  77  guard_class %r1 -> %i1
  80  getfield_raw_i %i1, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls__mapdict_read_storage> -> %i1
  85  -live- %i0, %i1, %r0, %r1, %r2
  88  int_guard_value %i1
  90  residual_call_ir_r %i1, <IndirectCallTargets>, I[%i0], R[%r1], <CallDescr(ri) EF=5> -> %r4
  99  -live- %r0, %r2, %r4
 102  goto L3
