   0  -live- %i0, %i1, %i2
   3  switch %i0, <SwitchDictDescr 0:L1, 1:L2, 2:L3, 3:L4>
   7  unreachable
   8  ---
   8  L1:
   8  -live- %i1, %i2
  11  goto_if_not_int_is_zero %i1, L5
  15  ref_return $<* struct pypy.interpreter.baseobjspace.W_Root>
  17  ---
  17  L5:
  17  -live- %i1, %i2
  20  goto_if_not_int_eq %i2, $-1, L6
  25  residual_call_ir_r $<* fn charp2str>, I[%i1], R[], <CallDescr(i) EF=5> -> %r0
  33  L7:
  33  -live- %r0
  36  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0000555aafd147c8> -> %r1
  40  setfield_gc_r %r1, %r0, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value>
  45  ref_return %r1
  47  ---
  47  L6:
  47  residual_call_ir_r $<* fn charp2strn>, I[%i1, %i2], R[], <CallDescr(ii) EF=5> -> %r0
  56  -live- %r0
  59  goto L7
  62  ---
  62  L2:
  62  -live- %i1, %i2
  65  inline_call_ir_r <JitCode 'wcharp2unicode'>, I[%i1, %i2], R[] -> %r1
  73  -live- %r1
  76  ref_return %r1
  78  ---
  78  L3:
  78  -live- %i1, %i2
  81  inline_call_ir_r <JitCode 'charp2rawstring'>, I[%i1, %i2], R[] -> %r1
  89  -live- %r1
  92  ref_return %r1
  94  ---
  94  L4:
  94  -live- %i1, %i2
  97  goto_if_not_int_eq %i2, $-1, L8
 102  inline_call_ir_r <JitCode 'wcharp2unicode'>, I[%i1, $-1], R[] -> %r1
 110  -live- %r1
 113  ref_return %r1
 115  ---
 115  L8:
 115  residual_call_ir_r $<* fn wcharpsize2utf8>, I[%i1, %i2], R[], <CallDescr(ii) EF=5> -> %r0
 124  -live- %i2, %r0
 127  catch_exception L9
 130  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0000555aaf9d4100> -> %r1
 134  setfield_gc_r %r1, %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8>
 139  setfield_gc_i %r1, %i2, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length>
 144  setfield_gc_r %r1, $<* None>, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__index_storage>
 149  ref_return %r1
 151  ---
 151  L9:
 151  goto_if_exception_mismatch $<* struct object_vtable>, L10
 155  last_exc_value -> %r0
 157  inline_call_r_v <JitCode 'wrap_unicode_out_of_range_error'>, R[%r0]
 162  -live-
 165  raise $<* struct object>
 167  ---
 167  L10:
 167  reraise
