summaryrefslogtreecommitdiff
path: root/macho/pfileIO3.a
diff options
context:
space:
mode:
authorJohn van Groningen2003-05-06 14:27:01 +0000
committerJohn van Groningen2003-05-06 14:27:01 +0000
commitfb40e282e5bb51da2441f442fa3b136c1bcaed97 (patch)
tree12c1fbf117326bd89a524cbe4eb49a1c3c96ce5a /macho/pfileIO3.a
parentno message (diff)
macho files
Diffstat (limited to 'macho/pfileIO3.a')
-rw-r--r--macho/pfileIO3.a1390
1 files changed, 1390 insertions, 0 deletions
diff --git a/macho/pfileIO3.a b/macho/pfileIO3.a
new file mode 100644
index 0000000..6c532ee
--- /dev/null
+++ b/macho/pfileIO3.a
@@ -0,0 +1,1390 @@
+# comment File: cgpfileIO3.s
+# comment Copyright: University of Nijmegen
+# comment Written by: John van Groningen
+# comment Machine: Power Macintosh
+
+MACOSX = 1
+
+#define sp r1
+
+#define d0 r24
+#define d1 r25
+#define d2 r26
+#define d3 r27
+#define d4 r28
+#define d5 r29
+#define d6 r30
+#define d7 r31
+
+#define a0 r23
+#define a1 r22
+#define a2 r21
+#define a3 r20
+#define a4 r19
+#define a5 r18
+#define a6 r17
+
+#define o0 r3
+#define o1 r4
+#define o2 r5
+#define o3 r6
+#define o4 r7
+#define o5 r8
+
+#define g2 r9
+#define g3 r10
+
+#define g0 r11
+#define g1 r12
+
+#define int_reg r16
+#define char_reg r15
+#define real_reg r14
+#define bool_reg r13
+
+#include "pmacros.a"
+
+ .data
+ .align 3
+tmp_real: .double 0.0
+freadstring_error:
+ .ascii "Error in freadsubstring parameters."
+ .byte 13,0
+ .byte 0,0,0
+fwritestring_error:
+ .ascii "Error in fwritesubstring parameters."
+ .byte 13,0
+ .byte 0,0
+
+ .text
+
+ .globl stdioF
+ .globl stderrF
+ .globl openF
+ .globl closeF
+ .globl reopenF
+ .globl readFC
+ .globl readFI
+ .globl readFR
+ .globl readFS
+ .globl readFString
+ .globl readLineF
+ .globl writeFC
+ .globl writeFI
+ .globl writeFR
+ .globl writeFS
+ .globl writeFString
+ .globl endF
+ .globl errorF
+ .globl positionF
+ .globl seekF
+ .globl shareF
+
+ .globl openSF
+ .globl readSFC
+ .globl readSFI
+ .globl readSFR
+ .globl readSFS
+ .globl readLineSF
+ .globl endSF
+ .globl positionSF
+ .globl seekSF
+
+ .globl collect_0
+ .globl collect_1
+ .globl __STRING__
+
+ .text
+ .globl _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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+
+
+
+
+ .text
+ .globl _file_read_characters
+ .globl 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
+ .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
+
+ .text
+ .if 0
+ .globl _file_read_string
+ .else
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .if 0
+ .globl _file_write_string
+ .else
+ .globl _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
+ .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
+ .text
+ .globl _file_write_characters
+ .globl 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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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
+
+ .text
+ .globl _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
+ .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