diff options
Diffstat (limited to 'pfileIO3.a')
-rw-r--r-- | pfileIO3.a | 1428 |
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 |