📄 trees.s
字号:
add 11,11,30 slwi 9,10,2 add 9,9,30 sth 29,2(9) sth 29,2(11) stw 29,4(27) addi 29,29,1 mr 3,30 li 4,1 bl pqdownheap lwz 0,heap_len@l(24) cmpwi 1,0,1 bc 12,5,.L155 addis 11,0,heap@ha addi 11,11,heap@l addis 9,0,heap_max@ha lwz 0,heap_max@l(9) addic 0,0,-1 stw 0,heap_max@l(9) slwi 0,0,2 lwz 9,4(11) stwx 9,11,0 mr 3,23 bl gen_bitlen mr 3,30 mr 4,28 bl gen_codes lwz 0,52(1) mtlr 0 lwz 23,12(1) lwz 24,16(1) lwz 25,20(1) lwz 26,24(1) lwz 27,28(1) lwz 28,32(1) lwz 29,36(1) lwz 30,40(1) lwz 31,44(1) addi 1,1,48 blr.Lfe6: .size build_tree,.Lfe6-build_tree .align 2 .type scan_tree,@functionscan_tree: stwu 1,-16(1) stw 31,12(1) mr 31,3 mr 3,4 li 4,-1 lhz 5,2(31) li 8,0 li 7,7 li 10,4 cmpw 1,5,8 bc 4,6,.L163 li 7,138 li 10,3.L163: slwi 9,3,2 add 9,9,31 li 0,-1 sth 0,6(9) li 12,0 cmpw 1,12,3 bc 12,5,.L165 addis 9,0,bl_tree@ha addi 6,9,bl_tree@l.L167: mr 11,5 slwi 9,12,2 add 9,9,31 lhz 5,6(9) addi 8,8,1 cmpw 1,8,7 bc 4,4,.L168 cmpw 1,11,5 bc 12,6,.L166.L168: cmpw 1,8,10 bc 4,4,.L170 slwi 9,11,2 lhzx 0,6,9 add 0,0,8 sthx 0,6,9 b .L169.L170: cmpwi 1,11,0 bc 12,6,.L172 cmpw 1,11,4 bc 12,6,.L173 slwi 9,11,2 lhzx 0,6,9 addic 0,0,1 sthx 0,6,9.L173: lhz 0,64(6) addic 0,0,1 sth 0,64(6) b .L169.L172: cmpwi 1,8,10 bc 12,5,.L175 lhz 0,68(6) addic 0,0,1 sth 0,68(6) b .L169.L175: lhz 0,72(6) addic 0,0,1 sth 0,72(6).L169: li 8,0 mr 4,11 cmpw 1,5,8 bc 4,6,.L177 li 7,138 li 10,3 b .L166.L177: cmpw 1,11,5 bc 4,6,.L179 li 7,6 li 10,3 b .L166.L179: li 7,7 li 10,4.L166: addi 12,12,1 cmpw 1,12,3 bc 4,5,.L167.L165: lwz 31,12(1) addi 1,1,16 blr.Lfe7: .size scan_tree,.Lfe7-scan_tree .align 2 .type send_tree,@functionsend_tree: stwu 1,-48(1) mflr 0 stw 23,12(1) stw 24,16(1) stw 25,20(1) stw 26,24(1) stw 27,28(1) stw 28,32(1) stw 29,36(1) stw 30,40(1) stw 31,44(1) stw 0,52(1) mr 23,3 mr 24,4 li 10,-1 lhz 26,2(23) li 31,0 li 11,7 li 0,4 cmpw 1,26,31 bc 4,6,.L183 li 11,138 li 0,3.L183: li 25,0 cmpw 1,25,24 bc 12,5,.L185 addis 9,0,bl_tree@ha addi 27,9,bl_tree@l.L187: mr 28,26 slwi 9,25,2 add 9,9,23 lhz 26,6(9) addi 31,31,1 cmpw 1,31,11 bc 4,4,.L188 cmpw 1,28,26 bc 12,6,.L186.L188: cmpw 1,31,0 bc 4,4,.L190 slwi 30,28,2 add 29,30,27.L191: lhzx 3,27,30 lhz 4,2(29) bl send_bits addic. 31,31,-1 bc 4,2,.L191 b .L189.L190: cmpwi 1,28,0 bc 12,6,.L196 cmpw 1,28,10 bc 12,6,.L197 slwi 0,28,2 add 9,0,27 lhzx 3,27,0 lhz 4,2(9) bl send_bits addi 31,31,-1.L197: lhz 3,64(27) lhz 4,66(27) bl send_bits addi 3,31,-3 li 4,2 b .L206.L196: cmpwi 1,31,10 bc 12,5,.L199 lhz 3,68(27) lhz 4,70(27) bl send_bits addi 3,31,-3 li 4,3 b .L206.L199: lhz 3,72(27) lhz 4,74(27) bl send_bits addi 3,31,-11 li 4,7.L206: bl send_bits.L189: li 31,0 mr 10,28 cmpw 1,26,31 bc 4,6,.L201 li 11,138 li 0,3 b .L186.L201: cmpw 1,28,26 bc 4,6,.L203 li 11,6 li 0,3 b .L186.L203: li 11,7 li 0,4.L186: addi 25,25,1 cmpw 1,25,24 bc 4,5,.L187.L185: lwz 0,52(1) mtlr 0 lwz 23,12(1) lwz 24,16(1) lwz 25,20(1) lwz 26,24(1) lwz 27,28(1) lwz 28,32(1) lwz 29,36(1) lwz 30,40(1) lwz 31,44(1) addi 1,1,48 blr.Lfe8: .size send_tree,.Lfe8-send_tree .align 2 .type build_bl_tree,@functionbuild_bl_tree: stwu 1,-8(1) mflr 0 stw 0,12(1) addis 9,0,l_desc+24@ha addis 3,0,dyn_ltree@ha addi 3,3,dyn_ltree@l lwz 4,l_desc+24@l(9) bl scan_tree addis 9,0,d_desc+24@ha addis 3,0,dyn_dtree@ha addi 3,3,dyn_dtree@l lwz 4,d_desc+24@l(9) bl scan_tree addis 3,0,bl_desc@ha addi 3,3,bl_desc@l bl build_tree li 3,18 addis 9,0,bl_tree@ha addi 10,9,bl_tree@l addis 9,0,bl_order@ha addi 11,9,bl_order@l.L211: lbzx 9,11,3 slwi 9,9,2 add 9,9,10 lhz 0,2(9) cmpwi 1,0,0 bc 4,6,.L209 addi 3,3,-1 cmpwi 1,3,2 bc 12,5,.L211.L209: addis 10,0,opt_len@ha lwz 9,opt_len@l(10) addi 9,9,14 addi 11,3,1 slwi 0,11,1 add 0,0,11 add 9,9,0 stw 9,opt_len@l(10) lwz 0,12(1) mtlr 0 addi 1,1,8 blr.Lfe9: .size build_bl_tree,.Lfe9-build_bl_tree .align 2 .type send_all_trees,@functionsend_all_trees: stwu 1,-32(1) mflr 0 stw 26,8(1) 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 26,4 mr 30,5 addi 3,27,-257 li 4,5 bl send_bits addi 3,26,-1 li 4,5 bl send_bits addi 3,30,-4 li 4,4 bl send_bits li 31,0 cmpw 1,31,30 bc 4,4,.L216 addis 9,0,bl_tree@ha addi 28,9,bl_tree@l addis 9,0,bl_order@ha addi 29,9,bl_order@l.L218: lbzx 9,29,31 slwi 9,9,2 add 9,9,28 lhz 3,2(9) li 4,3 bl send_bits addi 31,31,1 cmpw 1,31,30 bc 12,4,.L218.L216: addis 3,0,dyn_ltree@ha addi 3,3,dyn_ltree@l addi 4,27,-1 bl send_tree addis 3,0,dyn_dtree@ha addi 3,3,dyn_dtree@l addi 4,26,-1 bl send_tree lwz 0,36(1) mtlr 0 lwz 26,8(1) 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.Lfe10: .size send_all_trees,.Lfe10-send_all_trees .section ".rodata" .align 2.LC0: .string "block vanished" .section ".text" .align 2 .globl flush_block .type flush_block,@functionflush_block: 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 28,3 mr 30,4 mr 29,5 addis 11,0,flag_buf@ha addi 11,11,flag_buf@l addis 9,0,last_flags@ha lwz 10,last_flags@l(9) addis 9,0,flags@ha lbz 0,flags@l(9) stbx 0,11,10 addis 9,0,file_type@ha lwz 9,file_type@l(9) lhz 9,0(9) li 0,0 ori 0,0,65535 cmpw 1,9,0 bc 4,6,.L221 bl set_file_type.L221: addis 3,0,l_desc@ha addi 3,3,l_desc@l bl build_tree addis 3,0,d_desc@ha addi 3,3,d_desc@l bl build_tree bl build_bl_tree mr 27,3 addis 9,0,opt_len@ha lwz 0,opt_len@l(9) addic 10,0,10 srwi 10,10,3 addis 9,0,static_len@ha lwz 0,static_len@l(9) addic 8,0,10 srwi 8,8,3 addis 9,0,input_len@ha lwz 0,input_len@l(9) add 0,30,0 stw 0,input_len@l(9) subfc 9,8,10 subfe 9,9,9 and 0,10,9 andc 9,8,9 or 10,0,9 addi 31,30,4 subfc 0,31,10 li 0,0 adde 0,0,0 addic 9,28,-1 subfe 11,9,28 and. 9,0,11 bc 12,2,.L226 mr 3,29 li 4,3 bl send_bits addis 11,0,compressed_len@ha lwz 9,compressed_len@l(11) addi 9,9,10 rlwinm 9,9,0,0,28 slwi 0,31,3 add 0,0,9 stw 0,compressed_len@l(11) mr 3,28 mr 4,30 li 5,1 bl copy_block b .L225.L226: cmpw 1,8,10 bc 4,6,.L228 addi 3,29,2 li 4,3 bl send_bits addis 3,0,static_ltree@ha addi 3,3,static_ltree@l addis 4,0,static_dtree@ha addi 4,4,static_dtree@l bl compress_block addis 11,0,compressed_len@ha lwz 0,compressed_len@l(11) addic 0,0,3 addis 9,0,static_len@ha lwz 9,static_len@l(9) b .L231.L228: addi 3,29,4 li 4,3 bl send_bits addis 9,0,l_desc+24@ha lwz 3,l_desc+24@l(9) addis 9,0,d_desc+24@ha lwz 4,d_desc+24@l(9) addi 3,3,1 addi 4,4,1 addi 5,27,1 bl send_all_trees addis 3,0,dyn_ltree@ha addi 3,3,dyn_ltree@l addis 4,0,dyn_dtree@ha addi 4,4,dyn_dtree@l bl compress_block addis 11,0,compressed_len@ha lwz 0,compressed_len@l(11) addic 0,0,3 addis 9,0,opt_len@ha lwz 9,opt_len@l(9).L231: add 0,0,9 stw 0,compressed_len@l(11).L225: bl init_block cmpwi 1,29,0 bc 12,6,.L230 bl bi_windup addis 9,0,compressed_len@ha lwz 0,compressed_len@l(9) addic 0,0,7 stw 0,compressed_len@l(9).L230: addis 9,0,compressed_len@ha lwz 3,compressed_len@l(9) srwi 3,3,3 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.Lfe11: .size flush_block,.Lfe11-flush_block .align 2 .globl ct_tally .type ct_tally,@functionct_tally: addis 9,0,inbuf@ha addi 9,9,inbuf@l addis 11,0,last_lit@ha lwz 0,last_lit@l(11) stbx 4,9,0 addic 0,0,1 stw 0,last_lit@l(11) mr. 3,3 bc 4,2,.L233 addis 9,0,dyn_ltree@ha addi 9,9,dyn_ltree@l slwi 11,4,2 lhzx 0,9,11 addic 0,0,1 sthx 0,9,11 b .L234.L233: addi 3,3,-1 addis 11,0,dyn_ltree@ha addis 9,0,length_code@ha addi 9,9,length_code@l lbzx 9,9,4 addi 9,9,257 addi 11,11,dyn_ltree@l slwi 9,9,2 lhzx 0,11,9 addic 0,0,1 sthx 0,11,9 cmpwi 1,3,255 addis 9,0,dyn_dtree@ha addi 8,9,dyn_dtree@l cmpwi 1,3,255 bc 12,5,.L237 addis 9,0,dist_code@ha addi 9,9,dist_code@l lbzx 11,9,3 b .L252.L237: addis 9,0,dist_code@ha addi 9,9,dist_code@l srawi 0,3,7 addic 0,0,256 lbzx 11,9,0.L252: slwi 11,11,2 addis 9,0,dyn_dtree@ha addi 10,9,dyn_dtree@l cmpwi 1,3,255 bc 12,5,.L239 addis 9,0,dist_code@ha addi 9,9,dist_code@l lbzx 0,9,3 b .L253.L239: addis 9,0,dist_code@ha addi 9,9,dist_code@l srawi 0,3,7 addic 0,0,256 lbzx 0,9,0.L253: slwi 0,0,2 lhzx 0,10,0 addic 0,0,1 sthx 0,8,11 addis 11,0,d_buf@ha addi 11,11,d_buf@l addis 10,0,last_dist@ha lwz 0,last_dist@l(10) add 9,0,0 sthx 3,11,9 addic 0,0,1 stw 0,last_dist@l(10) addis 11,0,flags@ha addis 9,0,flag_bit@ha lbz 0,flags@l(11) lbz 9,flag_bit@l(9) or 0,0,9 stb 0,flags@l(11).L234: addis 6,0,flag_bit@ha lbz 0,flag_bit@l(6) slwi 0,0,1 stb 0,flag_bit@l(6) addis 9,0,last_lit@ha lwz 0,last_lit@l(9) andi. 7,0,7 bc 4,2,.L241 addis 11,0,flag_buf@ha addi 11,11,flag_buf@l addis 8,0,last_flags@ha lwz 0,last_flags@l(8) addis 10,0,flags@ha lbz 9,flags@l(10) stbx 9,11,0 addic 0,0,1 stw 0,last_flags@l(8) stb 7,flags@l(10) li 0,1 stb 0,flag_bit@l(6).L241: addis 9,0,level@ha lwz 0,level@l(9) cmpwi 1,0,2 bc 4,5,.L242 addis 9,0,last_lit@ha lwz 9,last_lit@l(9) andi. 0,9,4095 bc 4,2,.L242 slwi 10,9,3 addis 9,0,strstart@ha addis 11,0,block_start@ha lwz 9,strstart@l(9) lwz 0,block_start@l(11) subf 6,0,9 li 11,0 addis 9,0,dyn_dtree@ha addi 7,9,dyn_dtree@l addis 9,0,extra_dbits@ha addi 8,9,extra_dbits@l.L246: slwi 0,11,2 lhzx 9,7,0 lwzx 0,8,0 addic 0,0,5 mullw 9,9,0 add 10,10,9 addi 11,11,1 cmpwi 1,11,29 bc 4,5,.L246 srwi 10,10,3 addis 11,0,last_dist@ha addis 9,0,last_lit@ha lwz 0,last_lit@l(9) srwi 0,0,1 lwz 9,last_dist@l(11) cmplw 1,9,0 bc 4,4,.L242 srwi 0,6,1 cmplw 1,10,0 li 3,1 bclr 12,4.L242: li 3,0 addis 9,0,last_lit@ha lwz 0,last_lit@l(9) cmpwi 1,0,32767 bc 12,6,.L250 addis 9,0,last_dist@ha lwz 9,last_dist@l(9) li 0,0 ori 0,0,32768 cmpw 1,9,0 bclr 4,6.L250: li 3,1 blr.Lfe12: .size ct_tally,.Lfe12-ct_tally .align 2 .type compress_block,@functioncompress_block: stwu 1,-72(1) mflr 0 stw 16,8(1) stw 17,12(1) stw 18,16(1) stw 19,20(1) stw 20,24(1) stw 21,28(1) stw 22,32(1) stw 23,36(1) stw 24,40(1) stw 25,44(1) stw 26,48(1) stw 27,52(1) stw 28,56(1) stw 29,60(1) stw 30,64(1) stw 31,68(1) stw 0,76(1) mr 26,3 mr 24,4 li 29,0 mr 27,29 mr 25,29 mr 28,29 addis 9,0,last_lit@ha lwz 0,last_lit@l(9) cmpw 1,0,29 bc 12,6,.L255 addis 9,0,flag_buf@ha addi 16,9,flag_buf@l addis 9,0,inbuf@ha addi 17,9,inbuf@l addis 9,0,length_code@ha addi 18,9,length_code@l addis 9,0,extra_lbits@ha addi 19,9,extra_lbits@l addis 9,0,base_length@ha addi 20,9,base_length@l addis 9,0,d_buf@ha addi 21,9,d_buf@l addis 9,0,dist_code@ha addi 23,9,dist_code@l addis 9,0,extra_dbits@ha addi 22,9,extra_dbits@l.L256: andi. 0,29,7 bc 4,2,.L259 lbzx 28,16,25 addi 25,25,1.L259: lbzx 30,17,29 addi 29,29,1 andi. 0,28,1 bc 4,2,.L260 slwi 0,30,2 add 9,0,26 lhzx 3,26,0 lhz 4,2(9) b .L267.L260: lbzx 9,18,30 slwi 31,9,2 add 9,31,26 lhz 3,1028(9) lhz 4,1030(9) bl send_bits lwzx 4,19,31 cmpwi 1,4,0 bc 12,6,.L262 lwzx 3,20,31 subf 3,3,30 bl send_bits.L262: add 0,27,27 lhzx 30,21,0 addi 27,27,1 cmplwi 1,30,255 bc 12,5,.L263 lbzx 9,23,30 b .L264.L263: srwi 0,30,7 addic 0,0,256 lbzx 9,23,0.L264: slwi 31,9,2 add 9,31,24 lhzx 3,31,24 lhz 4,2(9) bl send_bits lwzx 4,22,31 cmpwi 1,4,0 bc 12,6,.L261 addis 9,0,base_dist@ha addi 9,9,base_dist@l lwzx 3,9,31 subf 3,3,30.L267: bl send_bits.L261: srwi 28,28,1 addis 9,0,last_lit@ha lwz 0,last_lit@l(9) cmplw 1,29,0 bc 12,4,.L256.L255: lhz 3,1024(26) lhz 4,1026(26) bl send_bits lwz 0,76(1) mtlr 0 lwz 16,8(1) lwz 17,12(1) lwz 18,16(1) lwz 19,20(1) lwz 20,24(1) lwz 21,28(1) lwz 22,32(1) lwz 23,36(1) lwz 24,40(1) lwz 25,44(1) lwz 26,48(1) lwz 27,52(1) lwz 28,56(1) lwz 29,60(1) lwz 30,64(1) lwz 31,68(1) addi 1,1,72 blr.Lfe13: .size compress_block,.Lfe13-compress_block .section ".rodata" .align 2.LC1: .string "-l used on binary file" .align 2.LC2: .string "" .section ".text" .align 2 .type set_file_type,@functionset_file_type: li 11,0 mr 8,11 mr 10,11 addis 9,0,dyn_ltree@ha addi 9,9,dyn_ltree@l.L271: slwi 0,11,2 lhzx 0,9,0 add 10,10,0 addi 11,11,1 cmpwi 1,11,6 bc 4,5,.L271 cmpwi 1,11,127 bc 12,5,.L282 addis 9,0,dyn_ltree@ha addi 9,9,dyn_ltree@l.L275: slwi 0,11,2 lhzx 0,9,0 add 8,8,0 addi 11,11,1 cmpwi 1,11,127 bc 4,5,.L275.L282: cmpwi 1,11,255 bc 12,5,.L283 addis 9,0,dyn_ltree@ha addi 9,9,dyn_ltree@l.L279: slwi 0,11,2 lhzx 0,9,0 add 10,10,0 addi 11,11,1 cmpwi 1,11,255 bc 4,5,.L279.L283: addis 9,0,file_type@ha lwz 9,file_type@l(9) srwi 0,8,2 subfc 0,10,0 li 0,0 adde 0,0,0 sth 0,0(9) blr.Lfe14: .size set_file_type,.Lfe14-set_file_type .lcomm dyn_ltree,2292,2 .lcomm dyn_dtree,244,2 .lcomm static_ltree,1152,2 .lcomm static_dtree,120,2 .lcomm bl_tree,156,2 .lcomm bl_count,32,2 .lcomm heap,2292,4 .section ".sdata","aw" .align 2heap_len: .space 4 .size heap_len,4 .align 2heap_max: .space 4 .size heap_max,4 .lcomm depth,573,1 .lcomm length_code,256,1 .lcomm dist_code,512,1 .lcomm base_length,116,4 .lcomm base_dist,120,4 .lcomm flag_buf,4096,1 .align 2last_lit: .space 4 .size last_lit,4 .align 2last_dist: .space 4 .size last_dist,4 .align 2last_flags: .space 4 .size last_flags,4flags: .space 1 .size flags,1flag_bit: .space 1 .size flag_bit,1 .align 2opt_len: .space 4 .size opt_len,4 .align 2static_len: .space 4 .size static_len,4 .align 2compressed_len: .space 4 .size compressed_len,4 .align 2input_len: .space 4 .size input_len,4 .comm file_type,4,4 .comm file_method,4,4 .ident "GCC: (GNU) 2.7-97r2"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -