   0  int_signext %i0, $4 -> %i0
   4  -live- %i0, %r0, %r1
   4  goto_if_not_ptr_iszero %r1, L1
   8  int_copy $<* None> -> %i1
  11  int_copy $'\x04' -> %i2
  14  int_copy $<* None> -> %i3
  17  ref_copy %r1 -> %r2
  20  ref_copy $<* struct rpy_string> -> %r3
  23  L2:
  23  residual_call_ir_i $<* fn ccall_fdopen__INT_arrayPtr>, I[%i0, %i3], R[], <CallDescr(ii) EF=7> -> %i0
  32  -live- %i0, %i1, %i2, %r0, %r2, %r3
  32  -live- %i0, %i1, %i2, %r0, %r2, %r3
  32  goto_if_not_ptr_iszero %r2, L3
  36  L4:
  36  setfield_gc_i %r0, %i0, FieldDescr<pypy.module._cffi_backend.ctypeptr.CffiFileObj.inst_llf>
  41  -live- %i0
  41  goto_if_not_int_is_true %i0, L5
  45  residual_call_ir_v $<* fn ccall_setbuf__FILEPtr_arrayPtr>, I[%i0, $<* None>], R[], <CallDescr(ii) EF=7>
  53  -live-
  53  void_return
  54  ---
  54  L5:
  54  residual_call_ir_i $<* fn _ll_1_threadlocalref_get__INTLlT_Signed>, I[$CDefinedIntSymbolic('RPY_TLOFS_rpy_errno')], R[], <CallDescr(i) EF=2 OS_THREADLOCALREF_GET> -> %i0
  62  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aabdec1d00> -> %r1
  66  setfield_gc_r %r1, $<* struct rpy_string>, FieldDescr<exceptions.EnvironmentError.inst_strerror>
  71  setfield_gc_i %r1, %i0, FieldDescr<exceptions.EnvironmentError.inst_errno>
  76  assert_not_none %r1
  78  -live- %r1
  78  guard_class %r1 -> %i0
  81  -live- %r1
  81  raise %r1
  83  ---
  83  L3:
  83  residual_call_ir_v $<* fn free_nonmovingbuffer_ll>, I[%i1, %i2], R[%r3], <CallDescr(iri) EF=2>
  92  goto L4
  95  ---
  95  L1:
  95  ref_copy %r1 -> %r2
  98  residual_call_r_r $<* fn get_nonmovingbuffer_ll_final_null>, R[%r1], <CallDescr(r) EF=5> -> %r1
 105  -live- %i0, %r0, %r1, %r2
 105  getfield_gc_i_pure %r1, FieldDescr<tuple3.item0> -> %i1
 110  getfield_gc_r_pure %r1, FieldDescr<tuple3.item1> -> %r3
 115  getfield_gc_i_pure %r1, FieldDescr<tuple3.item2> -> %i2
 120  int_copy %i1 -> %i3
 123  goto L2
