   0  getfield_gc_i %r0, FieldDescr<pypy.module._io.interp_bufferedio.W_BufferedIOBase.inst_readable> -> %i1
   5  -live- %i0, %i1, %r0
   5  goto_if_not %i1, L1
   9  getfield_gc_i %r0, FieldDescr<pypy.module._io.interp_bufferedio.W_BufferedIOBase.inst_read_end> -> %i1
  14  -live- %i0, %i1, %r0
  14  goto_if_not_int_ne %i1, $-1, L2
  19  getfield_gc_i %r0, FieldDescr<pypy.module._io.interp_bufferedio.W_BufferedIOBase.inst_read_end> -> %i1
  24  getfield_gc_i %r0, FieldDescr<pypy.module._io.interp_bufferedio.W_BufferedIOBase.inst_pos> -> %i2
  29  int_sub %i1, %i2 -> %i1
  33  L3:
  33  -live- %i0, %i1, %r0
  33  goto_if_not_int_le %i0, %i1, L4
  38  getfield_gc_i %r0, FieldDescr<pypy.module._io.interp_bufferedio.W_BufferedIOBase.inst_pos> -> %i1
  43  int_add %i1, %i0 -> %i0
  47  getfield_gc_r %r0, FieldDescr<pypy.module._io.interp_bufferedio.W_BufferedIOBase.inst_buffer> -> %r1
  52  int_sub %i0, %i1 -> %i2
  56  -live- %i0, %i1, %i2, %r0, %r1
  56  guard_class %r1 -> %i3
  59  getfield_raw_i %i3, FieldDescr<rpython.rlib.buffer.Buffer_vtable.cls_getslice> -> %i3
  64  -live- %i0, %i1, %i2, %i3, %r0, %r1
  64  int_guard_value %i3
  66  residual_call_ir_r %i3, <IndirectCallTargets>, I[%i1, %i0, $1, %i2], R[%r1], <CallDescr(riiii) EF=7> -> %r1
  78  -live- %i0, %r0, %r1
  78  setfield_gc_i %r0, %i0, FieldDescr<pypy.module._io.interp_bufferedio.W_BufferedIOBase.inst_pos>
  83  ref_return %r1
  85  ---
  85  L4:
  85  ref_return $<* struct rpy_string>
  87  ---
  87  L2:
  87  int_copy $0 -> %i1
  90  goto L3
  93  ---
  93  L1:
  93  int_copy $0 -> %i1
  96  goto L3
