   0  -live- %r0, %r1, %r2
   0  goto_if_not_ptr_iszero %r2, L1
   4  L2:
   4  -live- %r0, %r1, %r2
   4  goto_if_not_ptr_iszero %r1, L3
   8  -live- %r0, %r2
   8  record_quasiimmut_field $<* struct pypy.module.sys.moduledef.Module>, FieldDescr<pypy.module.sys.moduledef.Module.inst_defaultencoding>, FieldDescr<pypy.module.sys.moduledef.Module.mutate_defaultencoding>
  14  getfield_gc_r_pure $<* struct pypy.module.sys.moduledef.Module>, FieldDescr<pypy.module.sys.moduledef.Module.inst_defaultencoding> -> %r3
  19  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r3, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
  27  -live- %i0, %r0, %r2
  27  goto_if_not %i0, L4
  31  L5:
  31  -live- %r0
  31  guard_class %r0 -> %i0
  34  getfield_raw_i %i0, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls_utf8_w> -> %i0
  39  -live- %i0, %r0
  39  switch %i0, <SwitchDictDescr 0:L6, 1:L7, 2:L8>
  43  unreachable
  44  ---
  44  L6:
  44  -live- %r0
  44  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r2
  49  L9:
  49  -live- %r0, %r2
  49  goto_if_not_ptr_nonzero %r0, L10
  53  ref_copy %r0 -> %r3
  56  -live- %r0, %r2, %r3
  56  guard_class %r3 -> %i0
  59  getfield_raw_i %i0, FieldDescr<object_vtable.subclassrange_min> -> %i0
  64  int_between $TotalOrderSymbolic('compute_fn'), %i0, $TotalOrderSymbolic('compute_fn') -> %i0
  69  -live- %i0, %r0, %r2
  69  goto_if_not %i0, L11
  73  getfield_gc_i %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i0
  78  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r3
  83  strlen %r3 -> %i1
  86  -live- %i0, %i1, %r0, %r2
  86  goto_if_not_int_eq %i0, %i1, L12
  91  L13:
  91  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aac5501f30> -> %r1
  95  setfield_gc_r %r1, %r2, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value>
 100  ref_return %r1
 102  ---
 102  L12:
 102  L14:
 102  inline_call_r_v <JitCode 'check_ascii'>, R[%r2]
 107  -live- %r0, %r2
 107  catch_exception L15
 110  goto L13
 113  ---
 113  L15:
 113  goto_if_exception_mismatch $<* struct object_vtable>, L16
 117  last_exc_value -> %r3
 119  -live- %r0, %r2, %r3
 119  guard_class %r0 -> %i0
 122  getfield_raw_i %i0, FieldDescr<object_vtable.subclassrange_min> -> %i0
 127  int_between $TotalOrderSymbolic('compute_fn'), %i0, $TotalOrderSymbolic('compute_fn') -> %i0
 132  -live- %i0, %r0, %r2, %r3
 132  goto_if_not %i0, L17
 136  int_copy $'\x00' -> %i0
 139  L18:
 139  getfield_gc_i %r3, FieldDescr<rpython.rlib.rutf8.CheckError.inst_pos> -> %i1
 144  int_add %i1, $1 -> %i2
 148  -live- %i0, %i1, %i2, %r2
 148  switch %i0, <SwitchDictDescr 0:L19, 1:L20>
 152  unreachable
 153  ---
 153  L19:
 153  -live- %i1, %i2, %r2
 153  inline_call_ir_r <JitCode 'raise_unicode_exception_encode'>, I[%i1, %i2], R[$<* struct rpy_string>, $<* struct rpy_string>, $<* struct rpy_string>, %r2] -> %r3
 165  -live-
 165  raise $<* struct object>
 167  ---
 167  L20:
 167  -live- %i1, %i2, %r2
 167  inline_call_ir_r <JitCode 'raise_unicode_exception_decode'>, I[%i1, %i2], R[$<* struct rpy_string>, $<* struct rpy_string>, $<* struct rpy_string>, %r2] -> %r3
 179  -live-
 179  raise $<* struct object>
 181  ---
 181  L17:
 181  -live- %r0, %r2, %r3
 181  guard_class %r0 -> %i0
 184  -live- %i0, %r0, %r2, %r3
 184  int_guard_value %i0
 186  -live- %r0, %r2, %r3
 186  guard_class %r0 -> %i0
 189  getfield_raw_i %i0, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls_getclass> -> %i0
 194  getfield_raw_i %i0, FieldDescr<specfunc.variant0> -> %i0
 199  -live- %i0, %r0, %r2, %r3
 199  int_guard_value %i0
 201  residual_call_r_r %i0, <IndirectCallTargets>, R[%r0], <CallDescr(r) EF=2> -> %r1
 208  -live- %r1, %r2, %r3
 208  inline_call_r_i <JitCode 'W_TypeObject.issubtype'>, R[%r1, $<* struct pypy.objspace.std.typeobject.W_TypeObject>] -> %i0
 215  -live- %i0, %r2, %r3
 215  -live- %i0, %r2, %r3
 215  goto_if_not %i0, L21
 219  int_copy $'\x00' -> %i0
 222  goto L18
 225  ---
 225  L21:
 225  int_copy $'\x01' -> %i0
 228  goto L18
 231  ---
 231  L16:
 231  reraise
 232  ---
 232  L11:
 232  goto L14
 235  ---
 235  L10:
 235  goto L14
 238  ---
 238  L7:
 238  -live- %r0
 238  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value> -> %r2
 243  goto L9
 246  ---
 246  L8:
 246  -live- %r0
 246  inline_call_r_r <JitCode 'oefmt__expected__s__got__T_object_star_2'>, R[$<* struct pypy.objspace.std.typeobject.W_TypeObject>, $<* struct rpy_string>, $<* struct rpy_string>, %r0] -> %r3
 255  -live- %r3
 255  assert_not_none %r3
 257  -live- %r3
 257  guard_class %r3 -> %i0
 260  -live- %r3
 260  raise %r3
 262  ---
 262  L4:
 262  ref_copy $<* struct rpy_string> -> %r1
 265  L22:
 265  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 273  -live- %i0, %r0, %r1, %r2
 273  goto_if_not %i0, L23
 277  goto L5
 280  ---
 280  L23:
 280  -live- %r0, %r1, %r2
 280  goto_if_not_ptr_iszero %r1, L24
 284  -live- %r0, %r2
 284  record_quasiimmut_field $<* struct pypy.module.sys.moduledef.Module>, FieldDescr<pypy.module.sys.moduledef.Module.inst_defaultencoding>, FieldDescr<pypy.module.sys.moduledef.Module.mutate_defaultencoding>
 290  getfield_gc_r_pure $<* struct pypy.module.sys.moduledef.Module>, FieldDescr<pypy.module.sys.moduledef.Module.inst_defaultencoding> -> %r3
 295  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r3, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 303  -live- %i0, %r0, %r2
 303  goto_if_not %i0, L25
 307  L26:
 307  -live- %r0
 307  guard_class %r0 -> %i0
 310  getfield_raw_i %i0, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls_utf8_w> -> %i0
 315  -live- %i0, %r0
 315  switch %i0, <SwitchDictDescr 0:L27, 1:L28, 2:L29>
 319  unreachable
 320  ---
 320  L27:
 320  -live- %r0
 320  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r3
 325  L30:
 325  residual_call_r_i $<* fn surrogate_in_utf8>, R[%r3], <CallDescr(r) EF=4> -> %i0
 332  -live- %i0, %r3
 332  -live- %i0, %r3
 332  goto_if_not_int_ge %i0, $0, L31
 337  residual_call_r_r $<* fn reencode_utf8_with_surrogates>, R[%r3], <CallDescr(r) EF=5> -> %r3
 344  -live- %r3
 344  L32:
 344  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aac5501f30> -> %r1
 348  setfield_gc_r %r1, %r3, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value>
 353  ref_return %r1
 355  ---
 355  L31:
 355  goto L32
 358  ---
 358  L28:
 358  -live- %r0
 358  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value> -> %r3
 363  goto L30
 366  ---
 366  L29:
 366  -live- %r0
 366  inline_call_r_r <JitCode 'oefmt__expected__s__got__T_object_star_2'>, R[$<* struct pypy.objspace.std.typeobject.W_TypeObject>, $<* struct rpy_string>, $<* struct rpy_string>, %r0] -> %r3
 375  -live- %r3
 375  assert_not_none %r3
 377  -live- %r3
 377  guard_class %r3 -> %i0
 380  -live- %r3
 380  raise %r3
 382  ---
 382  L25:
 382  ref_copy $<* struct rpy_string> -> %r1
 385  L33:
 385  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 393  -live- %i0, %r0, %r1, %r2
 393  goto_if_not %i0, L34
 397  goto L26
 400  ---
 400  L34:
 400  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 408  -live- %i0, %r0, %r1, %r2
 408  goto_if_not %i0, L35
 412  goto L26
 415  ---
 415  L35:
 415  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 423  -live- %i0, %r0, %r1, %r2
 423  goto_if_not %i0, L36
 427  goto L26
 430  ---
 430  L36:
 430  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 438  -live- %i0, %r0, %r1, %r2
 438  goto_if_not %i0, L37
 442  L38:
 442  -live- %r0, %r1, %r2
 442  goto_if_not_ptr_nonzero %r0, L39
 446  ref_copy %r0 -> %r3
 449  -live- %r0, %r1, %r2, %r3
 449  guard_class %r3 -> %i0
 452  getfield_raw_i %i0, FieldDescr<object_vtable.subclassrange_min> -> %i0
 457  int_between $TotalOrderSymbolic('compute_fn'), %i0, $TotalOrderSymbolic('compute_fn') -> %i0
 462  -live- %i0, %r0, %r1, %r2
 462  goto_if_not %i0, L40
 466  getfield_gc_i %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i0
 471  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r3
 476  strlen %r3 -> %i1
 479  -live- %i0, %i1, %r0, %r1, %r2, %r3
 479  goto_if_not_int_eq %i0, %i1, L41
 484  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aac5501f30> -> %r1
 488  setfield_gc_r %r1, %r3, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value>
 493  ref_return %r1
 495  ---
 495  L41:
 495  L42:
 495  inline_call_r_r <JitCode 'encode'>, R[%r0, %r1, %r2] -> %r1
 503  -live- %r1
 503  ref_return %r1
 505  ---
 505  L40:
 505  goto L42
 508  ---
 508  L39:
 508  goto L42
 511  ---
 511  L37:
 511  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 519  -live- %i0, %r0, %r1, %r2
 519  goto_if_not %i0, L43
 523  goto L38
 526  ---
 526  L43:
 526  goto L42
 529  ---
 529  L24:
 529  goto L33
 532  ---
 532  L3:
 532  goto L22
 535  ---
 535  L1:
 535  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r2, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 543  -live- %i0, %r0, %r1, %r2
 543  goto_if_not %i0, L44
 547  goto L2
 550  ---
 550  L44:
 550  goto L42
