   0  -live- %r0, %r1, %r2
   3  goto_if_not_ptr_iszero %r2, L1
   7  L2:
   7  -live- %r0, %r1, %r2
  10  goto_if_not_ptr_iszero %r1, L3
  14  -live- %r0, %r2
  17  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>
  23  getfield_gc_r_pure $<* struct pypy.module.sys.moduledef.Module>, FieldDescr<pypy.module.sys.moduledef.Module.inst_defaultencoding> -> %r3
  28  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r3, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
  36  -live- %i0, %r0, %r2
  39  goto_if_not %i0, L4
  43  L5:
  43  -live- %r0
  46  guard_class %r0 -> %i0
  49  getfield_raw_i %i0, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls_utf8_w> -> %i0
  54  -live- %i0, %r0
  57  switch %i0, <SwitchDictDescr 0:L6, 1:L7, 2:L8>
  61  unreachable
  62  ---
  62  L6:
  62  -live- %r0
  65  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i0
  70  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r3
  75  ref_copy %r0 -> %r2
  78  record_known_result_i_ir_v %i0, $<* fn _check_utf8>, I[$True, $0, $-1], R[%r3], <CallDescr(riii) EF=4>
  89  -live- %r0, %r2
  92  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r3
  97  L9:
  97  -live- %r2, %r3
 100  goto_if_not_ptr_nonzero %r2, L10
 104  ref_copy %r2 -> %r1
 107  -live- %r1, %r2, %r3
 110  guard_class %r1 -> %i0
 113  getfield_raw_i %i0, FieldDescr<object_vtable.subclassrange_min> -> %i0
 118  int_between $TotalOrderSymbolic('compute_fn'), %i0, $TotalOrderSymbolic('compute_fn') -> %i0
 123  -live- %i0, %r2, %r3
 126  goto_if_not %i0, L11
 130  getfield_gc_i_pure %r2, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i0
 135  getfield_gc_r_pure %r2, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r1
 140  strlen %r1 -> %i1
 143  -live- %i0, %i1, %r2, %r3
 146  goto_if_not_int_eq %i0, %i1, L12
 151  L13:
 151  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0000aaab0cb26aa0> -> %r2
 155  setfield_gc_r %r2, %r3, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value>
 160  ref_return %r2
 162  ---
 162  L12:
 162  L14:
 162  inline_call_r_v <JitCode 'check_ascii'>, R[%r3]
 167  -live- %r2, %r3
 170  catch_exception L15
 173  goto L13
 176  ---
 176  L15:
 176  goto_if_exception_mismatch $<* struct object_vtable>, L16
 180  last_exc_value -> %r0
 182  -live- %r0, %r2, %r3
 185  guard_class %r2 -> %i0
 188  getfield_raw_i %i0, FieldDescr<object_vtable.subclassrange_min> -> %i1
 193  int_between $TotalOrderSymbolic('compute_fn'), %i1, $TotalOrderSymbolic('compute_fn') -> %i1
 198  -live- %i0, %i1, %r0, %r2, %r3
 201  goto_if_not %i1, L17
 205  int_copy $'\x00' -> %i0
 208  L18:
 208  getfield_gc_i %r0, FieldDescr<rpython.rlib.rutf8.CheckError.inst_pos> -> %i1
 213  int_add %i1, $1 -> %i2
 217  -live- %i0, %i1, %i2, %r3
 220  switch %i0, <SwitchDictDescr 0:L19, 1:L20>
 224  unreachable
 225  ---
 225  L19:
 225  -live- %i1, %i2, %r3
 228  inline_call_ir_r <JitCode 'raise_unicode_exception_encode'>, I[%i1, %i2], R[$<* struct rpy_string>, $<* struct rpy_string>, $<* struct rpy_string>, %r3] -> %r3
 240  -live-
 243  raise $<* struct object>
 245  ---
 245  L20:
 245  -live- %i1, %i2, %r3
 248  inline_call_ir_r <JitCode 'raise_unicode_exception_decode'>, I[%i1, %i2], R[$<* struct rpy_string>, $<* struct rpy_string>, $<* struct rpy_string>, %r3] -> %r3
 260  -live-
 263  raise $<* struct object>
 265  ---
 265  L17:
 265  ref_copy %r2 -> %r1
 268  -live- %i0, %r0, %r1, %r2, %r3
 271  int_guard_value %i0
 273  -live- %r0, %r1, %r2, %r3
 276  guard_class %r1 -> %i0
 279  getfield_raw_i %i0, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls_getclass> -> %i0
 284  -live- %i0, %r0, %r2, %r3
 287  switch %i0, <SwitchDictDescr 0:L21, 1:L22, 2:L23, 3:L24>
 291  unreachable
 292  ---
 292  L21:
 292  -live- %r0, %r2, %r3
 295  guard_class %r2 -> %i0
 298  getfield_raw_i %i0, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls__get_mapdict_map> -> %i0
 303  -live- %i0, %r0, %r2, %r3
 306  int_guard_value %i0
 308  residual_call_r_r %i0, <IndirectCallTargets>, R[%r2], <CallDescr(r) EF=2> -> %r2
 315  -live- %r0, %r2, %r3
 318  getfield_gc_r_pure %r2, FieldDescr<pypy.objspace.std.mapdict.AbstractAttribute.inst_terminator> -> %r2
 323  getfield_gc_r_pure %r2, FieldDescr<pypy.objspace.std.mapdict.Terminator.inst_w_cls> -> %r2
 328  L25:
 328  inline_call_r_i <JitCode 'W_TypeObject.issubtype'>, R[%r2, $<* struct pypy.objspace.std.typeobject.W_TypeObject>] -> %i0
 335  -live- %i0, %r0, %r3
 338  goto_if_not %i0, L26
 342  int_copy $'\x00' -> %i0
 345  goto L18
 348  ---
 348  L26:
 348  int_copy $'\x01' -> %i0
 351  goto L18
 354  ---
 354  L22:
 354  -live- %r0, %r2, %r3
 357  getfield_gc_r %r2, FieldDescr<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable.inst_map> -> %r2
 362  -live- %r0, %r2, %r3
 365  ref_guard_value %r2
 367  getfield_gc_r_pure %r2, FieldDescr<pypy.objspace.std.mapdict.AbstractAttribute.inst_terminator> -> %r2
 372  getfield_gc_r_pure %r2, FieldDescr<pypy.objspace.std.mapdict.Terminator.inst_w_cls> -> %r2
 377  goto L25
 380  ---
 380  L23:
 380  -live- %r0, %r2, %r3
 383  getfield_gc_r %r2, FieldDescr<pypy.objspace.std.proxyobject.W_Transparent.inst_w_type> -> %r2
 388  goto L25
 391  ---
 391  L24:
 391  -live- %r0, %r2, %r3
 394  guard_class %r2 -> %i0
 397  getfield_raw_r %i0, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.pbc2internal_memofield_gettypefor_3> -> %r2
 402  goto L25
 405  ---
 405  L16:
 405  reraise
 406  ---
 406  L11:
 406  goto L14
 409  ---
 409  L10:
 409  goto L14
 412  ---
 412  L7:
 412  -live- %r0
 415  ref_copy %r0 -> %r2
 418  getfield_gc_r_pure %r2, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value> -> %r3
 423  goto L9
 426  ---
 426  L8:
 426  -live- %r0
 429  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
 438  -live- %r3
 441  assert_not_none %r3
 443  -live- %r3
 446  guard_class %r3 -> %i0
 449  -live- %r3
 452  raise %r3
 454  ---
 454  L4:
 454  ref_copy $<* struct rpy_string> -> %r1
 457  L27:
 457  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 465  -live- %i0, %r0, %r1, %r2
 468  goto_if_not %i0, L28
 472  goto L5
 475  ---
 475  L28:
 475  -live- %r0, %r1, %r2
 478  goto_if_not_ptr_iszero %r1, L29
 482  -live- %r0, %r2
 485  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>
 491  getfield_gc_r_pure $<* struct pypy.module.sys.moduledef.Module>, FieldDescr<pypy.module.sys.moduledef.Module.inst_defaultencoding> -> %r3
 496  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r3, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 504  -live- %i0, %r0, %r2
 507  goto_if_not %i0, L30
 511  L31:
 511  -live- %r0
 514  guard_class %r0 -> %i0
 517  getfield_raw_i %i0, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls_utf8_w> -> %i0
 522  -live- %i0, %r0
 525  switch %i0, <SwitchDictDescr 0:L32, 1:L33, 2:L34>
 529  unreachable
 530  ---
 530  L32:
 530  -live- %r0
 533  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i0
 538  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r3
 543  ref_copy %r0 -> %r2
 546  record_known_result_i_ir_v %i0, $<* fn _check_utf8>, I[$True, $0, $-1], R[%r3], <CallDescr(riii) EF=4>
 557  -live- %r0, %r2
 560  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r3
 565  L35:
 565  -live- %r2, %r3
 568  goto_if_not_ptr_nonzero %r2, L36
 572  ref_copy %r2 -> %r1
 575  -live- %r1, %r2, %r3
 578  guard_class %r2 -> %i0
 581  getfield_raw_i %i0, FieldDescr<object_vtable.subclassrange_min> -> %i0
 586  int_between $TotalOrderSymbolic('compute_fn'), %i0, $TotalOrderSymbolic('compute_fn') -> %i0
 591  -live- %i0, %r1, %r3
 594  goto_if_not %i0, L37
 598  getfield_gc_i_pure %r1, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i0
 603  getfield_gc_r_pure %r1, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r2
 608  strlen %r2 -> %i1
 611  -live- %i0, %i1, %r3
 614  goto_if_not_int_eq %i0, %i1, L38
 619  L39:
 619  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0000aaab0cb26aa0> -> %r2
 623  setfield_gc_r %r2, %r3, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value>
 628  ref_return %r2
 630  ---
 630  L38:
 630  L40:
 630  residual_call_r_i $<* fn surrogate_in_utf8>, R[%r3], <CallDescr(r) EF=4> -> %i0
 637  -live- %i0, %r3
 640  goto_if_not_int_ge %i0, $0, L41
 645  residual_call_r_r $<* fn reencode_utf8_with_surrogates>, R[%r3], <CallDescr(r) EF=5> -> %r3
 652  -live- %r3
 655  goto L39
 658  ---
 658  L41:
 658  goto L39
 661  ---
 661  L37:
 661  goto L40
 664  ---
 664  L36:
 664  goto L40
 667  ---
 667  L33:
 667  -live- %r0
 670  ref_copy %r0 -> %r2
 673  getfield_gc_r_pure %r2, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value> -> %r3
 678  goto L35
 681  ---
 681  L34:
 681  -live- %r0
 684  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
 693  -live- %r3
 696  assert_not_none %r3
 698  -live- %r3
 701  guard_class %r3 -> %i0
 704  -live- %r3
 707  raise %r3
 709  ---
 709  L30:
 709  ref_copy $<* struct rpy_string> -> %r1
 712  L42:
 712  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 720  -live- %i0, %r0, %r1, %r2
 723  goto_if_not %i0, L43
 727  goto L31
 730  ---
 730  L43:
 730  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 738  -live- %i0, %r0, %r1, %r2
 741  goto_if_not %i0, L44
 745  goto L31
 748  ---
 748  L44:
 748  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 756  -live- %i0, %r0, %r1, %r2
 759  goto_if_not %i0, L45
 763  goto L31
 766  ---
 766  L45:
 766  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 774  -live- %i0, %r0, %r1, %r2
 777  goto_if_not %i0, L46
 781  L47:
 781  -live- %r0, %r1, %r2
 784  goto_if_not_ptr_nonzero %r0, L48
 788  ref_copy %r0 -> %r3
 791  -live- %r0, %r1, %r2, %r3
 794  guard_class %r3 -> %i0
 797  getfield_raw_i %i0, FieldDescr<object_vtable.subclassrange_min> -> %i0
 802  int_between $TotalOrderSymbolic('compute_fn'), %i0, $TotalOrderSymbolic('compute_fn') -> %i0
 807  -live- %i0, %r0, %r1, %r2
 810  goto_if_not %i0, L49
 814  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i0
 819  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r3
 824  strlen %r3 -> %i1
 827  -live- %i0, %i1, %r0, %r1, %r2, %r3
 830  goto_if_not_int_eq %i0, %i1, L50
 835  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0000aaab0cb26aa0> -> %r2
 839  setfield_gc_r %r2, %r3, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value>
 844  ref_return %r2
 846  ---
 846  L50:
 846  L51:
 846  inline_call_r_r <JitCode 'encode'>, R[%r0, %r1, %r2] -> %r2
 854  -live- %r2
 857  ref_return %r2
 859  ---
 859  L49:
 859  goto L51
 862  ---
 862  L48:
 862  goto L51
 865  ---
 865  L46:
 865  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 873  -live- %i0, %r0, %r1, %r2
 876  goto_if_not %i0, L52
 880  goto L47
 883  ---
 883  L52:
 883  goto L51
 886  ---
 886  L29:
 886  goto L42
 889  ---
 889  L3:
 889  goto L27
 892  ---
 892  L1:
 892  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r2, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 900  -live- %i0, %r0, %r1, %r2
 903  goto_if_not %i0, L53
 907  goto L2
 910  ---
 910  L53:
 910  goto L51
