summaryrefslogtreecommitdiff
path: root/pfileIO3.a
diff options
context:
space:
mode:
Diffstat (limited to 'pfileIO3.a')
-rw-r--r--pfileIO3.a1428
1 files changed, 1428 insertions, 0 deletions
diff --git a/pfileIO3.a b/pfileIO3.a
new file mode 100644
index 0000000..8bf0571
--- /dev/null
+++ b/pfileIO3.a
@@ -0,0 +1,1428 @@
+; File: pfileIO3.s
+; Copyright: University of Nijmegen
+; Written by: John van Groningen
+; Machine: Power Macintosh
+
+ string asis
+
+MACOSX set 1
+
+d0: set r24
+d1: set r25
+d2: set r26
+d3: set r27
+d4: set r28
+d5: set r29
+d6: set r30
+d7: set r31
+a0: set r23
+a1: set r22
+a2: set r21
+a3: set r20
+a4: set r19
+a5: set r18
+a6: set r17
+
+o0: set r3
+o1: set r4
+o2: set r5
+o3: set r6
+o4: set r7
+o5: set r8
+
+g0: set r11
+g1: set r12
+g2: set r13
+g3: set r14
+g4: set r15
+g5: set r16
+
+ include 'pmacros.a'
+
+ csect data{RW}
+ align 3
+tmp_real: dc.d "0.0"
+freadstring_error:
+ dc.b 'Error in freadsubstring parameters.'
+ dc.b 13,0
+ dc.b 0,0,0
+fwritestring_error:
+ dc.b 'Error in fwritesubstring parameters.'
+ dc.b 13,0
+ dc.b 0,0
+
+ csect text{PR}
+
+ export stdioF
+ export stderrF
+ export openF
+ export closeF
+ export reopenF
+ export readFC
+ export readFI
+ export readFR
+ export readFS
+ export readFString
+ export readLineF
+ export writeFC
+ export writeFI
+ export writeFR
+ export writeFS
+ export writeFString
+ export __endF=>'endF'
+ export errorF
+ export positionF
+ export seekF
+ export shareF
+
+ export openSF
+ export readSFC
+ export readSFI
+ export readSFR
+ export readSFS
+ export readLineSF
+ export endSF
+ export positionSF
+ export seekSF
+
+ import collect_0
+ import collect_1
+ import __STRING__
+
+ csect .stdioF{PR}
+ import .open_stdio
+stdioF: mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .open_stdio
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ mr d1,r3
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .stderrF{PR}
+ import .open_stderr
+stderrF: mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .open_stderr
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ mr d1,r3
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .openF{PR}
+ import .open_file
+openF: mr o1,d0
+ addi o0,a0,4
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .open_file
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ addic. d1,o0,0
+ li d0,-1
+ blt openF_1
+ li d2,-1
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+openF_1:
+ li d2,0
+ lwz r0,0(sp)
+ neg d1,d1
+ addi sp,sp,4
+ blr
+
+ csect .closeF{PR}
+ import .close_file
+closeF: mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .close_file
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ mr d0,o0
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .reopenF{PR}
+ import .re_open_file
+reopenF:
+ mr o0,d2
+ mr o1,d0
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .re_open_file
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ mr d1,d2
+ mr d2,o0
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .readFC{PR}
+ import .file_read_char
+readFC:
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_read_char
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ mr d2,o0
+ cmpwi 0,o0,-1
+ li d0,-1
+ beq readFC_eof
+
+ li d3,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+readFC_eof:
+ li d2,0
+ li d3,0
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .readFI{PR}
+ import .file_read_int
+readFI:
+ subi sp,sp,4
+ mr o1,sp
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_read_int
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ lwz d2,0(sp)
+ li d0,-1
+ mr d3,o0
+ lwz r0,4(sp)
+ addi sp,sp,8
+ blr
+
+ csect .readFR{PR}
+ import .file_read_real
+readFR:
+ lea o1,tmp_real
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_read_real
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ lea o1,tmp_real
+ mr d2,o0
+ lfd f14,0(o1)
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+
+
+
+
+ csect .readFString{PR}
+ import .file_read_characters
+ import print_error
+readFString:
+ lwz d4,4(a0)
+ cmplw 0,d3,d4
+ bge readFString_error
+
+ sub o0,d4,d3
+ cmplw 0,d2,o0
+ bgt readFString_error
+
+ addi o2,a0,8
+ stwu d2,-4(sp)
+ add o2,o2,d3
+ mr o1,sp
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_read_characters
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ mr d2,o0
+ li d0,-1
+
+ lwz r0,4(sp)
+ addi sp,sp,8
+ blr
+
+readFString_error:
+ lea o0,freadstring_error
+ b print_error
+
+ csect .readFS{PR}
+ if 0
+ import .file_read_string
+ else
+ import .file_read_characters
+ endif
+readFS:
+ addi d5,d0,8+3
+ srwi d5,d5,2
+ sub. d7,d7,d5
+ blt readFS_gc
+readFS_r_gc:
+ add d7,d7,d5
+ mr d4,d2
+
+ lea o0,__STRING__2
+ addi d3,a6,4
+ stwu o0,4(a6)
+ if 0
+ addi o2,a6,4
+ mr o1,d0
+ else
+ addi o2,a6,8
+ stw d0,4(a6)
+ addi o1,a6,4
+ endif
+ mr o0,d2
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ if 0
+ bl .file_read_string
+ else
+ bl .file_read_characters
+ endif
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+readFS_end:
+ addi d0,o0,3
+ clrrwi d0,d0,2
+ addi a6,a6,4
+ add a6,a6,d0
+ srwi d0,d0,2
+ baddi d0,2
+ bsub d7,d0
+
+ mr a0,d3
+ mr d1,d4
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+readFS_gc:
+ mflr r0
+ bl collect_0
+ b readFS_r_gc
+
+ csect .readLineF{PR}
+ import .file_read_line
+readLineF:
+ li d5,32+2
+ cmpw 0,d7,d5
+ blt readLineF_gc
+
+readLineF_r_gc:
+ mr d4,d1
+
+ lea o0,__STRING__2
+ addi d3,a6,4
+ stwu o0,4(a6)
+
+ addi o2,a6,8
+ subi o1,d7,2
+ slwi o1,o1,2
+ mr o0,d4
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_read_line
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ addic. d0,o0,0
+ stw d0,4(a6)
+ bge readFS_end
+
+ subi d0,d7,2
+ slwi d0,d0,2
+ stwu d0,4(a6)
+
+readLineF_lp:
+ add a6,a6,d0
+
+ lwz d5,4(d3)
+ mr a0,d3
+ srwi d5,d5,2
+ addi d5,d5,2+32
+ neg d7,d5
+
+ mflr r0
+ bl collect_1
+
+ mr a1,a0
+ add d7,d7,d5
+ lwzu d0,4(a1)
+ addi d1,d0,3
+ srwi d1,d1,2
+ subi d7,d7,2
+ sub d7,d7,d1
+
+ lea o0,__STRING__2
+ subic. d1,d1,1
+
+ addi d3,a6,4
+ stw o0,4(a6)
+ stwu d0,8(a6)
+ blt end_copy_string1
+
+copy_st_lp1:
+ lwzu g1,4(a1)
+ subic. d1,d1,1
+ stwu g1,4(a6)
+ bge copy_st_lp1
+end_copy_string1:
+
+ addi o2,a6,4
+ slwi o1,d7,2
+ mr o0,d4
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_read_line
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ addic. d0,o0,0
+ lwz g1,4(d3)
+ blt readLineF_again
+
+ mr a0,d3
+ add g1,g1,d0
+ stw g1,4(d3)
+
+ addi d1,d0,3
+ srwi d1,d1,2
+ sub d7,d7,d1
+ slwi d1,d1,2
+ add a6,a6,d1
+
+ mr d1,d4
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+readLineF_gc:
+ sub d7,d7,d5
+ mflr r0
+ bl collect_0
+ add d7,d7,d5
+ b readLineF_r_gc
+
+readLineF_again:
+ slwi d0,d7,2
+ add g1,g1,d0
+ stw g1,4(d3)
+ b readLineF_lp
+
+ csect .writeFC{PR}
+ import .file_write_char
+writeFC:
+ mr o1,d1
+ mr o0,d2
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_write_char
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .writeFI{PR}
+ import .file_write_int
+writeFI:
+ mr o1,d1
+ mr o0,d2
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_write_int
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .writeFR{PR}
+ import .file_write_real
+writeFR:
+ mr o2,d1
+ fmr f1,f14
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_write_real
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .writeFS{PR}
+ if 0
+ import .file_write_string
+ else
+ import .file_write_characters
+ endif
+writeFS:
+ if 0
+ mr o1,d1
+ addi o0,a0,4
+ else
+ lwz o1,4(a0)
+ mr o2,d1
+ addi o0,a0,8
+ endif
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ if 0
+ bl .file_write_string
+ else
+ bl .file_write_characters
+ endif
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ if 1
+ csect .writeFString{PR}
+ import .file_write_characters
+ import print_error
+writeFString:
+ lwz d4,4(a0)
+ cmplw 0,d3,d4
+ bge writeFString_error
+
+ sub o0,d4,d3
+ cmplw 0,d2,o0
+ bgt writeFString_error
+
+ mr o2,d1
+ addi o0,a0,8
+ mr o1,d2
+ add o0,o0,d3
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_write_characters
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+writeFString_error:
+ lea o0,fwritestring_error
+ b print_error
+ endif
+
+ csect .__endF{PR}
+ import .file_end
+__endF:
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_end
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ li d0,-1
+ mr d2,o0
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .errorF{PR}
+ import .file_error
+errorF:
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_error
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ mr d2,o0
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .positionF{PR}
+ import .file_position
+positionF:
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_position
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ mr d2,o0
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .seekF{PR}
+ import .file_seek
+seekF:
+ mr o2,d0
+ mr o1,d1
+ mr o0,d3
+ mr d1,d3
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_seek
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ mr d2,o0
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .shareF{PR}
+ import .file_share
+shareF:
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_share
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ li d0,-1
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .openSF{PR}
+ import .open_s_file
+openSF:
+ mr o1,d0
+ addi o0,a0,4
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .open_s_file
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ addic. d1,o0,0
+ li d0,0
+ blt openSF_1
+ li d2,-1
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+openSF_1:
+ li d2,0
+ lwz r0,0(sp)
+ neg d1,d1
+ addi sp,sp,4
+ blr
+
+ csect .readSFC{PR}
+ import .file_read_s_char
+readSFC:
+ stwu d0,-4(sp)
+ mr o1,sp
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_read_s_char
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ mr d2,o0
+ cmpwi 0,o0,-1
+ lwz d0,0(sp)
+ beq readSFC_eof
+
+ li d3,-1
+ lwz r0,4(sp)
+ addi sp,sp,8
+ blr
+
+readSFC_eof:
+ li d2,0
+ li d3,0
+ lwz r0,4(sp)
+ addi sp,sp,8
+ blr
+
+ csect .readSFI{PR}
+ import .file_read_s_int
+readSFI:
+ stwu d0,-4(sp)
+ mr o2,sp
+ subi sp,sp,4
+ mr o1,sp
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_read_s_int
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ lwz d2,0(sp)
+ lwz d0,4(sp)
+ mr d3,o0
+
+ lwz r0,8(sp)
+ addi sp,sp,12
+ blr
+
+ csect .readSFR{PR}
+ import .file_read_s_real
+readSFR:
+ stwu d0,-4(sp)
+ mr o2,sp
+ lea o1,tmp_real
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_read_s_real
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ lea g1,tmp_real
+ lwz d0,0(sp)
+ lfd f14,0(g1)
+ mr d2,o0
+ lwz r0,4(sp)
+ addi sp,sp,8
+ blr
+
+ csect .readSFS{PR}
+ import .file_read_s_string
+readSFS:
+ addi d5,d0,8+3
+ srwi d5,d5,2
+ sub. d7,d7,d5
+ blt readSFS_gc
+readSFS_r_gc:
+ add d7,d7,d5
+ mr d4,d2
+
+ lea o0,__STRING__2
+ addi d3,a6,4
+ stwu o0,4(a6)
+
+ stwu d1,-4(sp)
+ mr o3,sp
+ addi o2,a6,4
+ mr o1,d0
+ mr o0,d2
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_read_s_string
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+readSFS_end:
+ addi d0,d0,3
+ clrrwi d0,d0,2
+ addi a6,a6,4
+ add a6,a6,d0
+ srwi d0,d0,2
+ baddi d0,2
+ bsub d7,d0
+
+ mr a0,d3
+ mr d1,d4
+ lwz d0,0(sp)
+ lwz r0,4(sp)
+ addi sp,sp,8
+ blr
+
+readSFS_gc:
+ mflr r0
+ bl collect_0
+ b readSFS_r_gc
+
+ csect .readLineSF{PR}
+ import .file_read_s_line
+readLineSF:
+ li d5,32+2
+ cmpw 0,d7,d5
+ blt readLineSF_gc
+
+readLineSF_r_gc:
+ stwu d0,-4(sp)
+ mr d4,d1
+
+ lea o0,__STRING__2
+ addi d3,a6,4
+ stwu o0,4(a6)
+
+ mr o3,sp
+ addi o2,a6,8
+ subi o1,d7,2
+ slwi o1,o1,2
+ mr o0,d4
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_read_s_line
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ addic. d0,o0,0
+ stw d0,4(a6)
+ bge readSFS_end
+
+ subi d0,d7,2
+ slwi d0,d0,2
+ stwu d0,4(a6)
+
+readLineSF_lp:
+ add a6,a6,d0
+
+ lwz d5,4(d3)
+ mr a0,d3
+ srwi d5,d5,2
+ addi d5,d5,2+32
+ neg d7,d5
+
+ mflr r0
+ bl collect_1
+
+ mr a1,a0
+ add d7,d7,d5
+ lwzu d0,4(a1)
+ addi d1,d0,3
+ srwi d1,d1,2
+ subi d7,d7,2
+ sub d7,d7,d1
+
+ lea o0,__STRING__2
+ subic. d1,d1,1
+
+ addi d3,a6,4
+ stw o0,4(a6)
+ stwu d0,8(a6)
+ blt end_copy_string2
+
+copy_st_lp2:
+ lwzu g1,4(a1)
+ subic. d1,d1,1
+ stwu g1,4(a6)
+ bge copy_st_lp2
+end_copy_string2:
+
+ mr o3,sp
+ addi o2,a6,4
+ slwi o1,d7,2
+ mr o0,d4
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_read_s_line
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ addic. d0,o0,0
+ lwz g1,4(d3)
+ blt readLineSF_again
+
+ mr a0,d3
+ add g1,g1,d0
+ stw g1,4(d3)
+
+ addi d1,d0,3
+ srwi d1,d1,2
+ sub d7,d7,d1
+ slwi d1,d1,2
+ add a6,a6,d1
+
+ lwz d0,0(sp)
+ mr d1,d4
+ lwz r0,4(sp)
+ addi sp,sp,8
+ blr
+
+readLineSF_gc:
+ sub d7,d7,d5
+ mflr r0
+ bl collect_0
+ add d7,d7,d5
+ b readLineSF_r_gc
+
+readLineSF_again:
+ slwi d0,d7,2
+ add g1,g1,d0
+ stw g1,4(d3)
+ b readLineSF_lp
+
+ csect .endSF{PR}
+ import .file_s_end
+endSF:
+ mr o1,d0
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_s_end
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ mr d0,o0
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .positionSF{PR}
+ import .file_s_position
+positionSF:
+ mr o1,d0
+ mr o0,d1
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_s_position
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ mr d0,o0
+
+ lwz r0,0(sp)
+ addi sp,sp,4
+ blr
+
+ csect .seekSF{PR}
+ import .file_s_seek
+seekSF:
+ stwu d2,-4(sp)
+ mr o3,sp
+
+ mr o2,d0
+ mr o1,d1
+ mr o0,d3
+ mr d1,d3
+
+ mflr r0
+ if MACOSX
+ mr g0,sp
+ ori sp,sp,28
+ stwu g0,-(64+28)(sp)
+ stw r0,60(sp)
+ else
+ stw r0,-4(sp)
+ stwu sp,-64(sp)
+ endif
+ bl .file_s_seek
+ lwz r0,60(sp)
+ if MACOSX
+ lwz sp,0(sp)
+ else
+ addi sp,sp,64
+ endif
+ mtlr r0
+
+ lwz d0,0(sp)
+ mr d2,o0
+
+ lwz r0,4(sp)
+ addi sp,sp,8
+ blr
+
+ macro
+ te &address
+ tc &address{TC},&address
+ endm
+
+ toc
+
+ te tmp_real
+ te freadstring_error
+ te fwritestring_error
+ tc __STRING__2{TC},__STRING__+2