   0  uint_le %i0, $127L -> %i2
   4  -live- %i0, %i1, %i2
   4  goto_if_not %i2, L1
   8  newstr $1 -> %r0
  11  strsetitem %r0, $0, %i0
  15  ref_return %r0
  17  ---
  17  L1:
  17  uint_le %i0, $2047L -> %i2
  21  -live- %i0, %i1, %i2
  21  goto_if_not %i2, L2
  25  uint_rshift %i0, $6 -> %i2
  29  int_or %i2, $192L -> %i2
  33  int_and %i0, $63L -> %i1
  37  int_or %i1, $128L -> %i1
  41  newstr $1 -> %r0
  44  strsetitem %r0, $0, %i2
  48  newstr $1 -> %r1
  51  strsetitem %r1, $0, %i1
  55  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[%r0, %r1], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r0
  63  -live- %r0
  63  ref_return %r0
  65  ---
  65  L2:
  65  uint_le %i0, $65535L -> %i2
  69  -live- %i0, %i1, %i2
  69  goto_if_not %i2, L3
  73  -live- %i0, %i1
  73  goto_if_not %i1, L4
  77  L5:
  77  uint_rshift %i0, $12 -> %i2
  81  int_or %i2, $224L -> %i2
  85  uint_rshift %i0, $6 -> %i1
  89  int_and %i1, $63L -> %i1
  93  int_or %i1, $128L -> %i1
  97  newstr $1 -> %r0
 100  strsetitem %r0, $0, %i2
 104  newstr $1 -> %r1
 107  strsetitem %r1, $0, %i1
 111  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[%r0, %r1], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r0
 119  -live- %i0, %r0
 119  int_and %i0, $63L -> %i2
 123  int_or %i2, $128L -> %i2
 127  newstr $1 -> %r1
 130  strsetitem %r1, $0, %i2
 134  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[%r0, %r1], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r0
 142  -live- %r0
 142  ref_return %r0
 144  ---
 144  L4:
 144  uint_ge %i0, $55296L -> %i2
 148  -live- %i0, %i2
 148  goto_if_not %i2, L6
 152  uint_le %i0, $57343L -> %i2
 156  -live- %i0, %i2
 156  goto_if_not %i2, L7
 160  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000000018dd529f8> -> %r0
 164  setfield_gc_i %r0, %i0, FieldDescr<rpython.rlib.rutf8.OutOfRange.inst_code>
 169  assert_not_none %r0
 171  -live- %r0
 171  guard_class %r0 -> %i2
 174  -live- %r0
 174  raise %r0
 176  ---
 176  L7:
 176  goto L5
 179  ---
 179  L6:
 179  goto L5
 182  ---
 182  L3:
 182  uint_le %i0, $1114111L -> %i2
 186  -live- %i0, %i2
 186  goto_if_not %i2, L8
 190  uint_rshift %i0, $18 -> %i2
 194  int_or %i2, $240L -> %i2
 198  uint_rshift %i0, $12 -> %i1
 202  int_and %i1, $63L -> %i1
 206  int_or %i1, $128L -> %i1
 210  newstr $1 -> %r0
 213  strsetitem %r0, $0, %i2
 217  newstr $1 -> %r1
 220  strsetitem %r1, $0, %i1
 224  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[%r0, %r1], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r0
 232  -live- %i0, %r0
 232  uint_rshift %i0, $6 -> %i2
 236  int_and %i2, $63L -> %i2
 240  int_or %i2, $128L -> %i2
 244  newstr $1 -> %r1
 247  strsetitem %r1, $0, %i2
 251  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[%r0, %r1], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r0
 259  -live- %i0, %r0
 259  int_and %i0, $63L -> %i2
 263  int_or %i2, $128L -> %i2
 267  newstr $1 -> %r1
 270  strsetitem %r1, $0, %i2
 274  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[%r0, %r1], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r0
 282  -live- %r0
 282  ref_return %r0
 284  ---
 284  L8:
 284  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000000018dd529f8> -> %r0
 288  setfield_gc_i %r0, %i0, FieldDescr<rpython.rlib.rutf8.OutOfRange.inst_code>
 293  assert_not_none %r0
 295  -live- %r0
 295  guard_class %r0 -> %i2
 298  -live- %r0
 298  raise %r0
