📄 util.s
字号:
.file "util.c" # rs6000/powerpc options: -msdata=data -G 8 # GNU C version 2.7-97r2 (powerpc-eabi) compiled by GNU C version 2.7-97r2. # options passed: -O # options enabled: -fdefer-pop -fomit-frame-pointer -fthread-jumps # -fpeephole -ffunction-cse -finline -fkeep-static-consts # -fpcc-struct-return -fsjlj-exceptions -fcommon -fverbose-asm # -fgnu-linker -mpowerpc -mnew-mnemonics -meabi -mcall-sysv -msdata=datagcc2_compiled.: .section ".text" .align 2 .globl copy .type copy,@functioncopy: stwu 1,-32(1) mflr 0 stw 27,12(1) stw 28,16(1) stw 29,20(1) stw 30,24(1) stw 31,28(1) stw 0,36(1) mr 27,3 mr 28,4 bl __errno li 0,0 stw 0,0(3) addis 9,0,insize@ha lwz 0,insize@l(9) cmpwi 1,0,0 bc 12,6,.L3 mr 31,9 addis 29,0,inbuf@ha addis 30,0,bytes_out@ha.L6: lwz 5,insize@l(31) cmpwi 1,5,-1 bc 12,6,.L8 mr 3,28 addi 4,29,inbuf@l bl write_buf lwz 0,bytes_out@l(30) lwz 9,insize@l(31) add 0,0,9 stw 0,bytes_out@l(30) mr 3,27 addi 4,29,inbuf@l li 5,0 ori 5,5,32768 bl read stw 3,insize@l(31) cmpwi 1,3,0 bc 4,6,.L6.L3: addis 9,0,insize@ha lwz 0,insize@l(9) cmpwi 1,0,-1 bc 4,6,.L7.L8: bl __errno lwz 0,0(3) cmpwi 1,0,0 bc 12,6,.L7 bl read_error.L7: addis 9,0,bytes_in@ha addis 11,0,bytes_out@ha lwz 0,bytes_out@l(11) stw 0,bytes_in@l(9) li 3,0 lwz 0,36(1) mtlr 0 lwz 27,12(1) lwz 28,16(1) lwz 29,20(1) lwz 30,24(1) lwz 31,28(1) addi 1,1,32 blr.Lfe1: .size copy,.Lfe1-copy .section ".sdata","aw" .align 2 .type crc.4,@object .size crc.4,4crc.4: .long -1 .section ".text" .align 2 .globl updcrc .type updcrc,@functionupdcrc: mr. 11,3 bc 4,2,.L10 li 3,-1 b .L11.L10: addis 9,0,crc.4@ha lwz 3,crc.4@l(9) cmpwi 1,4,0 bc 12,6,.L11 addis 9,0,crc_32_tab@ha addi 10,9,crc_32_tab@l.L13: lbz 0,0(11) xor 0,3,0 rlwinm 0,0,2,22,29 srwi 9,3,8 lwzx 0,10,0 xor 3,9,0 addi 11,11,1 addic. 4,4,-1 bc 4,2,.L13.L11: addis 9,0,crc.4@ha stw 3,crc.4@l(9) nor 3,3,3 blr.Lfe2: .size updcrc,.Lfe2-updcrc .align 2 .globl clear_bufs .type clear_bufs,@functionclear_bufs: addis 9,0,outcnt@ha li 0,0 stw 0,outcnt@l(9) addis 11,0,insize@ha addis 9,0,inptr@ha stw 0,inptr@l(9) stw 0,insize@l(11) addis 11,0,bytes_in@ha addis 9,0,bytes_out@ha stw 0,bytes_out@l(9) stw 0,bytes_in@l(11) blr.Lfe3: .size clear_bufs,.Lfe3-clear_bufs .align 2 .globl fill_inbuf .type fill_inbuf,@functionfill_inbuf: stwu 1,-32(1) mflr 0 stw 27,12(1) stw 28,16(1) stw 29,20(1) stw 30,24(1) stw 31,28(1) stw 0,36(1) mr 27,3 addis 9,0,insize@ha li 29,0 stw 29,insize@l(9) bl __errno stw 29,0(3) addis 28,0,ifd@ha addis 29,0,insize@ha addis 9,0,inbuf@ha addi 30,9,inbuf@l li 31,0 ori 31,31,32768.L19: lwz 5,insize@l(29) lwz 3,ifd@l(28) add 4,5,30 subf 5,5,31 bl read addi 0,3,1 cmplwi 1,0,1 bc 4,5,.L20 lwz 0,insize@l(29) add 0,3,0 stw 0,insize@l(29) cmplwi 1,0,32767 bc 4,5,.L19.L20: addis 9,0,insize@ha lwz 0,insize@l(9) cmpwi 1,0,0 bc 4,6,.L24 cmpwi 1,27,0 bc 12,6,.L25 li 3,-1 b .L26.L25: bl read_error.L24: addis 11,0,bytes_in@ha addis 9,0,insize@ha lwz 0,bytes_in@l(11) lwz 9,insize@l(9) add 0,0,9 stw 0,bytes_in@l(11) addis 9,0,inptr@ha li 0,1 stw 0,inptr@l(9) addis 9,0,inbuf@ha lbz 3,inbuf@l(9).L26: lwz 0,36(1) mtlr 0 lwz 27,12(1) lwz 28,16(1) lwz 29,20(1) lwz 30,24(1) lwz 31,28(1) addi 1,1,32 blr.Lfe4: .size fill_inbuf,.Lfe4-fill_inbuf .align 2 .globl flush_outbuf .type flush_outbuf,@functionflush_outbuf: stwu 1,-16(1) mflr 0 stw 31,12(1) stw 0,20(1) addis 31,0,outcnt@ha lwz 5,outcnt@l(31) cmpwi 1,5,0 bc 12,6,.L27 addis 9,0,ofd@ha lwz 3,ofd@l(9) addis 4,0,outbuf@ha addi 4,4,outbuf@l bl write_buf addis 11,0,bytes_out@ha lwz 0,bytes_out@l(11) lwz 9,outcnt@l(31) add 0,0,9 stw 0,bytes_out@l(11) li 0,0 stw 0,outcnt@l(31).L27: lwz 0,20(1) mtlr 0 lwz 31,12(1) addi 1,1,16 blr.Lfe5: .size flush_outbuf,.Lfe5-flush_outbuf .align 2 .globl flush_window .type flush_window,@functionflush_window: stwu 1,-16(1) mflr 0 stw 30,8(1) stw 31,12(1) stw 0,20(1) addis 30,0,outcnt@ha lwz 4,outcnt@l(30) cmpwi 1,4,0 bc 12,6,.L29 addis 31,0,window@ha addi 3,31,window@l bl updcrc addis 9,0,test@ha lwz 0,test@l(9) cmpwi 1,0,0 bc 4,6,.L31 addis 9,0,ofd@ha lwz 3,ofd@l(9) addi 4,31,window@l lwz 5,outcnt@l(30) bl write_buf.L31: addis 11,0,bytes_out@ha addis 10,0,outcnt@ha lwz 0,bytes_out@l(11) lwz 9,outcnt@l(10) add 0,0,9 stw 0,bytes_out@l(11) li 0,0 stw 0,outcnt@l(10).L29: lwz 0,20(1) mtlr 0 lwz 30,8(1) lwz 31,12(1) addi 1,1,16 blr.Lfe6: .size flush_window,.Lfe6-flush_window .align 2 .globl write_buf .type write_buf,@functionwrite_buf: stwu 1,-24(1) mflr 0 stw 28,8(1) stw 29,12(1) stw 30,16(1) stw 31,20(1) stw 0,28(1) mr 28,3 mr 29,4 mr 30,5.L33: mr 3,28 mr 4,29 mr 5,30 bl write mr 31,3 cmpw 1,31,30 bc 12,6,.L34 cmpwi 1,31,-1 bc 4,6,.L36 bl write_error.L36: subf 30,31,30 add 29,29,31 b .L33.L34: lwz 0,28(1) mtlr 0 lwz 28,8(1) lwz 29,12(1) lwz 30,16(1) lwz 31,20(1) addi 1,1,24 blr.Lfe7: .size write_buf,.Lfe7-write_buf .align 2 .globl strlwr .type strlwr,@functionstrlwr: mr 10,3 lbz 0,0(3) cmpwi 1,0,0 bclr 12,6 addis 9,0,_ctype_+1@ha addi 8,9,_ctype_+1@l.L41: lbz 11,0(10) rlwinm 0,11,0,0xff lbzx 0,8,0 andi. 9,0,1 bc 12,2,.L42 addi 0,11,32 b .L43.L42: lbz 0,0(10).L43: stb 0,0(10) lbzu 0,1(10) cmpwi 1,0,0 bc 4,6,.L41 blr.Lfe8: .size strlwr,.Lfe8-strlwr .align 2 .globl basename .type basename,@functionbasename: stwu 1,-24(1) mflr 0 stw 29,12(1) stw 30,16(1) stw 31,20(1) stw 0,28(1) mr 29,3 li 4,47 bl strrchr addic 0,3,-1 subfe 0,0,0 addi 3,3,1 and 29,29,0 andc 0,3,0 or 3,29,0 lwz 0,28(1) mtlr 0 lwz 29,12(1) lwz 30,16(1) lwz 31,20(1) addi 1,1,24 blr.Lfe9: .size basename,.Lfe9-basename .align 2 .globl make_simple_name .type make_simple_name,@functionmake_simple_name: stwu 1,-16(1) mflr 0 stw 31,12(1) stw 0,20(1) mr 31,3 li 4,46 bl strrchr mr. 3,3 bc 12,2,.L48 xor 0,3,31 srawi 9,0,31 xor 0,9,0 subf 0,0,9 srawi 0,0,31 addi 9,3,1 and 11,3,0 andc 0,9,0 or 3,11,0 li 9,95.L51: lbzu 0,-1(3) cmpwi 1,0,46 bc 4,6,.L53 stb 9,0(3).L53: cmpw 1,3,31 bc 4,6,.L51.L48: lwz 0,20(1) mtlr 0 lwz 31,12(1) addi 1,1,16 blr.Lfe10: .size make_simple_name,.Lfe10-make_simple_name .section ".rodata" .align 2.LC0: .string " \t" .align 2.LC1: .string "out of memory" .align 2.LC2: .string "argc<=0" .section ".text" .align 2 .globl add_envopt .type add_envopt,@functionadd_envopt: stwu 1,-40(1) mflr 0 stw 24,8(1) stw 25,12(1) stw 26,16(1) stw 27,20(1) stw 28,24(1) stw 29,28(1) stw 30,32(1) stw 31,36(1) stw 0,44(1) mr 29,3 mr 24,4 lwz 27,0(29) li 28,0 mr 3,5 bl getenv mr. 26,3 mr 3,28 bc 12,2,.L81 mr 3,26 bl strlen addi 3,3,1 bl xmalloc mr 4,26 bl strcpy mr 26,3 mr 31,26 lbz 0,0(26) cmpw 1,0,28 bc 12,6,.L59 addis 30,0,.LC0@ha mr 25,28.L61: mr 3,31 addi 4,30,.LC0@l bl strspn lbzux 0,31,3 cmpwi 1,0,0 bc 12,6,.L59 mr 3,31 addi 4,30,.LC0@l bl strcspn lbzux 0,31,3 cmpwi 1,0,0 bc 12,6,.L60 stb 25,0(31) addi 31,31,1.L60: addi 28,28,1 lbz 0,0(31) cmpwi 1,0,0 bc 4,6,.L61.L59: cmpwi 1,28,0 bc 4,6,.L65 mr 3,26 bl free li 3,0 b .L81.L65: lwz 3,0(29) add 3,28,3 stw 3,0(29) addi 3,3,1 li 4,4 bl calloc mr. 30,3 bc 4,2,.L66 addis 3,0,.LC1@ha addi 3,3,.LC1@l bl error.L66: lwz 29,0(24) stw 30,0(24) mr 0,27 addi 27,27,-1 cmpwi 1,0,0 bc 4,4,.L67 addis 3,0,.LC2@ha addi 3,3,.LC2@l bl error.L67: lwz 0,0(29) stw 0,0(30) addi 29,29,4 addi 30,30,4 mr 31,26 cmpwi 1,28,0 bc 4,5,.L83 addis 25,0,.LC0@ha.L71: mr 3,31 addi 4,25,.LC0@l bl strspn add 31,31,3 stw 31,0(30) addi 30,30,4.L72: lbz 0,0(31) addi 31,31,1 cmpwi 1,0,0 bc 4,6,.L72 addic. 28,28,-1 bc 12,1,.L71 b .L83.L79: lwz 0,0(29) stw 0,0(30) addi 29,29,4 addi 30,30,4.L83: cmpwi 1,27,0 addi 27,27,-1 bc 4,6,.L79 li 0,0 stw 0,0(30) mr 3,26.L81: lwz 0,44(1) mtlr 0 lwz 24,8(1) lwz 25,12(1) lwz 26,16(1) lwz 27,20(1) lwz 28,24(1) lwz 29,28(1) lwz 30,32(1) lwz 31,36(1) addi 1,1,40 blr.Lfe11: .size add_envopt,.Lfe11-add_envopt .section ".rodata" .align 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -