diff --git a/hw/rtl/VX_alu_unit.v b/hw/rtl/VX_alu_unit.v index f47c90a6e..ff4c2b05a 100644 --- a/hw/rtl/VX_alu_unit.v +++ b/hw/rtl/VX_alu_unit.v @@ -89,7 +89,7 @@ module VX_alu_unit #( VX_generic_register #( .N(1 + `NW_BITS + 1 + 32) - ) rsp_reg ( + ) branch_reg ( .clk (clk), .reset (reset), .stall (stall), diff --git a/hw/rtl/VX_csr_pipe.v b/hw/rtl/VX_csr_unit.v similarity index 99% rename from hw/rtl/VX_csr_pipe.v rename to hw/rtl/VX_csr_unit.v index b8f88481d..15c3d1732 100644 --- a/hw/rtl/VX_csr_pipe.v +++ b/hw/rtl/VX_csr_unit.v @@ -1,6 +1,6 @@ `include "VX_define.vh" -module VX_csr_pipe #( +module VX_csr_unit #( parameter CORE_ID = 0 ) ( input wire clk, diff --git a/hw/rtl/VX_decode.v b/hw/rtl/VX_decode.v index 418eb70c8..7d90d21b1 100644 --- a/hw/rtl/VX_decode.v +++ b/hw/rtl/VX_decode.v @@ -235,10 +235,10 @@ module VX_decode #( is_ltype ? `WB_MEM : `WB_NO; - assign join_if.is_join = is_gpu && (gpu_op == `GPU_JOIN) && in_valid; + assign join_if.is_join = in_valid && is_gpu && (gpu_op == `GPU_JOIN); assign join_if.warp_num = ifetch_rsp_if.warp_num; - assign wstall_if.wstall = (is_br || is_gpu) && in_valid; + assign wstall_if.wstall = in_valid && (is_btype || is_jal || is_jalr || (is_gpu && (gpu_op == `GPU_TMC || gpu_op == `GPU_SPLIT || gpu_op == `GPU_BAR))); assign wstall_if.warp_num = ifetch_rsp_if.warp_num; wire stall = ~decode_if.ready && (| decode_if.valid); diff --git a/hw/rtl/VX_execute.v b/hw/rtl/VX_execute.v index 871fcaaff..adbd7c309 100644 --- a/hw/rtl/VX_execute.v +++ b/hw/rtl/VX_execute.v @@ -61,9 +61,9 @@ module VX_execute #( .lsu_commit_if (lsu_commit_if) ); - VX_csr_pipe #( + VX_csr_unit #( .CORE_ID(CORE_ID) - ) csr_pipe ( + ) csr_unit ( .clk (clk), .reset (reset), .perf_cntrs_if (perf_cntrs_if), diff --git a/hw/rtl/VX_gpr_mux.v b/hw/rtl/VX_gpr_mux.v deleted file mode 100644 index 9de519bc1..000000000 --- a/hw/rtl/VX_gpr_mux.v +++ /dev/null @@ -1,77 +0,0 @@ -`include "VX_define.vh" - -module VX_gpr_mux ( - // inputs - VX_execute_if execute_if, - input wire [`NUM_THREADS-1:0][31:0] rs1_data, - input wire [`NUM_THREADS-1:0][31:0] rs2_data, - - // outputs - VX_alu_req_if alu_req_if, - VX_lsu_req_if lsu_req_if, - VX_csr_req_if csr_req_if, - VX_mul_req_if mul_req_if, - VX_gpu_req_if gpu_req_if -); - - wire[`NUM_THREADS-1:0] is_alu = {`NUM_THREADS{execute_if.ex_type == `EX_ALU}}; - wire[`NUM_THREADS-1:0] is_lsu = {`NUM_THREADS{execute_if.ex_type == `EX_LSU}}; - wire[`NUM_THREADS-1:0] is_csr = {`NUM_THREADS{execute_if.ex_type == `EX_CSR}}; - wire[`NUM_THREADS-1:0] is_mul = {`NUM_THREADS{execute_if.ex_type == `EX_MUL}}; - wire[`NUM_THREADS-1:0] is_gpu = {`NUM_THREADS{execute_if.ex_type == `EX_GPU}}; - - // ALU unit - assign alu_req_if.valid = execute_if.valid & is_alu; - assign alu_req_if.warp_num = execute_if.warp_num; - assign alu_req_if.curr_PC = execute_if.curr_PC; - assign alu_req_if.alu_op = `ALU_OP(execute_if.instr_op); - assign alu_req_if.rd = execute_if.rd; - assign alu_req_if.wb = execute_if.wb; - assign alu_req_if.rs1_data = rs1_data; - assign alu_req_if.rs2_data = rs2_data; - assign alu_req_if.offset = execute_if.imm; - assign alu_req_if.next_PC = execute_if.next_PC; - - // LSU unit - assign lsu_req_if.valid = execute_if.valid & is_lsu; - assign lsu_req_if.warp_num = execute_if.warp_num; - assign lsu_req_if.curr_PC = execute_if.curr_PC; - assign lsu_req_if.base_addr = rs1_data; - assign lsu_req_if.store_data = rs2_data; - assign lsu_req_if.offset = execute_if.imm; - assign lsu_req_if.rw = `LSU_RW(execute_if.instr_op); - assign lsu_req_if.byteen = `LSU_BE(execute_if.instr_op); - assign lsu_req_if.rd = execute_if.rd; - assign lsu_req_if.wb = execute_if.wb; - - // CSR unit - assign csr_req_if.valid = execute_if.valid & is_csr; - assign csr_req_if.warp_num = execute_if.warp_num; - assign csr_req_if.curr_PC = execute_if.curr_PC; - assign csr_req_if.csr_op = `CSR_OP(execute_if.instr_op); - assign csr_req_if.csr_addr = execute_if.imm[`CSR_ADDR_SIZE-1:0]; - assign csr_req_if.csr_mask = execute_if.rs2_is_imm ? 32'(execute_if.rs1) : rs1_data[0]; - assign csr_req_if.rd = execute_if.rd; - assign csr_req_if.wb = execute_if.wb; - assign csr_req_if.is_io = 1'b0; - - // MUL unit - assign mul_req_if.valid = execute_if.valid & is_mul; - assign mul_req_if.warp_num = execute_if.warp_num; - assign mul_req_if.curr_PC = execute_if.curr_PC; - assign mul_req_if.mul_op = `MUL_OP(execute_if.instr_op); - assign mul_req_if.rs1_data = rs1_data; - assign mul_req_if.rs2_data = rs2_data; - assign mul_req_if.rd = execute_if.rd; - assign mul_req_if.wb = execute_if.wb; - - // GPU unit - assign gpu_req_if.valid = execute_if.valid & is_gpu; - assign gpu_req_if.warp_num = execute_if.warp_num; - assign gpu_req_if.curr_PC = execute_if.curr_PC; - assign gpu_req_if.gpu_op = `GPU_OP(execute_if.instr_op); - assign gpu_req_if.rs1_data = rs1_data; - assign gpu_req_if.rs2_data = rs2_data[0]; - assign gpu_req_if.next_PC = execute_if.next_PC; - -endmodule \ No newline at end of file diff --git a/hw/rtl/VX_gpr_ram.v b/hw/rtl/VX_gpr_ram.v index 78e1ea904..8782ae7c2 100644 --- a/hw/rtl/VX_gpr_ram.v +++ b/hw/rtl/VX_gpr_ram.v @@ -36,6 +36,7 @@ module VX_gpr_ram ( end end assert(~(|we) || (waddr != 0)); // ensure r0 is never written! + assert(0 == ram[0]); end assign rs1_data = ram[rs1]; diff --git a/hw/rtl/VX_gpr_stage.v b/hw/rtl/VX_gpr_stage.v index 4f04fd750..a56e7c67c 100644 --- a/hw/rtl/VX_gpr_stage.v +++ b/hw/rtl/VX_gpr_stage.v @@ -4,23 +4,16 @@ module VX_gpr_stage #( parameter CORE_ID = 0 ) ( input wire clk, - input wire reset, // inputs VX_wb_if writeback_if, - VX_execute_if execute_if, + VX_decode_if decode_if, // outputs - VX_alu_req_if alu_req_if, - VX_lsu_req_if lsu_req_if, - VX_csr_req_if csr_req_if, - VX_mul_req_if mul_req_if, - VX_gpu_req_if gpu_req_if + VX_gpr_data_if gpr_data_if ); wire [`NUM_THREADS-1:0][31:0] rs1_data_all [`NUM_WARPS-1:0]; wire [`NUM_THREADS-1:0][31:0] rs2_data_all [`NUM_WARPS-1:0]; - wire [`NUM_THREADS-1:0][31:0] rs1_data; - wire [`NUM_THREADS-1:0][31:0] rs2_data; wire [`NUM_THREADS-1:0][31:0] rs1_PC; wire [`NUM_THREADS-1:0][31:0] rs2_imm; wire [`NUM_THREADS-1:0] we [`NUM_WARPS-1:0]; @@ -28,128 +21,27 @@ module VX_gpr_stage #( genvar i; for (i = 0; i < `NUM_THREADS; i++) begin - assign rs1_PC[i] = execute_if.curr_PC; - assign rs2_imm[i] = execute_if.imm; + assign rs1_PC[i] = decode_if.curr_PC; + assign rs2_imm[i] = decode_if.imm; end - assign rs1_data = execute_if.rs1_is_PC ? rs1_PC : rs1_data_all[execute_if.warp_num]; - assign rs2_data = execute_if.rs2_is_imm ? rs2_imm : rs2_data_all[execute_if.warp_num]; - - generate - for (i = 0; i < `NUM_WARPS; i++) begin - assign we[i] = writeback_if.valid & {`NUM_THREADS{(i == writeback_if.warp_num)}}; - VX_gpr_ram gpr_ram ( - .clk (clk), - .we (we[i]), - .waddr (writeback_if.rd), - .wdata (writeback_if.data), - .rs1 (execute_if.rs1), - .rs2 (execute_if.rs2), - .rs1_data (rs1_data_all[i]), - .rs2_data (rs2_data_all[i]) - ); - end - endgenerate - - VX_alu_req_if alu_req_tmp_if(); - VX_lsu_req_if lsu_req_tmp_if(); - VX_csr_req_if csr_req_tmp_if(); - VX_mul_req_if mul_req_tmp_if(); - VX_gpu_req_if gpu_req_tmp_if(); - - VX_gpr_mux gpr_mux ( - .execute_if (execute_if), - .rs1_data (rs1_data), - .rs2_data (rs2_data), - .alu_req_if (alu_req_if), - .lsu_req_if (lsu_req_tmp_if), - .csr_req_if (csr_req_tmp_if), - .mul_req_if (mul_req_tmp_if), - .gpu_req_if (gpu_req_tmp_if) - ); - - wire stall_alu = ~alu_req_if.ready && (| alu_req_if.valid); - wire stall_lsu = ~lsu_req_if.ready && (| lsu_req_if.valid); - wire stall_csr = ~csr_req_if.ready && (| csr_req_if.valid); - wire stall_mul = ~mul_req_if.ready && (| mul_req_if.valid); - wire stall_gpu = ~gpu_req_if.ready && (| gpu_req_if.valid); - - VX_generic_register #( - .N(`NUM_THREADS +`NW_BITS + 32 + `ALU_BITS + (`NUM_THREADS * 32) + (`NUM_THREADS * 32) + `NR_BITS + `WB_BITS) - ) alu_reg ( - .clk (clk), - .reset (reset), - .stall (stall_alu), - .flush (0), - .in ({alu_req_tmp_if.valid, alu_req_tmp_if.warp_num, alu_req_tmp_if.curr_PC, alu_req_tmp_if.alu_op, alu_req_tmp_if.rs1_data, alu_req_tmp_if.rs2_data, alu_req_tmp_if.rd, alu_req_tmp_if.wb}), - .out ({alu_req_if.valid, alu_req_if.warp_num, alu_req_if.curr_PC, alu_req_if.alu_op, alu_req_if.rs1_data, alu_req_if.rs2_data, alu_req_if.rd, alu_req_if.wb}) - ); - - VX_generic_register #( - .N(`NUM_THREADS + `NW_BITS + 32 + (`NUM_THREADS * 32) + (`NUM_THREADS * 32) + 32 + 1 + `BYTEEN_BITS + `NR_BITS + `WB_BITS) - ) lsu_reg ( - .clk (clk), - .reset (reset), - .stall (stall_lsu), - .flush (0), - .in ({lsu_req_tmp_if.valid, lsu_req_tmp_if.warp_num, lsu_req_tmp_if.curr_PC, lsu_req_tmp_if.base_addr, lsu_req_tmp_if.store_data, lsu_req_tmp_if.offset, lsu_req_tmp_if.rw, lsu_req_tmp_if.byteen, lsu_req_tmp_if.rd, lsu_req_tmp_if.wb}), - .out ({lsu_req_if.valid, lsu_req_if.warp_num, lsu_req_if.curr_PC, lsu_req_if.base_addr, lsu_req_if.store_data, lsu_req_if.offset, lsu_req_if.rw, lsu_req_if.byteen, lsu_req_if.rd, lsu_req_if.wb}) - ); - - VX_generic_register #( - .N(`NUM_THREADS + `NW_BITS + 32 + `CSR_BITS + `CSR_ADDR_SIZE + 32 + 1 + `NR_BITS + `WB_BITS) - ) csr_reg ( - .clk (clk), - .reset (reset), - .stall (stall_csr), - .flush (0), - .in ({csr_req_tmp_if.valid, csr_req_tmp_if.warp_num, csr_req_tmp_if.curr_PC, csr_req_tmp_if.csr_op, csr_req_tmp_if.csr_addr, csr_req_tmp_if.csr_mask, csr_req_tmp_if.is_io, csr_req_tmp_if.rd, csr_req_tmp_if.wb}), - .out ({csr_req_if.valid, csr_req_if.warp_num, csr_req_if.curr_PC, csr_req_if.csr_op, csr_req_if.csr_addr, csr_req_if.csr_mask, csr_req_if.is_io, csr_req_if.rd, csr_req_if.wb}) - ); - - VX_generic_register #( - .N(`NUM_THREADS +`NW_BITS + 32 + `MUL_BITS + (`NUM_THREADS * 32) + (`NUM_THREADS * 32) + `NR_BITS + `WB_BITS) - ) mul_reg ( - .clk (clk), - .reset (reset), - .stall (stall_mul), - .flush (0), - .in ({mul_req_tmp_if.valid, mul_req_tmp_if.warp_num, mul_req_tmp_if.curr_PC, mul_req_tmp_if.mul_op, mul_req_tmp_if.rs1_data, mul_req_tmp_if.rs2_data, mul_req_tmp_if.rd, mul_req_tmp_if.wb}), - .out ({mul_req_if.valid, mul_req_if.warp_num, mul_req_if.curr_PC, mul_req_if.mul_op, mul_req_if.rs1_data, mul_req_if.rs2_data, mul_req_if.rd, mul_req_if.wb}) - ); - - VX_generic_register #( - .N(`NUM_THREADS + `NW_BITS + 32 + `GPU_BITS + (`NUM_THREADS * 32) + 32) - ) gpu_reg ( - .clk (clk), - .reset (reset), - .stall (stall_gpu), - .flush (0), - .in ({gpu_req_tmp_if.valid, gpu_req_tmp_if.warp_num, gpu_req_tmp_if.next_PC, gpu_req_tmp_if.gpu_op, gpu_req_tmp_if.rs1_data, gpu_req_tmp_if.rs2_data}), - .out ({gpu_req_if.valid, gpu_req_if.warp_num, gpu_req_if.next_PC, gpu_req_if.gpu_op, gpu_req_if.rs1_data, gpu_req_if.rs2_data}) - ); - - assign execute_if.alu_ready = ~stall_alu; - assign execute_if.lsu_ready = ~stall_lsu; - assign execute_if.csr_ready = ~stall_csr; - assign execute_if.mul_ready = ~stall_mul; - assign execute_if.gpu_ready = ~stall_gpu; + assign gpr_data_if.rs1_data = decode_if.rs1_is_PC ? rs1_PC : rs1_data_all[decode_if.warp_num]; + assign gpr_data_if.rs2_data = decode_if.rs2_is_imm ? rs2_imm : rs2_data_all[decode_if.warp_num]; + + for (i = 0; i < `NUM_WARPS; i++) begin + assign we[i] = writeback_if.valid & {`NUM_THREADS{(i == writeback_if.warp_num)}}; + VX_gpr_ram gpr_ram ( + .clk (clk), + .we (we[i]), + .waddr (writeback_if.rd), + .wdata (writeback_if.data), + .rs1 (decode_if.rs1), + .rs2 (decode_if.rs2), + .rs1_data (rs1_data_all[i]), + .rs2_data (rs2_data_all[i]) + ); + end assign writeback_if.ready = 1'b1; -`ifdef DBG_PRINT_PIPELINE - always @(posedge clk) begin - if ((| execute_if.valid)) begin - $display("%t: Core%0d-GPR: warp=%0d, PC=%0h, a=%0h, b=%0h", $time, CORE_ID, execute_if.warp_num, execute_if.curr_PC, rs1_data, rs2_data); - - // scheduler ensures the destination execute unit is ready (garanteed by the scheduler) - assert((execute_if.ex_type != `EX_ALU) || alu_req_if.ready); - assert((execute_if.ex_type != `EX_LSU) || lsu_req_if.ready); - assert((execute_if.ex_type != `EX_CSR) || csr_req_if.ready); - assert((execute_if.ex_type != `EX_MUL) || mul_req_if.ready); - assert((execute_if.ex_type != `EX_GPU) || gpu_req_if.ready); - end - end -`endif - endmodule diff --git a/hw/rtl/VX_gpu_unit.v b/hw/rtl/VX_gpu_unit.v index 3cab2bee9..f3bcb7261 100644 --- a/hw/rtl/VX_gpu_unit.v +++ b/hw/rtl/VX_gpu_unit.v @@ -16,12 +16,11 @@ module VX_gpu_unit #( wire is_split = (gpu_req_if.gpu_op == `GPU_SPLIT); wire is_bar = (gpu_req_if.gpu_op == `GPU_BAR); - wire [`NUM_THREADS-1:0] tmc_new_mask; - wire all_threads = `NUM_THREADS < gpu_req_if.rs1_data[0]; - + wire [`NUM_THREADS-1:0] tmc_new_mask; + genvar i; for (i = 0; i < `NUM_THREADS; i++) begin : tmc_new_mask_init - assign tmc_new_mask[i] = all_threads ? 1 : i < gpu_req_if.rs1_data[0]; + assign tmc_new_mask[i] = (i < gpu_req_if.rs1_data[0]); end wire valid_inst = (| curr_valids); @@ -35,11 +34,10 @@ module VX_gpu_unit #( wire wspawn = is_wspawn && valid_inst; wire [31:0] wspawn_pc = gpu_req_if.rs2_data; - wire all_active = `NUM_WARPS < gpu_req_if.rs1_data[0]; wire [`NUM_WARPS-1:0] wspawn_new_active; for (i = 0; i < `NUM_WARPS; i++) begin : wspawn_new_active_init - assign wspawn_new_active[i] = all_active ? 1 : i < gpu_req_if.rs1_data[0]; + assign wspawn_new_active[i] = (i < gpu_req_if.rs1_data[0]); end assign warp_ctl_if.is_barrier = is_bar && valid_inst; @@ -75,12 +73,14 @@ module VX_gpu_unit #( assign warp_ctl_if.split_later_mask = split_new_later_mask; assign warp_ctl_if.split_save_pc = gpu_req_if.next_PC; - assign gpu_req_if.ready = 1'b1; // has no stalls + assign gpu_req_if.ready = gpu_commit_if.ready; // commit assign gpu_commit_if.valid = gpu_req_if.valid; assign gpu_commit_if.warp_num = gpu_req_if.warp_num; assign gpu_commit_if.curr_PC = gpu_req_if.curr_PC; assign gpu_commit_if.wb = `WB_NO; + assign gpu_commit_if.rd = 0; + assign gpu_commit_if.data = 0; endmodule \ No newline at end of file diff --git a/hw/rtl/VX_issue.v b/hw/rtl/VX_issue.v index 446453fb6..737e7b606 100644 --- a/hw/rtl/VX_issue.v +++ b/hw/rtl/VX_issue.v @@ -15,7 +15,14 @@ module VX_issue #( VX_mul_req_if mul_req_if, VX_gpu_req_if gpu_req_if ); - VX_execute_if execute_if(); + VX_gpr_data_if gpr_data_if(); + wire schedule_delay; + + wire alu_busy = ~alu_req_if.ready/* && (| alu_req_if.valid)*/; + wire lsu_busy = ~lsu_req_if.ready/* && (| lsu_req_if.valid)*/; + wire csr_busy = ~csr_req_if.ready/* && (| csr_req_if.valid)*/; + wire mul_busy = ~mul_req_if.ready/* && (| mul_req_if.valid)*/; + wire gpu_busy = ~gpu_req_if.ready/* && (| gpu_req_if.valid)*/; VX_scheduler #( .CORE_ID(CORE_ID) @@ -23,25 +30,126 @@ module VX_issue #( .clk (clk), .reset (reset), .decode_if (decode_if), - .writeback_if (writeback_if), - .execute_if (execute_if), + .writeback_if (writeback_if), + .alu_busy (alu_busy), + .lsu_busy (lsu_busy), + .csr_busy (csr_busy), + .mul_busy (mul_busy), + .gpu_busy (gpu_busy), + .schedule_delay (schedule_delay), `UNUSED_PIN (is_empty) ); VX_gpr_stage #( .CORE_ID(CORE_ID) ) gpr_stage ( - .clk (clk), - .reset (reset), - - .execute_if (execute_if), + .clk (clk), + .decode_if (decode_if), .writeback_if (writeback_if), - - .alu_req_if (alu_req_if), - .lsu_req_if (lsu_req_if), - .csr_req_if (csr_req_if), - .mul_req_if (mul_req_if), - .gpu_req_if (gpu_req_if) + .gpr_data_if (gpr_data_if) ); + VX_alu_req_if alu_req_tmp_if(); + VX_lsu_req_if lsu_req_tmp_if(); + VX_csr_req_if csr_req_tmp_if(); + VX_mul_req_if mul_req_tmp_if(); + VX_gpu_req_if gpu_req_tmp_if(); + + VX_issue_mux issue_mux ( + .decode_if (decode_if), + .gpr_data_if (gpr_data_if), + .alu_req_if (alu_req_tmp_if), + .lsu_req_if (lsu_req_tmp_if), + .csr_req_if (csr_req_tmp_if), + .mul_req_if (mul_req_tmp_if), + .gpu_req_if (gpu_req_tmp_if) + ); + + wire stall_alu = ~alu_req_if.ready || schedule_delay; + wire stall_lsu = ~lsu_req_if.ready || schedule_delay; + wire stall_csr = ~csr_req_if.ready || schedule_delay; + wire stall_mul = ~mul_req_if.ready || schedule_delay; + wire stall_gpu = ~gpu_req_if.ready || schedule_delay; + + wire flush_alu = alu_req_if.ready && schedule_delay; + wire flush_lsu = lsu_req_if.ready && schedule_delay; + wire flush_csr = csr_req_if.ready && schedule_delay; + wire flush_mul = mul_req_if.ready && schedule_delay; + wire flush_gpu = gpu_req_if.ready && schedule_delay; + + VX_generic_register #( + .N(`NUM_THREADS +`NW_BITS + 32 + `ALU_BITS + `WB_BITS + `NR_BITS + (`NUM_THREADS * 32) + (`NUM_THREADS * 32) + 32 + 32) + ) alu_reg ( + .clk (clk), + .reset (reset), + .stall (stall_alu), + .flush (flush_alu), + .in ({alu_req_tmp_if.valid, alu_req_tmp_if.warp_num, alu_req_tmp_if.curr_PC, alu_req_tmp_if.alu_op, alu_req_tmp_if.wb, alu_req_tmp_if.rd, alu_req_tmp_if.rs1_data, alu_req_tmp_if.rs2_data, alu_req_tmp_if.offset, alu_req_tmp_if.next_PC}), + .out ({alu_req_if.valid, alu_req_if.warp_num, alu_req_if.curr_PC, alu_req_if.alu_op, alu_req_if.wb, alu_req_if.rd, alu_req_if.rs1_data, alu_req_if.rs2_data, alu_req_if.offset, alu_req_if.next_PC}) + ); + + VX_generic_register #( + .N(`NUM_THREADS + `NW_BITS + 32 + 1 + `BYTEEN_BITS + `WB_BITS + `NR_BITS + (`NUM_THREADS * 32) + (`NUM_THREADS * 32) + 32) + ) lsu_reg ( + .clk (clk), + .reset (reset), + .stall (stall_lsu), + .flush (flush_lsu), + .in ({lsu_req_tmp_if.valid, lsu_req_tmp_if.warp_num, lsu_req_tmp_if.curr_PC, lsu_req_tmp_if.rw, lsu_req_tmp_if.byteen, lsu_req_tmp_if.wb, lsu_req_tmp_if.rd, lsu_req_tmp_if.base_addr, lsu_req_tmp_if.offset, lsu_req_tmp_if.store_data}), + .out ({lsu_req_if.valid, lsu_req_if.warp_num, lsu_req_if.curr_PC, lsu_req_if.rw, lsu_req_if.byteen, lsu_req_if.wb, lsu_req_if.rd, lsu_req_if.base_addr, lsu_req_if.offset, lsu_req_if.store_data}) + ); + + VX_generic_register #( + .N(`NUM_THREADS + `NW_BITS + 32 + `CSR_BITS + `WB_BITS + `NR_BITS + `CSR_ADDR_SIZE + 32 + 1) + ) csr_reg ( + .clk (clk), + .reset (reset), + .stall (stall_csr), + .flush (flush_csr), + .in ({csr_req_tmp_if.valid, csr_req_tmp_if.warp_num, csr_req_tmp_if.curr_PC, csr_req_tmp_if.csr_op, csr_req_tmp_if.wb, csr_req_tmp_if.rd, csr_req_tmp_if.csr_addr, csr_req_tmp_if.csr_mask, csr_req_tmp_if.is_io}), + .out ({csr_req_if.valid, csr_req_if.warp_num, csr_req_if.curr_PC, csr_req_if.csr_op, csr_req_if.wb, csr_req_if.rd, csr_req_if.csr_addr, csr_req_if.csr_mask, csr_req_if.is_io}) + ); + + VX_generic_register #( + .N(`NUM_THREADS +`NW_BITS + 32 + `MUL_BITS + `WB_BITS + `NR_BITS + (`NUM_THREADS * 32) + (`NUM_THREADS * 32)) + ) mul_reg ( + .clk (clk), + .reset (reset), + .stall (stall_mul), + .flush (flush_mul), + .in ({mul_req_tmp_if.valid, mul_req_tmp_if.warp_num, mul_req_tmp_if.curr_PC, mul_req_tmp_if.mul_op, mul_req_tmp_if.wb, mul_req_tmp_if.rd, mul_req_tmp_if.rs1_data, mul_req_tmp_if.rs2_data}), + .out ({mul_req_if.valid, mul_req_if.warp_num, mul_req_if.curr_PC, mul_req_if.mul_op, mul_req_if.wb, mul_req_if.rd, mul_req_if.rs1_data, mul_req_if.rs2_data}) + ); + + VX_generic_register #( + .N(`NUM_THREADS + `NW_BITS + 32 + `GPU_BITS + (`NUM_THREADS * 32) + 32 + 32) + ) gpu_reg ( + .clk (clk), + .reset (reset), + .stall (stall_gpu), + .flush (flush_gpu), + .in ({gpu_req_tmp_if.valid, gpu_req_tmp_if.warp_num, gpu_req_tmp_if.curr_PC, gpu_req_tmp_if.gpu_op, gpu_req_tmp_if.rs1_data, gpu_req_tmp_if.rs2_data, gpu_req_tmp_if.next_PC}), + .out ({gpu_req_if.valid, gpu_req_if.warp_num, gpu_req_if.curr_PC, gpu_req_if.gpu_op, gpu_req_if.rs1_data, gpu_req_if.rs2_data, gpu_req_if.next_PC}) + ); + +`ifdef DBG_PRINT_PIPELINE + always @(posedge clk) begin + if ((| alu_req_tmp_if.valid) && ~stall_alu) begin + $display("%t: Core%0d-issue: warp=%0d, PC=%0h, ex=ALU, op=%0d, wb=%d, rd=%0d, rs1=%0h, rs2=%0h, offset=%0h, next_PC=%0h", $time, CORE_ID, alu_req_tmp_if.warp_num, alu_req_tmp_if.curr_PC, alu_req_tmp_if.alu_op, alu_req_tmp_if.wb, alu_req_tmp_if.rd, alu_req_tmp_if.rs1_data, alu_req_tmp_if.rs2_data, alu_req_tmp_if.offset, alu_req_tmp_if.next_PC); + end + if ((| mul_req_tmp_if.valid) && ~stall_mul) begin + $display("%t: Core%0d-issue: warp=%0d, PC=%0h, ex=MUL, op=%0d, wb=%d, rd=%0d, rs1=%0h, rs2=%0h", $time, CORE_ID, mul_req_tmp_if.warp_num, mul_req_tmp_if.curr_PC, mul_req_tmp_if.mul_op, mul_req_tmp_if.wb, mul_req_tmp_if.rd, mul_req_tmp_if.rs1_data, mul_req_tmp_if.rs2_data); + end + if ((| lsu_req_tmp_if.valid) && ~stall_lsu) begin + $display("%t: Core%0d-issue: warp=%0d, PC=%0h, ex=LSU, rw=%b, wb=%0d, rd=%0d, byteen=%b, baddr=%0h, offset=%0h", $time, CORE_ID, lsu_req_tmp_if.warp_num, lsu_req_tmp_if.curr_PC, lsu_req_tmp_if.rw, lsu_req_tmp_if.rd, lsu_req_tmp_if.wb, lsu_req_tmp_if.byteen, lsu_req_tmp_if.base_addr, lsu_req_tmp_if.offset); + end + if ((| csr_req_tmp_if.valid) && ~stall_csr) begin + $display("%t: Core%0d-issue: warp=%0d, PC=%0h, ex=CSR, op=%0d, wb=%d, rd=%0d, addr=%0h, mask=%0h", $time, CORE_ID, csr_req_tmp_if.warp_num, csr_req_tmp_if.curr_PC, csr_req_tmp_if.csr_op, csr_req_tmp_if.wb, csr_req_tmp_if.rd, csr_req_tmp_if.csr_addr, csr_req_tmp_if.csr_mask); + end + if ((| gpu_req_tmp_if.valid) && ~stall_gpu) begin + $display("%t: Core%0d-issue: warp=%0d, PC=%0h, ex=GPU, op=%0d, rs1=%0h, rs2=%0h", $time, CORE_ID, gpu_req_tmp_if.warp_num, gpu_req_tmp_if.curr_PC, gpu_req_tmp_if.gpu_op, gpu_req_tmp_if.rs1_data, gpu_req_tmp_if.rs2_data); + end + end +`endif + endmodule \ No newline at end of file diff --git a/hw/rtl/VX_issue_mux.v b/hw/rtl/VX_issue_mux.v new file mode 100644 index 000000000..e55d7986a --- /dev/null +++ b/hw/rtl/VX_issue_mux.v @@ -0,0 +1,76 @@ +`include "VX_define.vh" + +module VX_issue_mux ( + // inputs + VX_decode_if decode_if, + VX_gpr_data_if gpr_data_if, + + // outputs + VX_alu_req_if alu_req_if, + VX_lsu_req_if lsu_req_if, + VX_csr_req_if csr_req_if, + VX_mul_req_if mul_req_if, + VX_gpu_req_if gpu_req_if +); + + wire[`NUM_THREADS-1:0] is_alu = {`NUM_THREADS{decode_if.ex_type == `EX_ALU}}; + wire[`NUM_THREADS-1:0] is_lsu = {`NUM_THREADS{decode_if.ex_type == `EX_LSU}}; + wire[`NUM_THREADS-1:0] is_csr = {`NUM_THREADS{decode_if.ex_type == `EX_CSR}}; + wire[`NUM_THREADS-1:0] is_mul = {`NUM_THREADS{decode_if.ex_type == `EX_MUL}}; + wire[`NUM_THREADS-1:0] is_gpu = {`NUM_THREADS{decode_if.ex_type == `EX_GPU}}; + + // ALU unit + assign alu_req_if.valid = decode_if.valid & is_alu; + assign alu_req_if.warp_num = decode_if.warp_num; + assign alu_req_if.curr_PC = decode_if.curr_PC; + assign alu_req_if.alu_op = `ALU_OP(decode_if.instr_op); + assign alu_req_if.rd = decode_if.rd; + assign alu_req_if.wb = decode_if.wb; + assign alu_req_if.rs1_data = gpr_data_if.rs1_data; + assign alu_req_if.rs2_data = gpr_data_if.rs2_data; + assign alu_req_if.offset = decode_if.imm; + assign alu_req_if.next_PC = decode_if.next_PC; + + // LSU unit + assign lsu_req_if.valid = decode_if.valid & is_lsu; + assign lsu_req_if.warp_num = decode_if.warp_num; + assign lsu_req_if.curr_PC = decode_if.curr_PC; + assign lsu_req_if.base_addr = gpr_data_if.rs1_data; + assign lsu_req_if.store_data = gpr_data_if.rs2_data; + assign lsu_req_if.offset = decode_if.imm; + assign lsu_req_if.rw = `LSU_RW(decode_if.instr_op); + assign lsu_req_if.byteen = `LSU_BE(decode_if.instr_op); + assign lsu_req_if.rd = decode_if.rd; + assign lsu_req_if.wb = decode_if.wb; + + // CSR unit + assign csr_req_if.valid = decode_if.valid & is_csr; + assign csr_req_if.warp_num = decode_if.warp_num; + assign csr_req_if.curr_PC = decode_if.curr_PC; + assign csr_req_if.csr_op = `CSR_OP(decode_if.instr_op); + assign csr_req_if.csr_addr = decode_if.imm[`CSR_ADDR_SIZE-1:0]; + assign csr_req_if.csr_mask = decode_if.rs2_is_imm ? 32'(decode_if.rs1) : gpr_data_if.rs1_data[0]; + assign csr_req_if.rd = decode_if.rd; + assign csr_req_if.wb = decode_if.wb; + assign csr_req_if.is_io = 1'b0; + + // MUL unit + assign mul_req_if.valid = decode_if.valid & is_mul; + assign mul_req_if.warp_num = decode_if.warp_num; + assign mul_req_if.curr_PC = decode_if.curr_PC; + assign mul_req_if.mul_op = `MUL_OP(decode_if.instr_op); + assign mul_req_if.rs1_data = gpr_data_if.rs1_data; + assign mul_req_if.rs2_data = gpr_data_if.rs2_data; + assign mul_req_if.rd = decode_if.rd; + assign mul_req_if.wb = decode_if.wb; + + // GPU unit + assign gpu_req_if.valid = decode_if.valid & is_gpu; + assign gpu_req_if.warp_num = decode_if.warp_num; + assign gpu_req_if.curr_PC = decode_if.curr_PC; + assign gpu_req_if.gpu_op = `GPU_OP(decode_if.instr_op); + assign gpu_req_if.rs1_data = gpr_data_if.rs1_data; + assign gpu_req_if.rs2_data = gpr_data_if.rs2_data[0]; + assign gpu_req_if.next_PC = decode_if.next_PC; + +endmodule \ No newline at end of file diff --git a/hw/rtl/VX_mul_unit.v b/hw/rtl/VX_mul_unit.v index 7f349f95b..f6a6976de 100644 --- a/hw/rtl/VX_mul_unit.v +++ b/hw/rtl/VX_mul_unit.v @@ -107,13 +107,15 @@ module VX_mul_unit #( wire stall = (~mul_commit_if.ready && (| mul_commit_if.valid)) || pipeline_stall; + wire flush = mul_commit_if.ready && pipeline_stall; + VX_generic_register #( .N(`NUM_THREADS + `NW_BITS + 32 + `NR_BITS + `WB_BITS + (`NUM_THREADS * 32)), ) mul_reg ( .clk (clk), .reset (reset), .stall (stall), - .flush (0), + .flush (flush), .in ({mul_req_if.valid, mul_req_if.warp_num, mul_req_if.curr_PC, mul_req_if.rd, mul_req_if.wb, alu_result}), .out ({mul_commit_if.valid, mul_commit_if.warp_num, mul_commit_if.curr_PC, mul_commit_if.rd, mul_commit_if.wb, mul_commit_if.data}) ); diff --git a/hw/rtl/VX_scheduler.v b/hw/rtl/VX_scheduler.v index 29c77d520..1d9f31493 100644 --- a/hw/rtl/VX_scheduler.v +++ b/hw/rtl/VX_scheduler.v @@ -8,8 +8,12 @@ module VX_scheduler #( VX_decode_if decode_if, VX_wb_if writeback_if, - - VX_execute_if execute_if, + input wire alu_busy, + input wire lsu_busy, + input wire csr_busy, + input wire mul_busy, + input wire gpu_busy, + output wire schedule_delay, output wire is_empty ); localparam CTVW = `CLOG2(`NUM_WARPS * 32 + 1); @@ -28,13 +32,13 @@ module VX_scheduler #( wire rename_valid = (| decode_if.valid) && (rs1_rename_qual || rs2_rename_qual || rd_rename_qual); wire ex_stalled = (| decode_if.valid) - && ((!execute_if.alu_ready && (decode_if.ex_type == `EX_ALU)) - || (!execute_if.lsu_ready && (decode_if.ex_type == `EX_LSU)) - || (!execute_if.csr_ready && (decode_if.ex_type == `EX_CSR)) - || (!execute_if.mul_ready && (decode_if.ex_type == `EX_MUL)) - || (!execute_if.gpu_ready && (decode_if.ex_type == `EX_GPU))); + && ((alu_busy && (decode_if.ex_type == `EX_ALU)) + || (lsu_busy && (decode_if.ex_type == `EX_LSU)) + || (csr_busy && (decode_if.ex_type == `EX_CSR)) + || (mul_busy && (decode_if.ex_type == `EX_MUL)) + || (gpu_busy && (decode_if.ex_type == `EX_GPU))); - wire stall = rename_valid || ex_stalled; + wire stall = ex_stalled || rename_valid; wire acquire_rd = (| decode_if.valid) && (decode_if.wb != 0) && ~stall; @@ -67,19 +71,18 @@ module VX_scheduler #( end end - VX_generic_register #( - .N(`NUM_THREADS + `NW_BITS + 32 + 32 + `NR_BITS + `NR_BITS + `NR_BITS + 32 + 1 + 1 + `EX_BITS + `OP_BITS + `WB_BITS), - ) schedule_reg ( - .clk (clk), - .reset (reset), - .stall (stall), - .flush (0), - .in ({decode_if.valid, decode_if.warp_num, decode_if.curr_PC, decode_if.next_PC, decode_if.rd, decode_if.rs1, decode_if.rs2, decode_if.imm, decode_if.rs1_is_PC, decode_if.rs2_is_imm, decode_if.ex_type, decode_if.instr_op, decode_if.wb}), - .out ({execute_if.valid, execute_if.warp_num, execute_if.curr_PC, execute_if.next_PC, execute_if.rd, execute_if.rs1, execute_if.rs2, execute_if.imm, execute_if.rs1_is_PC, execute_if.rs2_is_imm, execute_if.ex_type, execute_if.instr_op, execute_if.wb}) - ); - assign decode_if.ready = ~stall; + assign schedule_delay = stall; + assign is_empty = (0 == count_valid); +`ifdef DBG_PRINT_PIPELINE + always @(posedge clk) begin + if (stall) begin + $display("%t: Core%0d-stall: warp=%0d, PC=%0h, rd=%0d, wb=%0d, rename=%b%b%b, alu=%b, lsu=%b, csr=%b, mul=%b, gpu=%b", $time, CORE_ID, decode_if.warp_num, decode_if.curr_PC, decode_if.rd, decode_if.wb, rd_rename_qual, rs1_rename_qual, rs2_rename_qual, alu_busy, lsu_busy, csr_busy, mul_busy, gpu_busy); + end + end +`endif + endmodule \ No newline at end of file diff --git a/hw/rtl/VX_warp.v b/hw/rtl/VX_warp.v deleted file mode 100644 index 55c2bb317..000000000 --- a/hw/rtl/VX_warp.v +++ /dev/null @@ -1,69 +0,0 @@ -`include "VX_define.vh" - - -module VX_warp ( - input wire clk, - input wire reset, - input wire stall, - input wire remove, - input wire[`NUM_THREADS-1:0] thread_mask, - input wire change_mask, - input wire jal, - input wire[31:0] dest, - input wire branch_taken, - input wire[31:0] branch_dest, - input wire wspawn, - input wire[31:0] wspawn_pc, - - output wire[31:0] PC, - output wire[`NUM_THREADS-1:0] valid -); - - reg [`NUM_THREADS-1:0] valid_t; - reg [31:0] real_PC; - reg [31:0] temp_PC; - reg [31:0] use_PC; - - always @(posedge clk) begin - if (reset) begin - valid_t <= {{(`NUM_THREADS-1){1'b0}},1'b1}; // Thread 1 active - end else if (remove) begin - valid_t <= 0; - end else if (change_mask) begin - valid_t <= thread_mask; - end - end - - genvar i; - generate - for (i = 0; i < `NUM_THREADS; i++) begin : valid_assign - assign valid[i] = change_mask ? thread_mask[i] : stall ? 1'b0 : valid_t[i]; - end - endgenerate - - always @(*) begin - if (jal == 1'b1) begin - temp_PC = dest; - end else if (branch_taken) begin - temp_PC = branch_dest; - end else begin - temp_PC = real_PC; - end - end - - assign use_PC = temp_PC; - assign PC = temp_PC; - - always @(posedge clk) begin - if (reset) begin - real_PC <= 0; - end else if (wspawn) begin - real_PC <= wspawn_pc; - end else if (!stall) begin - real_PC <= use_PC + 32'h4; - end else begin - real_PC <= use_PC; - end - end - -endmodule \ No newline at end of file diff --git a/hw/rtl/VX_warp_sched.v b/hw/rtl/VX_warp_sched.v index aa34593dd..a0040a5b5 100644 --- a/hw/rtl/VX_warp_sched.v +++ b/hw/rtl/VX_warp_sched.v @@ -20,7 +20,7 @@ module VX_warp_sched #( wire update_visible_active; wire scheduled_warp; - wire [(1+32+`NUM_THREADS-1):0] d[`NUM_WARPS-1:0]; + wire [(1+32+`NUM_THREADS-1):0] ipdom[`NUM_WARPS-1:0]; wire join_fall; wire [31:0] join_pc; @@ -71,9 +71,8 @@ module VX_warp_sched #( wire stall; - integer i; - always @(posedge clk) begin + integer i; if (reset) begin for (i = 0; i < `NUM_BARRIERS; i++) begin barrier_stall_mask[i] <= 0; @@ -99,9 +98,9 @@ module VX_warp_sched #( end else begin if (warp_ctl_if.wspawn) begin - warp_active <= warp_ctl_if.wspawn_new_active; - use_wspawn_pc <= warp_ctl_if.wspawn_pc; - use_wspawn <= warp_ctl_if.wspawn_new_active & (~`NUM_WARPS'b1); + warp_active <= warp_ctl_if.wspawn_new_active; + use_wspawn_pc <= warp_ctl_if.wspawn_pc; + use_wspawn <= warp_ctl_if.wspawn_new_active & (~`NUM_WARPS'(1)); end if (warp_ctl_if.is_barrier) begin @@ -205,13 +204,12 @@ module VX_warp_sched #( wire [(1+32+`NUM_THREADS-1):0] q1 = {1'b1, 32'b0, thread_masks[warp_ctl_if.warp_num]}; wire [(1+32+`NUM_THREADS-1):0] q2 = {1'b0, warp_ctl_if.split_save_pc, warp_ctl_if.split_later_mask}; - assign {join_fall, join_pc, join_tm} = d[join_if.warp_num]; + assign {join_fall, join_pc, join_tm} = ipdom[join_if.warp_num]; - genvar j; - - for (j = 0; j < `NUM_WARPS; j++) begin : stacks - wire correct_warp_s = (j == warp_ctl_if.warp_num); - wire correct_warp_j = (j == join_if.warp_num); + genvar i; + for (i = 0; i < `NUM_WARPS; i++) begin : stacks + wire correct_warp_s = (i == warp_ctl_if.warp_num); + wire correct_warp_j = (i == join_if.warp_num); wire push = (warp_ctl_if.is_split && warp_ctl_if.do_split) && correct_warp_s; wire pop = join_if.is_join && correct_warp_j; @@ -224,11 +222,11 @@ module VX_warp_sched #( .reset(reset), .push (push), .pop (pop), - .d (d[i]), + .d (ipdom[i]), .q1 (q1), .q2 (q2) ); - end + end wire should_bra = (branch_ctl_if.valid && branch_ctl_if.taken && (warp_to_schedule == branch_ctl_if.warp_num)); diff --git a/hw/rtl/cache/VX_cache.v b/hw/rtl/cache/VX_cache.v index e76430f94..7184847b9 100644 --- a/hw/rtl/cache/VX_cache.v +++ b/hw/rtl/cache/VX_cache.v @@ -249,187 +249,185 @@ module VX_cache #( genvar i; - generate - for (i = 0; i < NUM_BANKS; i++) begin - wire [NUM_REQUESTS-1:0] curr_bank_core_req_valid; - wire [NUM_REQUESTS-1:0] curr_bank_core_req_rw; - wire [NUM_REQUESTS-1:0][WORD_SIZE-1:0] curr_bank_core_req_byteen; - wire [NUM_REQUESTS-1:0][`WORD_ADDR_WIDTH-1:0] curr_bank_core_req_addr; - wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] curr_bank_core_req_tag; - wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] curr_bank_core_req_data; + for (i = 0; i < NUM_BANKS; i++) begin + wire [NUM_REQUESTS-1:0] curr_bank_core_req_valid; + wire [NUM_REQUESTS-1:0] curr_bank_core_req_rw; + wire [NUM_REQUESTS-1:0][WORD_SIZE-1:0] curr_bank_core_req_byteen; + wire [NUM_REQUESTS-1:0][`WORD_ADDR_WIDTH-1:0] curr_bank_core_req_addr; + wire [`CORE_REQ_TAG_COUNT-1:0][CORE_TAG_WIDTH-1:0] curr_bank_core_req_tag; + wire [NUM_REQUESTS-1:0][`WORD_WIDTH-1:0] curr_bank_core_req_data; - wire curr_bank_core_rsp_valid; - wire [`REQS_BITS-1:0] curr_bank_core_rsp_tid; - wire [`WORD_WIDTH-1:0] curr_bank_core_rsp_data; - wire [CORE_TAG_WIDTH-1:0] curr_bank_core_rsp_tag; - wire curr_bank_core_rsp_ready; + wire curr_bank_core_rsp_valid; + wire [`REQS_BITS-1:0] curr_bank_core_rsp_tid; + wire [`WORD_WIDTH-1:0] curr_bank_core_rsp_data; + wire [CORE_TAG_WIDTH-1:0] curr_bank_core_rsp_tag; + wire curr_bank_core_rsp_ready; - wire curr_bank_dram_fill_rsp_valid; - wire [`BANK_LINE_WIDTH-1:0] curr_bank_dram_fill_rsp_data; - wire [`LINE_ADDR_WIDTH-1:0] curr_bank_dram_fill_rsp_addr; - wire curr_bank_dram_fill_rsp_ready; + wire curr_bank_dram_fill_rsp_valid; + wire [`BANK_LINE_WIDTH-1:0] curr_bank_dram_fill_rsp_data; + wire [`LINE_ADDR_WIDTH-1:0] curr_bank_dram_fill_rsp_addr; + wire curr_bank_dram_fill_rsp_ready; - wire curr_bank_dram_fill_req_valid; - wire [`LINE_ADDR_WIDTH-1:0] curr_bank_dram_fill_req_addr; - wire curr_bank_dram_fill_req_ready; + wire curr_bank_dram_fill_req_valid; + wire [`LINE_ADDR_WIDTH-1:0] curr_bank_dram_fill_req_addr; + wire curr_bank_dram_fill_req_ready; - wire curr_bank_dram_wb_req_valid; - wire [BANK_LINE_SIZE-1:0] curr_bank_dram_wb_req_byteen; - wire [`LINE_ADDR_WIDTH-1:0] curr_bank_dram_wb_req_addr; - wire[`BANK_LINE_WIDTH-1:0] curr_bank_dram_wb_req_data; - wire curr_bank_dram_wb_req_ready; + wire curr_bank_dram_wb_req_valid; + wire [BANK_LINE_SIZE-1:0] curr_bank_dram_wb_req_byteen; + wire [`LINE_ADDR_WIDTH-1:0] curr_bank_dram_wb_req_addr; + wire[`BANK_LINE_WIDTH-1:0] curr_bank_dram_wb_req_data; + wire curr_bank_dram_wb_req_ready; - wire curr_bank_snp_req_valid; - wire [`LINE_ADDR_WIDTH-1:0] curr_bank_snp_req_addr; - wire curr_bank_snp_req_invalidate; - wire [SNP_REQ_TAG_WIDTH-1:0] curr_bank_snp_req_tag; - wire curr_bank_snp_req_ready; + wire curr_bank_snp_req_valid; + wire [`LINE_ADDR_WIDTH-1:0] curr_bank_snp_req_addr; + wire curr_bank_snp_req_invalidate; + wire [SNP_REQ_TAG_WIDTH-1:0] curr_bank_snp_req_tag; + wire curr_bank_snp_req_ready; - wire curr_bank_snp_rsp_valid; - wire [SNP_REQ_TAG_WIDTH-1:0] curr_bank_snp_rsp_tag; - wire curr_bank_snp_rsp_ready; + wire curr_bank_snp_rsp_valid; + wire [SNP_REQ_TAG_WIDTH-1:0] curr_bank_snp_rsp_tag; + wire curr_bank_snp_rsp_ready; - wire curr_bank_core_req_ready; + wire curr_bank_core_req_ready; - // Core Req - assign curr_bank_core_req_valid = (per_bank_valid[i] & {NUM_REQUESTS{core_req_ready}}); - assign curr_bank_core_req_addr = core_req_addr; - assign curr_bank_core_req_rw = core_req_rw; - assign curr_bank_core_req_byteen = core_req_byteen; - assign curr_bank_core_req_data = core_req_data; - assign curr_bank_core_req_tag = core_req_tag; - assign per_bank_core_req_ready[i] = curr_bank_core_req_ready; + // Core Req + assign curr_bank_core_req_valid = (per_bank_valid[i] & {NUM_REQUESTS{core_req_ready}}); + assign curr_bank_core_req_addr = core_req_addr; + assign curr_bank_core_req_rw = core_req_rw; + assign curr_bank_core_req_byteen = core_req_byteen; + assign curr_bank_core_req_data = core_req_data; + assign curr_bank_core_req_tag = core_req_tag; + assign per_bank_core_req_ready[i] = curr_bank_core_req_ready; - // Core WB - assign curr_bank_core_rsp_ready = per_bank_core_rsp_ready[i]; - assign per_bank_core_rsp_valid [i] = curr_bank_core_rsp_valid; - assign per_bank_core_rsp_tid [i] = curr_bank_core_rsp_tid; - assign per_bank_core_rsp_tag [i] = curr_bank_core_rsp_tag; - assign per_bank_core_rsp_data [i] = curr_bank_core_rsp_data; + // Core WB + assign curr_bank_core_rsp_ready = per_bank_core_rsp_ready[i]; + assign per_bank_core_rsp_valid [i] = curr_bank_core_rsp_valid; + assign per_bank_core_rsp_tid [i] = curr_bank_core_rsp_tid; + assign per_bank_core_rsp_tag [i] = curr_bank_core_rsp_tag; + assign per_bank_core_rsp_data [i] = curr_bank_core_rsp_data; - // Dram fill request - assign per_bank_dram_fill_req_valid[i] = curr_bank_dram_fill_req_valid; - if (NUM_BANKS == 1) begin - assign per_bank_dram_fill_req_addr[i] = curr_bank_dram_fill_req_addr; - end else begin - assign per_bank_dram_fill_req_addr[i] = `LINE_TO_DRAM_ADDR(curr_bank_dram_fill_req_addr, i); - end - assign curr_bank_dram_fill_req_ready = dram_fill_req_ready; + // Dram fill request + assign per_bank_dram_fill_req_valid[i] = curr_bank_dram_fill_req_valid; + if (NUM_BANKS == 1) begin + assign per_bank_dram_fill_req_addr[i] = curr_bank_dram_fill_req_addr; + end else begin + assign per_bank_dram_fill_req_addr[i] = `LINE_TO_DRAM_ADDR(curr_bank_dram_fill_req_addr, i); + end + assign curr_bank_dram_fill_req_ready = dram_fill_req_ready; + + // Dram fill response + if (NUM_BANKS == 1) begin + assign curr_bank_dram_fill_rsp_valid = dram_rsp_valid; + assign curr_bank_dram_fill_rsp_addr = dram_rsp_tag; + end else begin + assign curr_bank_dram_fill_rsp_valid = dram_rsp_valid && (`DRAM_ADDR_BANK(dram_rsp_tag) == i); + assign curr_bank_dram_fill_rsp_addr = `DRAM_TO_LINE_ADDR(dram_rsp_tag); + end + assign curr_bank_dram_fill_rsp_data = dram_rsp_data; + assign per_bank_dram_fill_rsp_ready[i] = curr_bank_dram_fill_rsp_ready; + + // Dram writeback request + assign per_bank_dram_wb_req_valid[i] = curr_bank_dram_wb_req_valid; + assign per_bank_dram_wb_req_byteen[i] = curr_bank_dram_wb_req_byteen; + if (NUM_BANKS == 1) begin + assign per_bank_dram_wb_req_addr[i] = curr_bank_dram_wb_req_addr; + end else begin + assign per_bank_dram_wb_req_addr[i] = `LINE_TO_DRAM_ADDR(curr_bank_dram_wb_req_addr, i); + end + assign per_bank_dram_wb_req_data[i] = curr_bank_dram_wb_req_data; + assign curr_bank_dram_wb_req_ready = per_bank_dram_wb_req_ready[i]; + + // Snoop request + if (NUM_BANKS == 1) begin + assign curr_bank_snp_req_valid = snp_req_valid_qual; + assign curr_bank_snp_req_addr = snp_req_addr_qual; + end else begin + assign curr_bank_snp_req_valid = snp_req_valid_qual && (`DRAM_ADDR_BANK(snp_req_addr_qual) == i); + assign curr_bank_snp_req_addr = `DRAM_TO_LINE_ADDR(snp_req_addr_qual); + end + assign curr_bank_snp_req_invalidate = snp_req_invalidate_qual; + assign curr_bank_snp_req_tag = snp_req_tag_qual; + assign per_bank_snp_req_ready[i] = curr_bank_snp_req_ready; + + // Snoop response + assign per_bank_snp_rsp_valid[i] = curr_bank_snp_rsp_valid; + assign per_bank_snp_rsp_tag[i] = curr_bank_snp_rsp_tag; + assign curr_bank_snp_rsp_ready = per_bank_snp_rsp_ready[i]; + + VX_bank #( + .BANK_ID (i), + .CACHE_ID (CACHE_ID), + .CACHE_SIZE (CACHE_SIZE), + .BANK_LINE_SIZE (BANK_LINE_SIZE), + .NUM_BANKS (NUM_BANKS), + .WORD_SIZE (WORD_SIZE), + .NUM_REQUESTS (NUM_REQUESTS), + .STAGE_1_CYCLES (STAGE_1_CYCLES), + .CREQ_SIZE (CREQ_SIZE), + .MRVQ_SIZE (MRVQ_SIZE), + .DFPQ_SIZE (DFPQ_SIZE), + .SNRQ_SIZE (SNRQ_SIZE), + .CWBQ_SIZE (CWBQ_SIZE), + .DWBQ_SIZE (DWBQ_SIZE), + .DFQQ_SIZE (DFQQ_SIZE), + .DRAM_ENABLE (DRAM_ENABLE), + .WRITE_ENABLE (WRITE_ENABLE), + .SNOOP_FORWARDING (SNOOP_FORWARDING), + .CORE_TAG_WIDTH (CORE_TAG_WIDTH), + .CORE_TAG_ID_BITS (CORE_TAG_ID_BITS), + .SNP_REQ_TAG_WIDTH (SNP_REQ_TAG_WIDTH) + ) bank ( + `SCOPE_SIGNALS_CACHE_BANK_BIND + + .clk (clk), + .reset (reset), + // Core request + .core_req_valid (curr_bank_core_req_valid), + .core_req_rw (curr_bank_core_req_rw), + .core_req_byteen (curr_bank_core_req_byteen), + .core_req_addr (curr_bank_core_req_addr), + .core_req_data (curr_bank_core_req_data), + .core_req_tag (curr_bank_core_req_tag), + .core_req_ready (curr_bank_core_req_ready), + + // Core response + .core_rsp_valid (curr_bank_core_rsp_valid), + .core_rsp_tid (curr_bank_core_rsp_tid), + .core_rsp_data (curr_bank_core_rsp_data), + .core_rsp_tag (curr_bank_core_rsp_tag), + .core_rsp_ready (curr_bank_core_rsp_ready), + + // Dram fill request + .dram_fill_req_valid (curr_bank_dram_fill_req_valid), + .dram_fill_req_addr (curr_bank_dram_fill_req_addr), + .dram_fill_req_ready (curr_bank_dram_fill_req_ready), // Dram fill response - if (NUM_BANKS == 1) begin - assign curr_bank_dram_fill_rsp_valid = dram_rsp_valid; - assign curr_bank_dram_fill_rsp_addr = dram_rsp_tag; - end else begin - assign curr_bank_dram_fill_rsp_valid = dram_rsp_valid && (`DRAM_ADDR_BANK(dram_rsp_tag) == i); - assign curr_bank_dram_fill_rsp_addr = `DRAM_TO_LINE_ADDR(dram_rsp_tag); - end - assign curr_bank_dram_fill_rsp_data = dram_rsp_data; - assign per_bank_dram_fill_rsp_ready[i] = curr_bank_dram_fill_rsp_ready; + .dram_fill_rsp_valid (curr_bank_dram_fill_rsp_valid), + .dram_fill_rsp_data (curr_bank_dram_fill_rsp_data), + .dram_fill_rsp_addr (curr_bank_dram_fill_rsp_addr), + .dram_fill_rsp_ready (curr_bank_dram_fill_rsp_ready), - // Dram writeback request - assign per_bank_dram_wb_req_valid[i] = curr_bank_dram_wb_req_valid; - assign per_bank_dram_wb_req_byteen[i] = curr_bank_dram_wb_req_byteen; - if (NUM_BANKS == 1) begin - assign per_bank_dram_wb_req_addr[i] = curr_bank_dram_wb_req_addr; - end else begin - assign per_bank_dram_wb_req_addr[i] = `LINE_TO_DRAM_ADDR(curr_bank_dram_wb_req_addr, i); - end - assign per_bank_dram_wb_req_data[i] = curr_bank_dram_wb_req_data; - assign curr_bank_dram_wb_req_ready = per_bank_dram_wb_req_ready[i]; + // Dram writeback request + .dram_wb_req_valid (curr_bank_dram_wb_req_valid), + .dram_wb_req_byteen (curr_bank_dram_wb_req_byteen), + .dram_wb_req_addr (curr_bank_dram_wb_req_addr), + .dram_wb_req_data (curr_bank_dram_wb_req_data), + .dram_wb_req_ready (curr_bank_dram_wb_req_ready), // Snoop request - if (NUM_BANKS == 1) begin - assign curr_bank_snp_req_valid = snp_req_valid_qual; - assign curr_bank_snp_req_addr = snp_req_addr_qual; - end else begin - assign curr_bank_snp_req_valid = snp_req_valid_qual && (`DRAM_ADDR_BANK(snp_req_addr_qual) == i); - assign curr_bank_snp_req_addr = `DRAM_TO_LINE_ADDR(snp_req_addr_qual); - end - assign curr_bank_snp_req_invalidate = snp_req_invalidate_qual; - assign curr_bank_snp_req_tag = snp_req_tag_qual; - assign per_bank_snp_req_ready[i] = curr_bank_snp_req_ready; + .snp_req_valid (curr_bank_snp_req_valid), + .snp_req_addr (curr_bank_snp_req_addr), + .snp_req_invalidate (curr_bank_snp_req_invalidate), + .snp_req_tag (curr_bank_snp_req_tag), + .snp_req_ready (curr_bank_snp_req_ready), - // Snoop response - assign per_bank_snp_rsp_valid[i] = curr_bank_snp_rsp_valid; - assign per_bank_snp_rsp_tag[i] = curr_bank_snp_rsp_tag; - assign curr_bank_snp_rsp_ready = per_bank_snp_rsp_ready[i]; - - VX_bank #( - .BANK_ID (i), - .CACHE_ID (CACHE_ID), - .CACHE_SIZE (CACHE_SIZE), - .BANK_LINE_SIZE (BANK_LINE_SIZE), - .NUM_BANKS (NUM_BANKS), - .WORD_SIZE (WORD_SIZE), - .NUM_REQUESTS (NUM_REQUESTS), - .STAGE_1_CYCLES (STAGE_1_CYCLES), - .CREQ_SIZE (CREQ_SIZE), - .MRVQ_SIZE (MRVQ_SIZE), - .DFPQ_SIZE (DFPQ_SIZE), - .SNRQ_SIZE (SNRQ_SIZE), - .CWBQ_SIZE (CWBQ_SIZE), - .DWBQ_SIZE (DWBQ_SIZE), - .DFQQ_SIZE (DFQQ_SIZE), - .DRAM_ENABLE (DRAM_ENABLE), - .WRITE_ENABLE (WRITE_ENABLE), - .SNOOP_FORWARDING (SNOOP_FORWARDING), - .CORE_TAG_WIDTH (CORE_TAG_WIDTH), - .CORE_TAG_ID_BITS (CORE_TAG_ID_BITS), - .SNP_REQ_TAG_WIDTH (SNP_REQ_TAG_WIDTH) - ) bank ( - `SCOPE_SIGNALS_CACHE_BANK_BIND - - .clk (clk), - .reset (reset), - // Core request - .core_req_valid (curr_bank_core_req_valid), - .core_req_rw (curr_bank_core_req_rw), - .core_req_byteen (curr_bank_core_req_byteen), - .core_req_addr (curr_bank_core_req_addr), - .core_req_data (curr_bank_core_req_data), - .core_req_tag (curr_bank_core_req_tag), - .core_req_ready (curr_bank_core_req_ready), - - // Core response - .core_rsp_valid (curr_bank_core_rsp_valid), - .core_rsp_tid (curr_bank_core_rsp_tid), - .core_rsp_data (curr_bank_core_rsp_data), - .core_rsp_tag (curr_bank_core_rsp_tag), - .core_rsp_ready (curr_bank_core_rsp_ready), - - // Dram fill request - .dram_fill_req_valid (curr_bank_dram_fill_req_valid), - .dram_fill_req_addr (curr_bank_dram_fill_req_addr), - .dram_fill_req_ready (curr_bank_dram_fill_req_ready), - - // Dram fill response - .dram_fill_rsp_valid (curr_bank_dram_fill_rsp_valid), - .dram_fill_rsp_data (curr_bank_dram_fill_rsp_data), - .dram_fill_rsp_addr (curr_bank_dram_fill_rsp_addr), - .dram_fill_rsp_ready (curr_bank_dram_fill_rsp_ready), - - // Dram writeback request - .dram_wb_req_valid (curr_bank_dram_wb_req_valid), - .dram_wb_req_byteen (curr_bank_dram_wb_req_byteen), - .dram_wb_req_addr (curr_bank_dram_wb_req_addr), - .dram_wb_req_data (curr_bank_dram_wb_req_data), - .dram_wb_req_ready (curr_bank_dram_wb_req_ready), - - // Snoop request - .snp_req_valid (curr_bank_snp_req_valid), - .snp_req_addr (curr_bank_snp_req_addr), - .snp_req_invalidate (curr_bank_snp_req_invalidate), - .snp_req_tag (curr_bank_snp_req_tag), - .snp_req_ready (curr_bank_snp_req_ready), - - // Snoop response - .snp_rsp_valid (curr_bank_snp_rsp_valid), - .snp_rsp_tag (curr_bank_snp_rsp_tag), - .snp_rsp_ready (curr_bank_snp_rsp_ready) - ); - end - endgenerate + // Snoop response + .snp_rsp_valid (curr_bank_snp_rsp_valid), + .snp_rsp_tag (curr_bank_snp_rsp_tag), + .snp_rsp_ready (curr_bank_snp_rsp_ready) + ); + end VX_cache_dram_req_arb #( .BANK_LINE_SIZE (BANK_LINE_SIZE), diff --git a/hw/rtl/cache/VX_cache_miss_resrv.v b/hw/rtl/cache/VX_cache_miss_resrv.v index c851629cf..b1f7a7e5e 100644 --- a/hw/rtl/cache/VX_cache_miss_resrv.v +++ b/hw/rtl/cache/VX_cache_miss_resrv.v @@ -78,13 +78,11 @@ module VX_cache_miss_resrv #( reg [MRVQ_SIZE-1:0] make_ready_push; reg [MRVQ_SIZE-1:0] valid_address_match; - genvar i; - generate - for (i = 0; i < MRVQ_SIZE; i++) begin - assign valid_address_match[i] = valid_table[i] ? (addr_table[i] == fill_addr_st1) : 0; - assign make_ready[i] = is_fill_st1 && valid_address_match[i]; - end - endgenerate + genvar i; + for (i = 0; i < MRVQ_SIZE; i++) begin + assign valid_address_match[i] = valid_table[i] ? (addr_table[i] == fill_addr_st1) : 0; + assign make_ready[i] = is_fill_st1 && valid_address_match[i]; + end assign pending_hazard = |(valid_address_match); diff --git a/hw/rtl/interfaces/VX_alu_req_if.v b/hw/rtl/interfaces/VX_alu_req_if.v index ce90f96f0..999e04203 100644 --- a/hw/rtl/interfaces/VX_alu_req_if.v +++ b/hw/rtl/interfaces/VX_alu_req_if.v @@ -11,14 +11,14 @@ interface VX_alu_req_if (); wire [`ALU_BITS-1:0] alu_op; + wire [`WB_BITS-1:0] wb; + wire [`NR_BITS-1:0] rd; + wire [`NUM_THREADS-1:0][31:0] rs1_data; wire [`NUM_THREADS-1:0][31:0] rs2_data; wire [31:0] offset; - wire [31:0] next_PC; - - wire [`NR_BITS-1:0] rd; - wire [`WB_BITS-1:0] wb; + wire [31:0] next_PC; wire ready; diff --git a/hw/rtl/interfaces/VX_execute_if.v b/hw/rtl/interfaces/VX_execute_if.v deleted file mode 100644 index 4f698c766..000000000 --- a/hw/rtl/interfaces/VX_execute_if.v +++ /dev/null @@ -1,32 +0,0 @@ -`ifndef VX_EXECUTE_IF -`define VX_EXECUTE_IF - -`include "VX_define.vh" - -interface VX_execute_if (); - - wire [`NUM_THREADS-1:0] valid; - wire [`NW_BITS-1:0] warp_num; - wire [31:0] curr_PC; - wire [`EX_BITS-1:0] ex_type; - wire [`OP_BITS-1:0] instr_op; - - wire [`NR_BITS-1:0] rd; - wire [`NR_BITS-1:0] rs1; - wire [`NR_BITS-1:0] rs2; - wire [31:0] imm; - wire rs1_is_PC; - wire rs2_is_imm; - wire [31:0] next_PC; - - wire [`WB_BITS-1:0] wb; - - wire alu_ready; - wire mul_ready; - wire lsu_ready; - wire csr_ready; - wire gpu_ready; - -endinterface - -`endif \ No newline at end of file diff --git a/hw/rtl/interfaces/VX_gpr_data_if.v b/hw/rtl/interfaces/VX_gpr_data_if.v new file mode 100644 index 000000000..fb58e6f79 --- /dev/null +++ b/hw/rtl/interfaces/VX_gpr_data_if.v @@ -0,0 +1,13 @@ +`ifndef VX_GPR_DATA_IF +`define VX_GPR_DATA_IF + +`include "VX_define.vh" + +interface VX_gpr_data_if (); + + wire [`NUM_THREADS-1:0][31:0] rs1_data; + wire [`NUM_THREADS-1:0][31:0] rs2_data; + +endinterface + +`endif \ No newline at end of file diff --git a/hw/rtl/interfaces/VX_ifetch_req_if.v b/hw/rtl/interfaces/VX_ifetch_req_if.v index ac95eaac1..82b31b6c5 100644 --- a/hw/rtl/interfaces/VX_ifetch_req_if.v +++ b/hw/rtl/interfaces/VX_ifetch_req_if.v @@ -5,9 +5,9 @@ interface VX_ifetch_req_if (); - wire [`NUM_THREADS-1:0] valid; - wire [31:0] curr_PC; + wire [`NUM_THREADS-1:0] valid; wire [`NW_BITS-1:0] warp_num; + wire [31:0] curr_PC; wire ready; endinterface diff --git a/hw/rtl/interfaces/VX_ifetch_rsp_if.v b/hw/rtl/interfaces/VX_ifetch_rsp_if.v index c8e5e2d79..0bc482c27 100644 --- a/hw/rtl/interfaces/VX_ifetch_rsp_if.v +++ b/hw/rtl/interfaces/VX_ifetch_rsp_if.v @@ -5,9 +5,9 @@ interface VX_ifetch_rsp_if (); - wire [`NUM_THREADS-1:0] valid; - wire [31:0] curr_PC; + wire [`NUM_THREADS-1:0] valid; wire [`NW_BITS-1:0] warp_num; + wire [31:0] curr_PC; wire [31:0] instr; wire ready; diff --git a/hw/rtl/interfaces/VX_lsu_req_if.v b/hw/rtl/interfaces/VX_lsu_req_if.v index c333961da..ce6731403 100644 --- a/hw/rtl/interfaces/VX_lsu_req_if.v +++ b/hw/rtl/interfaces/VX_lsu_req_if.v @@ -6,15 +6,19 @@ interface VX_lsu_req_if (); wire [`NUM_THREADS-1:0] valid; - wire [31:0] curr_PC; wire [`NW_BITS-1:0] warp_num; - wire [`NUM_THREADS-1:0][31:0] store_data; - wire [`NUM_THREADS-1:0][31:0] base_addr; - wire [31:0] offset; + wire [31:0] curr_PC; + wire rw; wire [`BYTEEN_BITS-1:0] byteen; - wire [`NR_BITS-1:0] rd; + wire [`WB_BITS-1:0] wb; + wire [`NR_BITS-1:0] rd; + + wire [`NUM_THREADS-1:0][31:0] store_data; + wire [`NUM_THREADS-1:0][31:0] base_addr; + wire [31:0] offset; + wire ready; endinterface diff --git a/hw/rtl/interfaces/VX_mul_req_if.v b/hw/rtl/interfaces/VX_mul_req_if.v index 26d175fba..01c0a621d 100644 --- a/hw/rtl/interfaces/VX_mul_req_if.v +++ b/hw/rtl/interfaces/VX_mul_req_if.v @@ -5,19 +5,19 @@ interface VX_mul_req_if (); - wire [`NUM_THREADS-1:0] valid; - wire [`NW_BITS-1:0] warp_num; - wire [31:0] curr_PC; + wire [`NUM_THREADS-1:0] valid; + wire [`NW_BITS-1:0] warp_num; + wire [31:0] curr_PC; + + wire [`MUL_BITS-1:0] mul_op; + + wire [`WB_BITS-1:0] wb; + wire [`NR_BITS-1:0] rd; wire [`NUM_THREADS-1:0][31:0] rs1_data; wire [`NUM_THREADS-1:0][31:0] rs2_data; - - wire [`MUL_BITS-1:0] mul_op; - - wire [`NR_BITS-1:0] rd; - wire [`WB_BITS-1:0] wb; - - wire ready; + + wire ready; endinterface diff --git a/hw/rtl/interfaces/VX_wb_if.v b/hw/rtl/interfaces/VX_wb_if.v index ceba55062..e363c5641 100644 --- a/hw/rtl/interfaces/VX_wb_if.v +++ b/hw/rtl/interfaces/VX_wb_if.v @@ -6,9 +6,9 @@ interface VX_wb_if (); wire [`NUM_THREADS-1:0] valid; - wire [`NW_BITS-1:0] warp_num; - wire [`NUM_THREADS-1:0][31:0] data; + wire [`NW_BITS-1:0] warp_num; wire [`NR_BITS-1:0] rd; + wire [`NUM_THREADS-1:0][31:0] data; wire ready; endinterface diff --git a/hw/rtl/libs/VX_generic_register.v b/hw/rtl/libs/VX_generic_register.v index b03283720..d3c76dff0 100644 --- a/hw/rtl/libs/VX_generic_register.v +++ b/hw/rtl/libs/VX_generic_register.v @@ -20,12 +20,10 @@ module VX_generic_register #( reg [(N-1):0] value; always @(posedge clk) begin - if (reset) begin + if (reset || flush) begin value <= N'(0); end else if (~stall) begin value <= in; - end else if (flush) begin - value <= N'(0); end end diff --git a/hw/rtl/libs/VX_generic_stack.v b/hw/rtl/libs/VX_generic_stack.v index fdebbacf7..d43b7816c 100644 --- a/hw/rtl/libs/VX_generic_stack.v +++ b/hw/rtl/libs/VX_generic_stack.v @@ -1,7 +1,7 @@ module VX_generic_stack #( - parameter WIDTH = 40, - parameter DEPTH = 2 + parameter WIDTH = 1, + parameter DEPTH = 1 ) ( input wire clk, input wire reset, diff --git a/hw/simulate/Makefile b/hw/simulate/Makefile index a3f119a41..c755d5d22 100644 --- a/hw/simulate/Makefile +++ b/hw/simulate/Makefile @@ -1,4 +1,4 @@ -SINGLECORE += -DNUM_CLUSTERS=1 -DNUM_CORES=1 +SINGLECORE += -DNUM_CLUSTERS=1 -DNUM_CORES=1 #MULTICORE += -DNUM_CLUSTERS=2 -DNUM_CORES=4 -DL2_ENABLE=1 #MULTICORE += -DNUM_CLUSTERS=1 -DNUM_CORES=4 -DL2_ENABLE=1 diff --git a/hw/simulate/ram.h b/hw/simulate/ram.h index 53df7e0f8..0ddd3e47a 100644 --- a/hw/simulate/ram.h +++ b/hw/simulate/ram.h @@ -36,7 +36,7 @@ public: void clear() { for (uint32_t i = 0; i < (1 << 12); i++) { if (mem_[i]) { - delete mem_[i]; + delete [] mem_[i]; mem_[i] = NULL; } } diff --git a/runtime/tests/simple/vx_simple.dump b/runtime/tests/simple/vx_simple.dump index 9b2c4b730..5175c11ce 100644 --- a/runtime/tests/simple/vx_simple.dump +++ b/runtime/tests/simple/vx_simple.dump @@ -12,17 +12,17 @@ Disassembly of section .init: 80000010: 684000ef jal ra,80000694 80000014: 00100513 li a0,1 80000018: 0005006b 0x5006b -8000001c: 0d818513 addi a0,gp,216 # 800048e0 <__malloc_max_total_mem> -80000020: 19018613 addi a2,gp,400 # 80004998 <__BSS_END__> +8000001c: cc418513 addi a0,gp,-828 # 800014cc +80000020: d2818613 addi a2,gp,-728 # 80001530 <__BSS_END__> 80000024: 40a60633 sub a2,a2,a0 80000028: 00000593 li a1,0 -8000002c: 381000ef jal ra,80000bac +8000002c: 289000ef jal ra,80000ab4 80000030: 00001517 auipc a0,0x1 -80000034: a8450513 addi a0,a0,-1404 # 80000ab4 <__libc_fini_array> -80000038: 239000ef jal ra,80000a70 -8000003c: 2d5000ef jal ra,80000b10 <__libc_init_array> +80000034: 98c50513 addi a0,a0,-1652 # 800009bc <__libc_fini_array> +80000038: 141000ef jal ra,80000978 +8000003c: 1dd000ef jal ra,80000a18 <__libc_init_array> 80000040: 008000ef jal ra,80000048
-80000044: 2410006f j 80000a84 +80000044: 1490006f j 8000098c Disassembly of section .text: @@ -38,8 +38,8 @@ Disassembly of section .text: 80000068: 0b512a23 sw s5,180(sp) 8000006c: 0b612823 sw s6,176(sp) 80000070: 66c000ef jal ra,800006dc -80000074: 80004537 lui a0,0x80004 -80000078: be850513 addi a0,a0,-1048 # 80003be8 <__BSS_END__+0xfffff250> +80000074: 80001537 lui a0,0x80001 +80000078: d4850513 addi a0,a0,-696 # 80000d48 <__global_pointer$+0xfffff540> 8000007c: 6d0000ef jal ra,8000074c 80000080: 02010493 addi s1,sp,32 80000084: 00048713 mv a4,s1 @@ -51,11 +51,11 @@ Disassembly of section .text: 8000009c: fed79ae3 bne a5,a3,80000090 800000a0: 00000413 li s0,0 800000a4: 00100713 li a4,1 -800000a8: 800049b7 lui s3,0x80004 +800000a8: 800019b7 lui s3,0x80001 800000ac: 02400913 li s2,36 800000b0: 0004a783 lw a5,0(s1) 800000b4: 00040593 mv a1,s0 -800000b8: c1498513 addi a0,s3,-1004 # 80003c14 <__BSS_END__+0xfffff27c> +800000b8: d7498513 addi a0,s3,-652 # 80000d74 <__global_pointer$+0xfffff56c> 800000bc: 00878663 beq a5,s0,800000c8 800000c0: 76c000ef jal ra,8000082c 800000c4: 00000713 li a4,0 @@ -63,72 +63,72 @@ Disassembly of section .text: 800000cc: 00448493 addi s1,s1,4 800000d0: ff2410e3 bne s0,s2,800000b0 800000d4: 16071e63 bnez a4,80000250 -800000d8: 80004537 lui a0,0x80004 -800000dc: c4850513 addi a0,a0,-952 # 80003c48 <__BSS_END__+0xfffff2b0> +800000d8: 80001537 lui a0,0x80001 +800000dc: da850513 addi a0,a0,-600 # 80000da8 <__global_pointer$+0xfffff5a0> 800000e0: 66c000ef jal ra,8000074c 800000e4: 264000ef jal ra,80000348 -800000e8: 80004537 lui a0,0x80004 -800000ec: c5850513 addi a0,a0,-936 # 80003c58 <__BSS_END__+0xfffff2c0> +800000e8: 80001537 lui a0,0x80001 +800000ec: db850513 addi a0,a0,-584 # 80000db8 <__global_pointer$+0xfffff5b0> 800000f0: 65c000ef jal ra,8000074c 800000f4: 00400513 li a0,4 800000f8: 5e4000ef jal ra,800006dc 800000fc: 2e4000ef jal ra,800003e0 80000100: 00100513 li a0,1 80000104: 5d8000ef jal ra,800006dc -80000108: 80004537 lui a0,0x80004 -8000010c: c6c50513 addi a0,a0,-916 # 80003c6c <__BSS_END__+0xfffff2d4> +80000108: 80001537 lui a0,0x80001 +8000010c: dcc50513 addi a0,a0,-564 # 80000dcc <__global_pointer$+0xfffff5c4> 80000110: 63c000ef jal ra,8000074c 80000114: 3a8000ef jal ra,800004bc -80000118: 80004537 lui a0,0x80004 -8000011c: c7c50513 addi a0,a0,-900 # 80003c7c <__BSS_END__+0xfffff2e4> +80000118: 80001537 lui a0,0x80001 +8000011c: ddc50513 addi a0,a0,-548 # 80000ddc <__global_pointer$+0xfffff5d4> 80000120: ffff0437 lui s0,0xffff0 80000124: 628000ef jal ra,8000074c 80000128: 00000493 li s1,0 -8000012c: 80004b37 lui s6,0x80004 -80000130: 80004ab7 lui s5,0x80004 -80000134: 80004a37 lui s4,0x80004 -80000138: 800049b7 lui s3,0x80004 -8000013c: 01440913 addi s2,s0,20 # ffff0014 <__BSS_END__+0x7ffeb67c> +8000012c: 80001b37 lui s6,0x80001 +80000130: 80001ab7 lui s5,0x80001 +80000134: 80001a37 lui s4,0x80001 +80000138: 800019b7 lui s3,0x80001 +8000013c: 01440913 addi s2,s0,20 # ffff0014 <__global_pointer$+0x7ffee80c> 80000140: 00942023 sw s1,0(s0) 80000144: 00040593 mv a1,s0 -80000148: c90b0513 addi a0,s6,-880 # 80003c90 <__BSS_END__+0xfffff2f8> +80000148: df0b0513 addi a0,s6,-528 # 80000df0 <__global_pointer$+0xfffff5e8> 8000014c: 6e0000ef jal ra,8000082c 80000150: 00048593 mv a1,s1 -80000154: c98a8513 addi a0,s5,-872 # 80003c98 <__BSS_END__+0xfffff300> +80000154: df8a8513 addi a0,s5,-520 # 80000df8 <__global_pointer$+0xfffff5f0> 80000158: 6d4000ef jal ra,8000082c 8000015c: 00048593 mv a1,s1 -80000160: caca0513 addi a0,s4,-852 # 80003cac <__BSS_END__+0xfffff314> +80000160: e0ca0513 addi a0,s4,-500 # 80000e0c <__global_pointer$+0xfffff604> 80000164: 6c8000ef jal ra,8000082c -80000168: cbc98513 addi a0,s3,-836 # 80003cbc <__BSS_END__+0xfffff324> +80000168: e1c98513 addi a0,s3,-484 # 80000e1c <__global_pointer$+0xfffff614> 8000016c: 00440413 addi s0,s0,4 80000170: 5dc000ef jal ra,8000074c 80000174: 00148493 addi s1,s1,1 80000178: fd2414e3 bne s0,s2,80000140 -8000017c: 80004537 lui a0,0x80004 -80000180: cd450513 addi a0,a0,-812 # 80003cd4 <__BSS_END__+0xfffff33c> +8000017c: 80001537 lui a0,0x80001 +80000180: e3450513 addi a0,a0,-460 # 80000e34 <__global_pointer$+0xfffff62c> 80000184: 5c8000ef jal ra,8000074c -80000188: 800047b7 lui a5,0x80004 -8000018c: 00878793 addi a5,a5,8 # 80004008 <__BSS_END__+0xfffff670> +80000188: 800017b7 lui a5,0x80001 +8000018c: 00878793 addi a5,a5,8 # 80001008 <__global_pointer$+0xfffff800> 80000190: 80000637 lui a2,0x80000 80000194: 00400713 li a4,4 80000198: 04078813 addi a6,a5,64 8000019c: 00c10693 addi a3,sp,12 -800001a0: 27860613 addi a2,a2,632 # 80000278 <__BSS_END__+0xffffb8e0> +800001a0: 27860613 addi a2,a2,632 # 80000278 <__global_pointer$+0xffffea70> 800001a4: 00400593 li a1,4 800001a8: 00400513 li a0,4 -800001ac: 0e818913 addi s2,gp,232 # 800048f0 +800001ac: cc818913 addi s2,gp,-824 # 800014d0 800001b0: 00f12623 sw a5,12(sp) 800001b4: 01012823 sw a6,16(sp) 800001b8: 00e12c23 sw a4,24(sp) 800001bc: 00e12e23 sw a4,28(sp) 800001c0: 01212a23 sw s2,20(sp) -800001c4: 788000ef jal ra,8000094c -800001c8: 80004537 lui a0,0x80004 -800001cc: cf450513 addi a0,a0,-780 # 80003cf4 <__BSS_END__+0xfffff35c> +800001c4: 744000ef jal ra,80000908 +800001c8: 80001537 lui a0,0x80001 +800001cc: e5450513 addi a0,a0,-428 # 80000e54 <__global_pointer$+0xfffff64c> 800001d0: 57c000ef jal ra,8000074c 800001d4: 00000493 li s1,0 -800001d8: 80004a37 lui s4,0x80004 -800001dc: 80004ab7 lui s5,0x80004 +800001d8: 80001a37 lui s4,0x80001 +800001dc: 80001ab7 lui s5,0x80001 800001e0: 00400993 li s3,4 800001e4: 00000413 li s0,0 800001e8: 01812783 lw a5,24(sp) @@ -139,11 +139,11 @@ Disassembly of section .text: 800001fc: 0007a503 lw a0,0(a5) 80000200: 00140413 addi s0,s0,1 80000204: 588000ef jal ra,8000078c -80000208: c94a0513 addi a0,s4,-876 # 80003c94 <__BSS_END__+0xfffff2fc> +80000208: df4a0513 addi a0,s4,-524 # 80000df4 <__global_pointer$+0xfffff5ec> 8000020c: 540000ef jal ra,8000074c 80000210: fd341ce3 bne s0,s3,800001e8 80000214: 00148493 addi s1,s1,1 -80000218: c10a8513 addi a0,s5,-1008 # 80003c10 <__BSS_END__+0xfffff278> +80000218: d70a8513 addi a0,s5,-656 # 80000d70 <__global_pointer$+0xfffff568> 8000021c: 530000ef jal ra,8000074c 80000220: fc8492e3 bne s1,s0,800001e4 80000224: 0cc12083 lw ra,204(sp) @@ -157,8 +157,8 @@ Disassembly of section .text: 80000244: 00000513 li a0,0 80000248: 0d010113 addi sp,sp,208 8000024c: 00008067 ret -80000250: 80004537 lui a0,0x80004 -80000254: c2050513 addi a0,a0,-992 # 80003c20 <__BSS_END__+0xfffff288> +80000250: 80001537 lui a0,0x80001 +80000254: d8050513 addi a0,a0,-640 # 80000d80 <__global_pointer$+0xfffff578> 80000258: 4f4000ef jal ra,8000074c 8000025c: e7dff06f j 800000d8 @@ -166,8 +166,8 @@ Disassembly of section .text: 80000260: 00000793 li a5,0 80000264: 00078863 beqz a5,80000274 80000268: 80001537 lui a0,0x80001 -8000026c: ab450513 addi a0,a0,-1356 # 80000ab4 <__BSS_END__+0xffffc11c> -80000270: 0010006f j 80000a70 +8000026c: 9bc50513 addi a0,a0,-1604 # 800009bc <__global_pointer$+0xfffff1b4> +80000270: 7080006f j 80000978 80000274: 00008067 ret 80000278 : @@ -204,7 +204,7 @@ Disassembly of section .text: 800002e8: 00112623 sw ra,12(sp) 800002ec: 410000ef jal ra,800006fc 800002f0: 00251713 slli a4,a0,0x2 -800002f4: 15018793 addi a5,gp,336 # 80004958 +800002f4: d0818793 addi a5,gp,-760 # 80001510 800002f8: 00e787b3 add a5,a5,a4 800002fc: 00a7a023 sw a0,0(a5) 80000300: 00051863 bnez a0,80000310 @@ -222,16 +222,16 @@ Disassembly of section .text: 80000328: 3e4000ef jal ra,8000070c 8000032c: 00c12083 lw ra,12(sp) 80000330: 00251713 slli a4,a0,0x2 -80000334: 88018793 addi a5,gp,-1920 # 80004088 +80000334: 88018793 addi a5,gp,-1920 # 80001088 80000338: 00e787b3 add a5,a5,a4 8000033c: 00a7a023 sw a0,0(a5) 80000340: 01010113 addi sp,sp,16 80000344: 00008067 ret 80000348 : -80000348: 80004537 lui a0,0x80004 +80000348: 80001537 lui a0,0x80001 8000034c: ff010113 addi sp,sp,-16 -80000350: d3050513 addi a0,a0,-720 # 80003d30 <__BSS_END__+0xfffff398> +80000350: e9050513 addi a0,a0,-368 # 80000e90 <__global_pointer$+0xfffff688> 80000354: 00112623 sw ra,12(sp) 80000358: 00812423 sw s0,8(sp) 8000035c: 00912223 sw s1,4(sp) @@ -239,7 +239,7 @@ Disassembly of section .text: 80000364: 00400513 li a0,4 80000368: 374000ef jal ra,800006dc 8000036c: 3a0000ef jal ra,8000070c -80000370: 88018413 addi s0,gp,-1920 # 80004088 +80000370: 88018413 addi s0,gp,-1920 # 80001088 80000374: 00251713 slli a4,a0,0x2 80000378: 00050793 mv a5,a0 8000037c: 00e40733 add a4,s0,a4 @@ -247,23 +247,23 @@ Disassembly of section .text: 80000384: 00f72023 sw a5,0(a4) 80000388: 354000ef jal ra,800006dc 8000038c: 00042503 lw a0,0(s0) -80000390: 800044b7 lui s1,0x80004 +80000390: 800014b7 lui s1,0x80001 80000394: 3f8000ef jal ra,8000078c -80000398: c1048513 addi a0,s1,-1008 # 80003c10 <__BSS_END__+0xfffff278> +80000398: d7048513 addi a0,s1,-656 # 80000d70 <__global_pointer$+0xfffff568> 8000039c: 3b0000ef jal ra,8000074c 800003a0: 00442503 lw a0,4(s0) 800003a4: 3e8000ef jal ra,8000078c -800003a8: c1048513 addi a0,s1,-1008 +800003a8: d7048513 addi a0,s1,-656 800003ac: 3a0000ef jal ra,8000074c 800003b0: 00842503 lw a0,8(s0) 800003b4: 3d8000ef jal ra,8000078c -800003b8: c1048513 addi a0,s1,-1008 +800003b8: d7048513 addi a0,s1,-656 800003bc: 390000ef jal ra,8000074c 800003c0: 00c42503 lw a0,12(s0) 800003c4: 3c8000ef jal ra,8000078c 800003c8: 00812403 lw s0,8(sp) 800003cc: 00c12083 lw ra,12(sp) -800003d0: c1048513 addi a0,s1,-1008 +800003d0: d7048513 addi a0,s1,-656 800003d4: 00412483 lw s1,4(sp) 800003d8: 01010113 addi sp,sp,16 800003dc: 3700006f j 8000074c @@ -282,7 +282,7 @@ Disassembly of section .text: 80000408: 00343513 sltiu a0,s0,3 8000040c: 2e0000ef jal ra,800006ec 80000410: 00200793 li a5,2 -80000414: 16018493 addi s1,gp,352 # 80004968 +80000414: d1818493 addi s1,gp,-744 # 80001520 80000418: 06f40863 beq s0,a5,80000488 8000041c: 00241413 slli s0,s0,0x2 80000420: 00848433 add s0,s1,s0 @@ -291,21 +291,21 @@ Disassembly of section .text: 8000042c: 2c8000ef jal ra,800006f4 80000430: 2c4000ef jal ra,800006f4 80000434: 0004a503 lw a0,0(s1) -80000438: 80004437 lui s0,0x80004 +80000438: 80001437 lui s0,0x80001 8000043c: 350000ef jal ra,8000078c -80000440: c1040513 addi a0,s0,-1008 # 80003c10 <__BSS_END__+0xfffff278> +80000440: d7040513 addi a0,s0,-656 # 80000d70 <__global_pointer$+0xfffff568> 80000444: 308000ef jal ra,8000074c 80000448: 0044a503 lw a0,4(s1) 8000044c: 340000ef jal ra,8000078c -80000450: c1040513 addi a0,s0,-1008 +80000450: d7040513 addi a0,s0,-656 80000454: 2f8000ef jal ra,8000074c 80000458: 0084a503 lw a0,8(s1) 8000045c: 330000ef jal ra,8000078c -80000460: c1040513 addi a0,s0,-1008 +80000460: d7040513 addi a0,s0,-656 80000464: 2e8000ef jal ra,8000074c 80000468: 00c4a503 lw a0,12(s1) 8000046c: 320000ef jal ra,8000078c -80000470: c1040513 addi a0,s0,-1008 +80000470: d7040513 addi a0,s0,-656 80000474: 00812403 lw s0,8(sp) 80000478: 00c12083 lw ra,12(sp) 8000047c: 00412483 lw s1,4(sp) @@ -316,7 +316,7 @@ Disassembly of section .text: 80000490: f9dff06f j 8000042c 80000494: 00144513 xori a0,s0,1 80000498: 254000ef jal ra,800006ec -8000049c: 16018493 addi s1,gp,352 # 80004968 +8000049c: d1818493 addi s1,gp,-744 # 80001520 800004a0: 00041863 bnez s0,800004b0 800004a4: 00a00793 li a5,10 800004a8: 00f4a023 sw a5,0(s1) @@ -328,36 +328,36 @@ Disassembly of section .text: 800004bc : 800004bc: 800005b7 lui a1,0x80000 800004c0: ff010113 addi sp,sp,-16 -800004c4: 2e458593 addi a1,a1,740 # 800002e4 <__BSS_END__+0xffffb94c> +800004c4: 2e458593 addi a1,a1,740 # 800002e4 <__global_pointer$+0xffffeadc> 800004c8: 00400513 li a0,4 800004cc: 00112623 sw ra,12(sp) 800004d0: 00812423 sw s0,8(sp) 800004d4: 00912223 sw s1,4(sp) 800004d8: 1fc000ef jal ra,800006d4 800004dc: 220000ef jal ra,800006fc -800004e0: 15018413 addi s0,gp,336 # 80004958 +800004e0: d0818413 addi s0,gp,-760 # 80001510 800004e4: 00251793 slli a5,a0,0x2 800004e8: 00f407b3 add a5,s0,a5 800004ec: 00a7a023 sw a0,0(a5) 800004f0: 04051c63 bnez a0,80000548 800004f4: 00042503 lw a0,0(s0) -800004f8: 800044b7 lui s1,0x80004 +800004f8: 800014b7 lui s1,0x80001 800004fc: 290000ef jal ra,8000078c -80000500: c1048513 addi a0,s1,-1008 # 80003c10 <__BSS_END__+0xfffff278> +80000500: d7048513 addi a0,s1,-656 # 80000d70 <__global_pointer$+0xfffff568> 80000504: 248000ef jal ra,8000074c 80000508: 00442503 lw a0,4(s0) 8000050c: 280000ef jal ra,8000078c -80000510: c1048513 addi a0,s1,-1008 +80000510: d7048513 addi a0,s1,-656 80000514: 238000ef jal ra,8000074c 80000518: 00842503 lw a0,8(s0) 8000051c: 270000ef jal ra,8000078c -80000520: c1048513 addi a0,s1,-1008 +80000520: d7048513 addi a0,s1,-656 80000524: 228000ef jal ra,8000074c 80000528: 00c42503 lw a0,12(s0) 8000052c: 260000ef jal ra,8000078c 80000530: 00812403 lw s0,8(sp) 80000534: 00c12083 lw ra,12(sp) -80000538: c1048513 addi a0,s1,-1008 +80000538: d7048513 addi a0,s1,-656 8000053c: 00412483 lw s1,4(sp) 80000540: 01010113 addi sp,sp,16 80000544: 2080006f j 8000074c @@ -366,9 +366,9 @@ Disassembly of section .text: 80000550: fa5ff06f j 800004f4 80000554 : -80000554: 80004537 lui a0,0x80004 +80000554: 80001537 lui a0,0x80001 80000558: ff010113 addi sp,sp,-16 -8000055c: d3050513 addi a0,a0,-720 # 80003d30 <__BSS_END__+0xfffff398> +8000055c: e9050513 addi a0,a0,-368 # 80000e90 <__global_pointer$+0xfffff688> 80000560: 00112623 sw ra,12(sp) 80000564: 00812423 sw s0,8(sp) 80000568: 00912223 sw s1,4(sp) @@ -376,7 +376,7 @@ Disassembly of section .text: 80000570: 00400513 li a0,4 80000574: 168000ef jal ra,800006dc 80000578: 194000ef jal ra,8000070c -8000057c: 88018493 addi s1,gp,-1920 # 80004088 +8000057c: 88018493 addi s1,gp,-1920 # 80001088 80000580: 00251713 slli a4,a0,0x2 80000584: 00050793 mv a5,a0 80000588: 00e48733 add a4,s1,a4 @@ -384,36 +384,36 @@ Disassembly of section .text: 80000590: 00f72023 sw a5,0(a4) 80000594: 148000ef jal ra,800006dc 80000598: 0004a503 lw a0,0(s1) -8000059c: 80004437 lui s0,0x80004 +8000059c: 80001437 lui s0,0x80001 800005a0: 1ec000ef jal ra,8000078c -800005a4: c1040513 addi a0,s0,-1008 # 80003c10 <__BSS_END__+0xfffff278> +800005a4: d7040513 addi a0,s0,-656 # 80000d70 <__global_pointer$+0xfffff568> 800005a8: 1a4000ef jal ra,8000074c 800005ac: 0044a503 lw a0,4(s1) 800005b0: 1dc000ef jal ra,8000078c -800005b4: c1040513 addi a0,s0,-1008 +800005b4: d7040513 addi a0,s0,-656 800005b8: 194000ef jal ra,8000074c 800005bc: 0084a503 lw a0,8(s1) 800005c0: 1cc000ef jal ra,8000078c -800005c4: c1040513 addi a0,s0,-1008 +800005c4: d7040513 addi a0,s0,-656 800005c8: 184000ef jal ra,8000074c 800005cc: 00c4a503 lw a0,12(s1) -800005d0: 15018493 addi s1,gp,336 # 80004958 +800005d0: d0818493 addi s1,gp,-760 # 80001510 800005d4: 1b8000ef jal ra,8000078c -800005d8: c1040513 addi a0,s0,-1008 +800005d8: d7040513 addi a0,s0,-656 800005dc: 170000ef jal ra,8000074c -800005e0: 80004537 lui a0,0x80004 -800005e4: c5850513 addi a0,a0,-936 # 80003c58 <__BSS_END__+0xfffff2c0> +800005e0: 80001537 lui a0,0x80001 +800005e4: db850513 addi a0,a0,-584 # 80000db8 <__global_pointer$+0xfffff5b0> 800005e8: 164000ef jal ra,8000074c 800005ec: 00400513 li a0,4 800005f0: 0ec000ef jal ra,800006dc 800005f4: dedff0ef jal ra,800003e0 800005f8: 00100513 li a0,1 800005fc: 0e0000ef jal ra,800006dc -80000600: 80004537 lui a0,0x80004 -80000604: d4050513 addi a0,a0,-704 # 80003d40 <__BSS_END__+0xfffff3a8> +80000600: 80001537 lui a0,0x80001 +80000604: ea050513 addi a0,a0,-352 # 80000ea0 <__global_pointer$+0xfffff698> 80000608: 144000ef jal ra,8000074c 8000060c: 800005b7 lui a1,0x80000 -80000610: 2e458593 addi a1,a1,740 # 800002e4 <__BSS_END__+0xffffb94c> +80000610: 2e458593 addi a1,a1,740 # 800002e4 <__global_pointer$+0xffffeadc> 80000614: 00400513 li a0,4 80000618: 0bc000ef jal ra,800006d4 8000061c: 0e0000ef jal ra,800006fc @@ -423,19 +423,19 @@ Disassembly of section .text: 8000062c: 04051a63 bnez a0,80000680 80000630: 0004a503 lw a0,0(s1) 80000634: 158000ef jal ra,8000078c -80000638: c1040513 addi a0,s0,-1008 +80000638: d7040513 addi a0,s0,-656 8000063c: 110000ef jal ra,8000074c 80000640: 0044a503 lw a0,4(s1) 80000644: 148000ef jal ra,8000078c -80000648: c1040513 addi a0,s0,-1008 +80000648: d7040513 addi a0,s0,-656 8000064c: 100000ef jal ra,8000074c 80000650: 0084a503 lw a0,8(s1) 80000654: 138000ef jal ra,8000078c -80000658: c1040513 addi a0,s0,-1008 +80000658: d7040513 addi a0,s0,-656 8000065c: 0f0000ef jal ra,8000074c 80000660: 00c4a503 lw a0,12(s1) 80000664: 128000ef jal ra,8000078c -80000668: c1040513 addi a0,s0,-1008 +80000668: d7040513 addi a0,s0,-656 8000066c: 00812403 lw s0,8(sp) 80000670: 00c12083 lw ra,12(sp) 80000674: 00412483 lw s1,4(sp) @@ -452,8 +452,8 @@ Disassembly of section .text: 80000694 : 80000694: 02502573 csrr a0,0x25 80000698: 0005006b 0x5006b -8000069c: 00004197 auipc gp,0x4 -800006a0: 16c18193 addi gp,gp,364 # 80004808 <__global_pointer$> +8000069c: 00001197 auipc gp,0x1 +800006a0: 16c18193 addi gp,gp,364 # 80001808 <__global_pointer$> 800006a4: f14025f3 csrr a1,mhartid 800006a8: 00a59593 slli a1,a1,0xa 800006ac: 02002673 csrr a2,0x20 @@ -548,7 +548,7 @@ Disassembly of section .text: 80000778: 00008067 ret 8000077c : -8000077c: 89018293 addi t0,gp,-1904 # 80004098 +8000077c: 89018293 addi t0,gp,-1904 # 80001098 80000780: 0002a283 lw t0,0(t0) 80000784: 00b2a023 sw a1,0(t0) 80000788: 00008067 ret @@ -562,10 +562,10 @@ Disassembly of section .text: 800007a0: 00f00793 li a5,15 800007a4: 00050493 mv s1,a0 800007a8: 04a7fc63 bgeu a5,a0,80000800 -800007ac: 80004937 lui s2,0x80004 +800007ac: 80001937 lui s2,0x80001 800007b0: 00000693 li a3,0 800007b4: 02000413 li s0,32 -800007b8: d8c90913 addi s2,s2,-628 # 80003d8c <__BSS_END__+0xfffff3f4> +800007b8: eec90913 addi s2,s2,-276 # 80000eec <__global_pointer$+0xfffff6e4> 800007bc: ffc40413 addi s0,s0,-4 800007c0: 0084d7b3 srl a5,s1,s0 800007c4: 00f7f793 andi a5,a5,15 @@ -583,9 +583,9 @@ Disassembly of section .text: 800007f4: 00012903 lw s2,0(sp) 800007f8: 01010113 addi sp,sp,16 800007fc: 00008067 ret -80000800: 800047b7 lui a5,0x80004 +80000800: 800017b7 lui a5,0x80001 80000804: 00251493 slli s1,a0,0x2 -80000808: d8c78793 addi a5,a5,-628 # 80003d8c <__BSS_END__+0xfffff3f4> +80000808: eec78793 addi a5,a5,-276 # 80000eec <__global_pointer$+0xfffff6e4> 8000080c: 00812403 lw s0,8(sp) 80000810: 009784b3 add s1,a5,s1 80000814: 0004a503 lw a0,0(s1) @@ -605,10 +605,10 @@ Disassembly of section .text: 80000844: f09ff0ef jal ra,8000074c 80000848: 00f00793 li a5,15 8000084c: 0687f063 bgeu a5,s0,800008ac -80000850: 80004937 lui s2,0x80004 +80000850: 80001937 lui s2,0x80001 80000854: 00000693 li a3,0 80000858: 02000493 li s1,32 -8000085c: d8c90913 addi s2,s2,-628 # 80003d8c <__BSS_END__+0xfffff3f4> +8000085c: eec90913 addi s2,s2,-276 # 80000eec <__global_pointer$+0xfffff6e4> 80000860: ffc48493 addi s1,s1,-4 80000864: 009457b3 srl a5,s0,s1 80000868: 00f7f793 andi a5,a5,15 @@ -624,12 +624,12 @@ Disassembly of section .text: 80000890: 00c12083 lw ra,12(sp) 80000894: 00412483 lw s1,4(sp) 80000898: 00012903 lw s2,0(sp) -8000089c: 80004537 lui a0,0x80004 -800008a0: c1050513 addi a0,a0,-1008 # 80003c10 <__BSS_END__+0xfffff278> +8000089c: 80001537 lui a0,0x80001 +800008a0: d7050513 addi a0,a0,-656 # 80000d70 <__global_pointer$+0xfffff568> 800008a4: 01010113 addi sp,sp,16 800008a8: ea5ff06f j 8000074c -800008ac: 800047b7 lui a5,0x80004 -800008b0: d8c78793 addi a5,a5,-628 # 80003d8c <__BSS_END__+0xfffff3f4> +800008ac: 800017b7 lui a5,0x80001 +800008b0: eec78793 addi a5,a5,-276 # 80000eec <__global_pointer$+0xfffff6e4> 800008b4: 00241413 slli s0,s0,0x2 800008b8: 00878433 add s0,a5,s0 800008bc: 00042503 lw a0,0(s0) @@ -637,4356 +637,656 @@ Disassembly of section .text: 800008c4: fc9ff06f j 8000088c 800008c8 : -800008c8: 1881a503 lw a0,392(gp) # 80004990 -800008cc: ff010113 addi sp,sp,-16 -800008d0: 00112623 sw ra,12(sp) -800008d4: e09ff0ef jal ra,800006dc -800008d8: 1741a503 lw a0,372(gp) # 8000497c -800008dc: 1781a783 lw a5,376(gp) # 80004980 -800008e0: 000780e7 jalr a5 -800008e4: e19ff0ef jal ra,800006fc -800008e8: 00c12083 lw ra,12(sp) -800008ec: 00153513 seqz a0,a0 -800008f0: 01010113 addi sp,sp,16 -800008f4: de9ff06f j 800006dc +800008c8: ff010113 addi sp,sp,-16 +800008cc: 00812423 sw s0,8(sp) +800008d0: cc41a783 lw a5,-828(gp) # 800014cc +800008d4: 00112623 sw ra,12(sp) +800008d8: 0087a503 lw a0,8(a5) +800008dc: e01ff0ef jal ra,800006dc +800008e0: cc41a783 lw a5,-828(gp) # 800014cc +800008e4: 0047a503 lw a0,4(a5) +800008e8: 0007a783 lw a5,0(a5) +800008ec: 000780e7 jalr a5 +800008f0: e0dff0ef jal ra,800006fc +800008f4: 00812403 lw s0,8(sp) +800008f8: 00c12083 lw ra,12(sp) +800008fc: 00153513 seqz a0,a0 +80000900: 01010113 addi sp,sp,16 +80000904: dd9ff06f j 800006dc -800008f8 : -800008f8: 17c1a503 lw a0,380(gp) # 80004984 -800008fc: ff010113 addi sp,sp,-16 -80000900: 00112623 sw ra,12(sp) -80000904: 00812423 sw s0,8(sp) -80000908: dd5ff0ef jal ra,800006dc -8000090c: e01ff0ef jal ra,8000070c -80000910: 00050413 mv s0,a0 -80000914: df1ff0ef jal ra,80000704 -80000918: 1841a583 lw a1,388(gp) # 8000498c -8000091c: 00050693 mv a3,a0 -80000920: 1801a503 lw a0,384(gp) # 80004988 -80000924: 1701a783 lw a5,368(gp) # 80004978 -80000928: 00040613 mv a2,s0 -8000092c: 00000713 li a4,0 -80000930: 000780e7 jalr a5 -80000934: dc9ff0ef jal ra,800006fc -80000938: 00812403 lw s0,8(sp) -8000093c: 00c12083 lw ra,12(sp) -80000940: 00153513 seqz a0,a0 -80000944: 01010113 addi sp,sp,16 -80000948: d95ff06f j 800006dc +80000908 : +80000908: fe010113 addi sp,sp,-32 +8000090c: 00410793 addi a5,sp,4 +80000910: 00812c23 sw s0,24(sp) +80000914: ccf1a223 sw a5,-828(gp) # 800014cc +80000918: 00112e23 sw ra,28(sp) +8000091c: 00c12223 sw a2,4(sp) +80000920: 00d12423 sw a3,8(sp) +80000924: 00b12623 sw a1,12(sp) +80000928: 00100793 li a5,1 +8000092c: 00a7dc63 bge a5,a0,80000944 +80000930: 800015b7 lui a1,0x80001 +80000934: 8c858593 addi a1,a1,-1848 # 800008c8 <__global_pointer$+0xfffff0c0> +80000938: d9dff0ef jal ra,800006d4 +8000093c: cc41a783 lw a5,-828(gp) # 800014cc +80000940: 0087a583 lw a1,8(a5) +80000944: 00058513 mv a0,a1 +80000948: d95ff0ef jal ra,800006dc +8000094c: cc41a783 lw a5,-828(gp) # 800014cc +80000950: 0047a503 lw a0,4(a5) +80000954: 0007a783 lw a5,0(a5) +80000958: 000780e7 jalr a5 +8000095c: da1ff0ef jal ra,800006fc +80000960: 00153513 seqz a0,a0 +80000964: d79ff0ef jal ra,800006dc +80000968: 01c12083 lw ra,28(sp) +8000096c: 01812403 lw s0,24(sp) +80000970: 02010113 addi sp,sp,32 +80000974: 00008067 ret -8000094c : -8000094c: ff010113 addi sp,sp,-16 -80000950: 00812423 sw s0,8(sp) -80000954: 00912223 sw s1,4(sp) -80000958: 01212023 sw s2,0(sp) -8000095c: 00112623 sw ra,12(sp) -80000960: 16c1ac23 sw a2,376(gp) # 80004980 -80000964: 16d1aa23 sw a3,372(gp) # 8000497c -80000968: 18b1a423 sw a1,392(gp) # 80004990 -8000096c: 00100793 li a5,1 -80000970: 00a7da63 bge a5,a0,80000984 -80000974: 800015b7 lui a1,0x80001 -80000978: 8c858593 addi a1,a1,-1848 # 800008c8 <__BSS_END__+0xffffbf30> -8000097c: d59ff0ef jal ra,800006d4 -80000980: 1881a583 lw a1,392(gp) # 80004990 -80000984: 00058513 mv a0,a1 -80000988: d55ff0ef jal ra,800006dc -8000098c: 1741a503 lw a0,372(gp) # 8000497c -80000990: 1781a783 lw a5,376(gp) # 80004980 -80000994: 000780e7 jalr a5 -80000998: d65ff0ef jal ra,800006fc -8000099c: 00812403 lw s0,8(sp) -800009a0: 00c12083 lw ra,12(sp) -800009a4: 00412483 lw s1,4(sp) -800009a8: 00012903 lw s2,0(sp) -800009ac: 00153513 seqz a0,a0 -800009b0: 01010113 addi sp,sp,16 -800009b4: d29ff06f j 800006dc +80000978 : +80000978: 00050593 mv a1,a0 +8000097c: 00000693 li a3,0 +80000980: 00000613 li a2,0 +80000984: 00000513 li a0,0 +80000988: 2080006f j 80000b90 <__register_exitproc> -800009b8 : -800009b8: 00852683 lw a3,8(a0) -800009bc: 00100713 li a4,1 -800009c0: 0ad76263 bltu a4,a3,80000a64 -800009c4: 00050793 mv a5,a0 -800009c8: 00052503 lw a0,0(a0) -800009cc: fe010113 addi sp,sp,-32 -800009d0: 0047a683 lw a3,4(a5) -800009d4: 00812c23 sw s0,24(sp) -800009d8: 00912a23 sw s1,20(sp) -800009dc: 01212823 sw s2,16(sp) -800009e0: 01312623 sw s3,12(sp) -800009e4: 00112e23 sw ra,28(sp) -800009e8: 16a1ae23 sw a0,380(gp) # 80004984 -800009ec: 18f1a223 sw a5,388(gp) # 8000498c -800009f0: 16b1a823 sw a1,368(gp) # 80004978 -800009f4: 18c1a023 sw a2,384(gp) # 80004988 -800009f8: 04d76a63 bltu a4,a3,80000a4c -800009fc: ce1ff0ef jal ra,800006dc -80000a00: d0dff0ef jal ra,8000070c -80000a04: 00050413 mv s0,a0 -80000a08: cfdff0ef jal ra,80000704 -80000a0c: 1841a583 lw a1,388(gp) # 8000498c -80000a10: 1701a783 lw a5,368(gp) # 80004978 -80000a14: 00050693 mv a3,a0 -80000a18: 1801a503 lw a0,384(gp) # 80004988 -80000a1c: 00040613 mv a2,s0 -80000a20: 00000713 li a4,0 -80000a24: 000780e7 jalr a5 -80000a28: cd5ff0ef jal ra,800006fc -80000a2c: 01812403 lw s0,24(sp) -80000a30: 01c12083 lw ra,28(sp) -80000a34: 01412483 lw s1,20(sp) -80000a38: 01012903 lw s2,16(sp) -80000a3c: 00c12983 lw s3,12(sp) -80000a40: 00153513 seqz a0,a0 -80000a44: 02010113 addi sp,sp,32 -80000a48: c95ff06f j 800006dc -80000a4c: 800015b7 lui a1,0x80001 -80000a50: 00068513 mv a0,a3 -80000a54: 8f858593 addi a1,a1,-1800 # 800008f8 <__BSS_END__+0xffffbf60> -80000a58: c7dff0ef jal ra,800006d4 -80000a5c: 17c1a503 lw a0,380(gp) # 80004984 -80000a60: f9dff06f j 800009fc -80000a64: 80004537 lui a0,0x80004 -80000a68: dcc50513 addi a0,a0,-564 # 80003dcc <__BSS_END__+0xfffff434> -80000a6c: 2ec0006f j 80000d58 +8000098c : +8000098c: ff010113 addi sp,sp,-16 +80000990: 00000593 li a1,0 +80000994: 00812423 sw s0,8(sp) +80000998: 00112623 sw ra,12(sp) +8000099c: 00050413 mv s0,a0 +800009a0: 288000ef jal ra,80000c28 <__call_exitprocs> +800009a4: cc01a503 lw a0,-832(gp) # 800014c8 <_global_impure_ptr> +800009a8: 03c52783 lw a5,60(a0) +800009ac: 00078463 beqz a5,800009b4 +800009b0: 000780e7 jalr a5 +800009b4: 00040513 mv a0,s0 +800009b8: cd5ff0ef jal ra,8000068c <_exit> -80000a70 : -80000a70: 00050593 mv a1,a0 -80000a74: 00000693 li a3,0 -80000a78: 00000613 li a2,0 -80000a7c: 00000513 li a0,0 -80000a80: 3700006f j 80000df0 <__register_exitproc> +800009bc <__libc_fini_array>: +800009bc: ff010113 addi sp,sp,-16 +800009c0: 00812423 sw s0,8(sp) +800009c4: 800017b7 lui a5,0x80001 +800009c8: 80001437 lui s0,0x80001 +800009cc: 00440413 addi s0,s0,4 # 80001004 <__global_pointer$+0xfffff7fc> +800009d0: 00478793 addi a5,a5,4 # 80001004 <__global_pointer$+0xfffff7fc> +800009d4: 408787b3 sub a5,a5,s0 +800009d8: 00912223 sw s1,4(sp) +800009dc: 00112623 sw ra,12(sp) +800009e0: 4027d493 srai s1,a5,0x2 +800009e4: 02048063 beqz s1,80000a04 <__libc_fini_array+0x48> +800009e8: ffc78793 addi a5,a5,-4 +800009ec: 00878433 add s0,a5,s0 +800009f0: 00042783 lw a5,0(s0) +800009f4: fff48493 addi s1,s1,-1 +800009f8: ffc40413 addi s0,s0,-4 +800009fc: 000780e7 jalr a5 +80000a00: fe0498e3 bnez s1,800009f0 <__libc_fini_array+0x34> +80000a04: 00c12083 lw ra,12(sp) +80000a08: 00812403 lw s0,8(sp) +80000a0c: 00412483 lw s1,4(sp) +80000a10: 01010113 addi sp,sp,16 +80000a14: 00008067 ret -80000a84 : -80000a84: ff010113 addi sp,sp,-16 -80000a88: 00000593 li a1,0 -80000a8c: 00812423 sw s0,8(sp) -80000a90: 00112623 sw ra,12(sp) -80000a94: 00050413 mv s0,a0 -80000a98: 3f0000ef jal ra,80000e88 <__call_exitprocs> -80000a9c: 0c81a503 lw a0,200(gp) # 800048d0 <_global_impure_ptr> -80000aa0: 03c52783 lw a5,60(a0) -80000aa4: 00078463 beqz a5,80000aac -80000aa8: 000780e7 jalr a5 -80000aac: 00040513 mv a0,s0 -80000ab0: bddff0ef jal ra,8000068c <_exit> +80000a18 <__libc_init_array>: +80000a18: ff010113 addi sp,sp,-16 +80000a1c: 00812423 sw s0,8(sp) +80000a20: 01212023 sw s2,0(sp) +80000a24: 80001437 lui s0,0x80001 +80000a28: 80001937 lui s2,0x80001 +80000a2c: 00040793 mv a5,s0 +80000a30: 00090913 mv s2,s2 +80000a34: 40f90933 sub s2,s2,a5 +80000a38: 00112623 sw ra,12(sp) +80000a3c: 00912223 sw s1,4(sp) +80000a40: 40295913 srai s2,s2,0x2 +80000a44: 02090063 beqz s2,80000a64 <__libc_init_array+0x4c> +80000a48: 00040413 mv s0,s0 +80000a4c: 00000493 li s1,0 +80000a50: 00042783 lw a5,0(s0) # 80001000 <__global_pointer$+0xfffff7f8> +80000a54: 00148493 addi s1,s1,1 +80000a58: 00440413 addi s0,s0,4 +80000a5c: 000780e7 jalr a5 +80000a60: fe9918e3 bne s2,s1,80000a50 <__libc_init_array+0x38> +80000a64: 80001437 lui s0,0x80001 +80000a68: 80001937 lui s2,0x80001 +80000a6c: 00040793 mv a5,s0 +80000a70: 00490913 addi s2,s2,4 # 80001004 <__global_pointer$+0xfffff7fc> +80000a74: 40f90933 sub s2,s2,a5 +80000a78: 40295913 srai s2,s2,0x2 +80000a7c: 02090063 beqz s2,80000a9c <__libc_init_array+0x84> +80000a80: 00040413 mv s0,s0 +80000a84: 00000493 li s1,0 +80000a88: 00042783 lw a5,0(s0) # 80001000 <__global_pointer$+0xfffff7f8> +80000a8c: 00148493 addi s1,s1,1 +80000a90: 00440413 addi s0,s0,4 +80000a94: 000780e7 jalr a5 +80000a98: fe9918e3 bne s2,s1,80000a88 <__libc_init_array+0x70> +80000a9c: 00c12083 lw ra,12(sp) +80000aa0: 00812403 lw s0,8(sp) +80000aa4: 00412483 lw s1,4(sp) +80000aa8: 00012903 lw s2,0(sp) +80000aac: 01010113 addi sp,sp,16 +80000ab0: 00008067 ret -80000ab4 <__libc_fini_array>: -80000ab4: ff010113 addi sp,sp,-16 -80000ab8: 00812423 sw s0,8(sp) -80000abc: 800047b7 lui a5,0x80004 -80000ac0: 80004437 lui s0,0x80004 -80000ac4: 00440413 addi s0,s0,4 # 80004004 <__BSS_END__+0xfffff66c> -80000ac8: 00478793 addi a5,a5,4 # 80004004 <__BSS_END__+0xfffff66c> -80000acc: 408787b3 sub a5,a5,s0 -80000ad0: 00912223 sw s1,4(sp) -80000ad4: 00112623 sw ra,12(sp) -80000ad8: 4027d493 srai s1,a5,0x2 -80000adc: 02048063 beqz s1,80000afc <__libc_fini_array+0x48> -80000ae0: ffc78793 addi a5,a5,-4 -80000ae4: 00878433 add s0,a5,s0 -80000ae8: 00042783 lw a5,0(s0) -80000aec: fff48493 addi s1,s1,-1 -80000af0: ffc40413 addi s0,s0,-4 -80000af4: 000780e7 jalr a5 -80000af8: fe0498e3 bnez s1,80000ae8 <__libc_fini_array+0x34> -80000afc: 00c12083 lw ra,12(sp) -80000b00: 00812403 lw s0,8(sp) -80000b04: 00412483 lw s1,4(sp) -80000b08: 01010113 addi sp,sp,16 -80000b0c: 00008067 ret +80000ab4 : +80000ab4: 00f00313 li t1,15 +80000ab8: 00050713 mv a4,a0 +80000abc: 02c37e63 bgeu t1,a2,80000af8 +80000ac0: 00f77793 andi a5,a4,15 +80000ac4: 0a079063 bnez a5,80000b64 +80000ac8: 08059263 bnez a1,80000b4c +80000acc: ff067693 andi a3,a2,-16 +80000ad0: 00f67613 andi a2,a2,15 +80000ad4: 00e686b3 add a3,a3,a4 +80000ad8: 00b72023 sw a1,0(a4) +80000adc: 00b72223 sw a1,4(a4) +80000ae0: 00b72423 sw a1,8(a4) +80000ae4: 00b72623 sw a1,12(a4) +80000ae8: 01070713 addi a4,a4,16 +80000aec: fed766e3 bltu a4,a3,80000ad8 +80000af0: 00061463 bnez a2,80000af8 +80000af4: 00008067 ret +80000af8: 40c306b3 sub a3,t1,a2 +80000afc: 00269693 slli a3,a3,0x2 +80000b00: 00000297 auipc t0,0x0 +80000b04: 005686b3 add a3,a3,t0 +80000b08: 00c68067 jr 12(a3) +80000b0c: 00b70723 sb a1,14(a4) +80000b10: 00b706a3 sb a1,13(a4) +80000b14: 00b70623 sb a1,12(a4) +80000b18: 00b705a3 sb a1,11(a4) +80000b1c: 00b70523 sb a1,10(a4) +80000b20: 00b704a3 sb a1,9(a4) +80000b24: 00b70423 sb a1,8(a4) +80000b28: 00b703a3 sb a1,7(a4) +80000b2c: 00b70323 sb a1,6(a4) +80000b30: 00b702a3 sb a1,5(a4) +80000b34: 00b70223 sb a1,4(a4) +80000b38: 00b701a3 sb a1,3(a4) +80000b3c: 00b70123 sb a1,2(a4) +80000b40: 00b700a3 sb a1,1(a4) +80000b44: 00b70023 sb a1,0(a4) +80000b48: 00008067 ret +80000b4c: 0ff5f593 andi a1,a1,255 +80000b50: 00859693 slli a3,a1,0x8 +80000b54: 00d5e5b3 or a1,a1,a3 +80000b58: 01059693 slli a3,a1,0x10 +80000b5c: 00d5e5b3 or a1,a1,a3 +80000b60: f6dff06f j 80000acc +80000b64: 00279693 slli a3,a5,0x2 +80000b68: 00000297 auipc t0,0x0 +80000b6c: 005686b3 add a3,a3,t0 +80000b70: 00008293 mv t0,ra +80000b74: fa0680e7 jalr -96(a3) +80000b78: 00028093 mv ra,t0 +80000b7c: ff078793 addi a5,a5,-16 +80000b80: 40f70733 sub a4,a4,a5 +80000b84: 00f60633 add a2,a2,a5 +80000b88: f6c378e3 bgeu t1,a2,80000af8 +80000b8c: f3dff06f j 80000ac8 -80000b10 <__libc_init_array>: -80000b10: ff010113 addi sp,sp,-16 -80000b14: 00812423 sw s0,8(sp) -80000b18: 01212023 sw s2,0(sp) -80000b1c: 80004437 lui s0,0x80004 -80000b20: 80004937 lui s2,0x80004 -80000b24: 00040793 mv a5,s0 -80000b28: 00090913 mv s2,s2 -80000b2c: 40f90933 sub s2,s2,a5 -80000b30: 00112623 sw ra,12(sp) -80000b34: 00912223 sw s1,4(sp) -80000b38: 40295913 srai s2,s2,0x2 -80000b3c: 02090063 beqz s2,80000b5c <__libc_init_array+0x4c> -80000b40: 00040413 mv s0,s0 -80000b44: 00000493 li s1,0 -80000b48: 00042783 lw a5,0(s0) # 80004000 <__BSS_END__+0xfffff668> -80000b4c: 00148493 addi s1,s1,1 -80000b50: 00440413 addi s0,s0,4 -80000b54: 000780e7 jalr a5 -80000b58: fe9918e3 bne s2,s1,80000b48 <__libc_init_array+0x38> -80000b5c: 80004437 lui s0,0x80004 -80000b60: 80004937 lui s2,0x80004 -80000b64: 00040793 mv a5,s0 -80000b68: 00490913 addi s2,s2,4 # 80004004 <__BSS_END__+0xfffff66c> -80000b6c: 40f90933 sub s2,s2,a5 -80000b70: 40295913 srai s2,s2,0x2 -80000b74: 02090063 beqz s2,80000b94 <__libc_init_array+0x84> -80000b78: 00040413 mv s0,s0 -80000b7c: 00000493 li s1,0 -80000b80: 00042783 lw a5,0(s0) # 80004000 <__BSS_END__+0xfffff668> -80000b84: 00148493 addi s1,s1,1 -80000b88: 00440413 addi s0,s0,4 -80000b8c: 000780e7 jalr a5 -80000b90: fe9918e3 bne s2,s1,80000b80 <__libc_init_array+0x70> -80000b94: 00c12083 lw ra,12(sp) -80000b98: 00812403 lw s0,8(sp) -80000b9c: 00412483 lw s1,4(sp) -80000ba0: 00012903 lw s2,0(sp) -80000ba4: 01010113 addi sp,sp,16 -80000ba8: 00008067 ret - -80000bac : -80000bac: 00f00313 li t1,15 -80000bb0: 00050713 mv a4,a0 -80000bb4: 02c37e63 bgeu t1,a2,80000bf0 -80000bb8: 00f77793 andi a5,a4,15 -80000bbc: 0a079063 bnez a5,80000c5c -80000bc0: 08059263 bnez a1,80000c44 -80000bc4: ff067693 andi a3,a2,-16 -80000bc8: 00f67613 andi a2,a2,15 -80000bcc: 00e686b3 add a3,a3,a4 -80000bd0: 00b72023 sw a1,0(a4) -80000bd4: 00b72223 sw a1,4(a4) -80000bd8: 00b72423 sw a1,8(a4) -80000bdc: 00b72623 sw a1,12(a4) -80000be0: 01070713 addi a4,a4,16 -80000be4: fed766e3 bltu a4,a3,80000bd0 -80000be8: 00061463 bnez a2,80000bf0 +80000b90 <__register_exitproc>: +80000b90: cc01a703 lw a4,-832(gp) # 800014c8 <_global_impure_ptr> +80000b94: 14872783 lw a5,328(a4) +80000b98: 04078c63 beqz a5,80000bf0 <__register_exitproc+0x60> +80000b9c: 0047a703 lw a4,4(a5) +80000ba0: 01f00813 li a6,31 +80000ba4: 06e84e63 blt a6,a4,80000c20 <__register_exitproc+0x90> +80000ba8: 00271813 slli a6,a4,0x2 +80000bac: 02050663 beqz a0,80000bd8 <__register_exitproc+0x48> +80000bb0: 01078333 add t1,a5,a6 +80000bb4: 08c32423 sw a2,136(t1) +80000bb8: 1887a883 lw a7,392(a5) +80000bbc: 00100613 li a2,1 +80000bc0: 00e61633 sll a2,a2,a4 +80000bc4: 00c8e8b3 or a7,a7,a2 +80000bc8: 1917a423 sw a7,392(a5) +80000bcc: 10d32423 sw a3,264(t1) +80000bd0: 00200693 li a3,2 +80000bd4: 02d50463 beq a0,a3,80000bfc <__register_exitproc+0x6c> +80000bd8: 00170713 addi a4,a4,1 +80000bdc: 00e7a223 sw a4,4(a5) +80000be0: 010787b3 add a5,a5,a6 +80000be4: 00b7a423 sw a1,8(a5) +80000be8: 00000513 li a0,0 80000bec: 00008067 ret -80000bf0: 40c306b3 sub a3,t1,a2 -80000bf4: 00269693 slli a3,a3,0x2 -80000bf8: 00000297 auipc t0,0x0 -80000bfc: 005686b3 add a3,a3,t0 -80000c00: 00c68067 jr 12(a3) -80000c04: 00b70723 sb a1,14(a4) -80000c08: 00b706a3 sb a1,13(a4) -80000c0c: 00b70623 sb a1,12(a4) -80000c10: 00b705a3 sb a1,11(a4) -80000c14: 00b70523 sb a1,10(a4) -80000c18: 00b704a3 sb a1,9(a4) -80000c1c: 00b70423 sb a1,8(a4) -80000c20: 00b703a3 sb a1,7(a4) -80000c24: 00b70323 sb a1,6(a4) -80000c28: 00b702a3 sb a1,5(a4) -80000c2c: 00b70223 sb a1,4(a4) -80000c30: 00b701a3 sb a1,3(a4) -80000c34: 00b70123 sb a1,2(a4) -80000c38: 00b700a3 sb a1,1(a4) -80000c3c: 00b70023 sb a1,0(a4) -80000c40: 00008067 ret -80000c44: 0ff5f593 andi a1,a1,255 -80000c48: 00859693 slli a3,a1,0x8 -80000c4c: 00d5e5b3 or a1,a1,a3 -80000c50: 01059693 slli a3,a1,0x10 -80000c54: 00d5e5b3 or a1,a1,a3 -80000c58: f6dff06f j 80000bc4 -80000c5c: 00279693 slli a3,a5,0x2 -80000c60: 00000297 auipc t0,0x0 -80000c64: 005686b3 add a3,a3,t0 -80000c68: 00008293 mv t0,ra -80000c6c: fa0680e7 jalr -96(a3) -80000c70: 00028093 mv ra,t0 -80000c74: ff078793 addi a5,a5,-16 -80000c78: 40f70733 sub a4,a4,a5 -80000c7c: 00f60633 add a2,a2,a5 -80000c80: f6c378e3 bgeu t1,a2,80000bf0 -80000c84: f3dff06f j 80000bc0 +80000bf0: 14c70793 addi a5,a4,332 +80000bf4: 14f72423 sw a5,328(a4) +80000bf8: fa5ff06f j 80000b9c <__register_exitproc+0xc> +80000bfc: 18c7a683 lw a3,396(a5) +80000c00: 00170713 addi a4,a4,1 +80000c04: 00e7a223 sw a4,4(a5) +80000c08: 00c6e633 or a2,a3,a2 +80000c0c: 18c7a623 sw a2,396(a5) +80000c10: 010787b3 add a5,a5,a6 +80000c14: 00b7a423 sw a1,8(a5) +80000c18: 00000513 li a0,0 +80000c1c: 00008067 ret +80000c20: fff00513 li a0,-1 +80000c24: 00008067 ret -80000c88 <_puts_r>: -80000c88: fc010113 addi sp,sp,-64 -80000c8c: 02812c23 sw s0,56(sp) -80000c90: 00050413 mv s0,a0 -80000c94: 00058513 mv a0,a1 -80000c98: 02912a23 sw s1,52(sp) -80000c9c: 02112e23 sw ra,60(sp) -80000ca0: 00058493 mv s1,a1 -80000ca4: 0c0000ef jal ra,80000d64 -80000ca8: 800047b7 lui a5,0x80004 -80000cac: c1078793 addi a5,a5,-1008 # 80003c10 <__BSS_END__+0xfffff278> -80000cb0: 02f12423 sw a5,40(sp) -80000cb4: 00100793 li a5,1 -80000cb8: 02f12623 sw a5,44(sp) -80000cbc: 03842703 lw a4,56(s0) -80000cc0: 02010793 addi a5,sp,32 -80000cc4: 00150693 addi a3,a0,1 -80000cc8: 00f12a23 sw a5,20(sp) -80000ccc: 00200793 li a5,2 -80000cd0: 02912023 sw s1,32(sp) -80000cd4: 02a12223 sw a0,36(sp) -80000cd8: 00d12e23 sw a3,28(sp) -80000cdc: 00f12c23 sw a5,24(sp) -80000ce0: 00842583 lw a1,8(s0) -80000ce4: 06070063 beqz a4,80000d44 <_puts_r+0xbc> -80000ce8: 00c59783 lh a5,12(a1) -80000cec: 01279713 slli a4,a5,0x12 -80000cf0: 02074263 bltz a4,80000d14 <_puts_r+0x8c> -80000cf4: 0645a703 lw a4,100(a1) -80000cf8: 000026b7 lui a3,0x2 -80000cfc: 00d7e7b3 or a5,a5,a3 -80000d00: ffffe6b7 lui a3,0xffffe -80000d04: fff68693 addi a3,a3,-1 # ffffdfff <__BSS_END__+0x7fff9667> -80000d08: 00d77733 and a4,a4,a3 -80000d0c: 00f59623 sh a5,12(a1) -80000d10: 06e5a223 sw a4,100(a1) -80000d14: 01410613 addi a2,sp,20 -80000d18: 00040513 mv a0,s0 -80000d1c: 5e8000ef jal ra,80001304 <__sfvwrite_r> -80000d20: 03c12083 lw ra,60(sp) -80000d24: 03812403 lw s0,56(sp) -80000d28: 00a03533 snez a0,a0 -80000d2c: 40a00533 neg a0,a0 -80000d30: ff557513 andi a0,a0,-11 -80000d34: 03412483 lw s1,52(sp) -80000d38: 00a50513 addi a0,a0,10 -80000d3c: 04010113 addi sp,sp,64 -80000d40: 00008067 ret -80000d44: 00040513 mv a0,s0 -80000d48: 00b12623 sw a1,12(sp) -80000d4c: 578000ef jal ra,800012c4 <__sinit> -80000d50: 00c12583 lw a1,12(sp) -80000d54: f95ff06f j 80000ce8 <_puts_r+0x60> - -80000d58 : -80000d58: 00050593 mv a1,a0 -80000d5c: 0cc1a503 lw a0,204(gp) # 800048d4 <_impure_ptr> -80000d60: f29ff06f j 80000c88 <_puts_r> - -80000d64 : -80000d64: 00357793 andi a5,a0,3 -80000d68: 00050713 mv a4,a0 -80000d6c: 04079c63 bnez a5,80000dc4 -80000d70: 7f7f86b7 lui a3,0x7f7f8 -80000d74: f7f68693 addi a3,a3,-129 # 7f7f7f7f <_start-0x808081> -80000d78: fff00593 li a1,-1 -80000d7c: 00072603 lw a2,0(a4) -80000d80: 00470713 addi a4,a4,4 -80000d84: 00d677b3 and a5,a2,a3 -80000d88: 00d787b3 add a5,a5,a3 -80000d8c: 00c7e7b3 or a5,a5,a2 -80000d90: 00d7e7b3 or a5,a5,a3 -80000d94: feb784e3 beq a5,a1,80000d7c -80000d98: ffc74683 lbu a3,-4(a4) -80000d9c: ffd74603 lbu a2,-3(a4) -80000da0: ffe74783 lbu a5,-2(a4) -80000da4: 40a70733 sub a4,a4,a0 -80000da8: 04068063 beqz a3,80000de8 -80000dac: 02060a63 beqz a2,80000de0 -80000db0: 00f03533 snez a0,a5 -80000db4: 00e50533 add a0,a0,a4 -80000db8: ffe50513 addi a0,a0,-2 -80000dbc: 00008067 ret -80000dc0: fa0688e3 beqz a3,80000d70 -80000dc4: 00074783 lbu a5,0(a4) -80000dc8: 00170713 addi a4,a4,1 -80000dcc: 00377693 andi a3,a4,3 -80000dd0: fe0798e3 bnez a5,80000dc0 -80000dd4: 40a70733 sub a4,a4,a0 -80000dd8: fff70513 addi a0,a4,-1 -80000ddc: 00008067 ret -80000de0: ffd70513 addi a0,a4,-3 -80000de4: 00008067 ret -80000de8: ffc70513 addi a0,a4,-4 -80000dec: 00008067 ret - -80000df0 <__register_exitproc>: -80000df0: 0c81a703 lw a4,200(gp) # 800048d0 <_global_impure_ptr> -80000df4: 14872783 lw a5,328(a4) -80000df8: 04078c63 beqz a5,80000e50 <__register_exitproc+0x60> -80000dfc: 0047a703 lw a4,4(a5) -80000e00: 01f00813 li a6,31 -80000e04: 06e84e63 blt a6,a4,80000e80 <__register_exitproc+0x90> -80000e08: 00271813 slli a6,a4,0x2 -80000e0c: 02050663 beqz a0,80000e38 <__register_exitproc+0x48> -80000e10: 01078333 add t1,a5,a6 -80000e14: 08c32423 sw a2,136(t1) -80000e18: 1887a883 lw a7,392(a5) -80000e1c: 00100613 li a2,1 -80000e20: 00e61633 sll a2,a2,a4 -80000e24: 00c8e8b3 or a7,a7,a2 -80000e28: 1917a423 sw a7,392(a5) -80000e2c: 10d32423 sw a3,264(t1) -80000e30: 00200693 li a3,2 -80000e34: 02d50463 beq a0,a3,80000e5c <__register_exitproc+0x6c> -80000e38: 00170713 addi a4,a4,1 -80000e3c: 00e7a223 sw a4,4(a5) -80000e40: 010787b3 add a5,a5,a6 -80000e44: 00b7a423 sw a1,8(a5) -80000e48: 00000513 li a0,0 -80000e4c: 00008067 ret -80000e50: 14c70793 addi a5,a4,332 -80000e54: 14f72423 sw a5,328(a4) -80000e58: fa5ff06f j 80000dfc <__register_exitproc+0xc> -80000e5c: 18c7a683 lw a3,396(a5) -80000e60: 00170713 addi a4,a4,1 -80000e64: 00e7a223 sw a4,4(a5) -80000e68: 00c6e633 or a2,a3,a2 -80000e6c: 18c7a623 sw a2,396(a5) -80000e70: 010787b3 add a5,a5,a6 -80000e74: 00b7a423 sw a1,8(a5) -80000e78: 00000513 li a0,0 -80000e7c: 00008067 ret -80000e80: fff00513 li a0,-1 -80000e84: 00008067 ret - -80000e88 <__call_exitprocs>: -80000e88: fd010113 addi sp,sp,-48 -80000e8c: 01412c23 sw s4,24(sp) -80000e90: 0c81aa03 lw s4,200(gp) # 800048d0 <_global_impure_ptr> -80000e94: 03212023 sw s2,32(sp) -80000e98: 02112623 sw ra,44(sp) -80000e9c: 148a2903 lw s2,328(s4) -80000ea0: 02812423 sw s0,40(sp) -80000ea4: 02912223 sw s1,36(sp) -80000ea8: 01312e23 sw s3,28(sp) -80000eac: 01512a23 sw s5,20(sp) -80000eb0: 01612823 sw s6,16(sp) -80000eb4: 01712623 sw s7,12(sp) -80000eb8: 01812423 sw s8,8(sp) -80000ebc: 04090063 beqz s2,80000efc <__call_exitprocs+0x74> -80000ec0: 00050b13 mv s6,a0 -80000ec4: 00058b93 mv s7,a1 -80000ec8: 00100a93 li s5,1 -80000ecc: fff00993 li s3,-1 -80000ed0: 00492483 lw s1,4(s2) -80000ed4: fff48413 addi s0,s1,-1 -80000ed8: 02044263 bltz s0,80000efc <__call_exitprocs+0x74> -80000edc: 00249493 slli s1,s1,0x2 -80000ee0: 009904b3 add s1,s2,s1 -80000ee4: 040b8463 beqz s7,80000f2c <__call_exitprocs+0xa4> -80000ee8: 1044a783 lw a5,260(s1) -80000eec: 05778063 beq a5,s7,80000f2c <__call_exitprocs+0xa4> -80000ef0: fff40413 addi s0,s0,-1 -80000ef4: ffc48493 addi s1,s1,-4 -80000ef8: ff3416e3 bne s0,s3,80000ee4 <__call_exitprocs+0x5c> -80000efc: 02c12083 lw ra,44(sp) -80000f00: 02812403 lw s0,40(sp) -80000f04: 02412483 lw s1,36(sp) -80000f08: 02012903 lw s2,32(sp) -80000f0c: 01c12983 lw s3,28(sp) -80000f10: 01812a03 lw s4,24(sp) -80000f14: 01412a83 lw s5,20(sp) -80000f18: 01012b03 lw s6,16(sp) -80000f1c: 00c12b83 lw s7,12(sp) -80000f20: 00812c03 lw s8,8(sp) -80000f24: 03010113 addi sp,sp,48 -80000f28: 00008067 ret -80000f2c: 00492783 lw a5,4(s2) -80000f30: 0044a683 lw a3,4(s1) -80000f34: fff78793 addi a5,a5,-1 -80000f38: 04878e63 beq a5,s0,80000f94 <__call_exitprocs+0x10c> -80000f3c: 0004a223 sw zero,4(s1) -80000f40: fa0688e3 beqz a3,80000ef0 <__call_exitprocs+0x68> -80000f44: 18892783 lw a5,392(s2) -80000f48: 008a9733 sll a4,s5,s0 -80000f4c: 00492c03 lw s8,4(s2) -80000f50: 00f777b3 and a5,a4,a5 -80000f54: 02079263 bnez a5,80000f78 <__call_exitprocs+0xf0> -80000f58: 000680e7 jalr a3 -80000f5c: 00492703 lw a4,4(s2) -80000f60: 148a2783 lw a5,328(s4) -80000f64: 01871463 bne a4,s8,80000f6c <__call_exitprocs+0xe4> -80000f68: f8f904e3 beq s2,a5,80000ef0 <__call_exitprocs+0x68> -80000f6c: f80788e3 beqz a5,80000efc <__call_exitprocs+0x74> -80000f70: 00078913 mv s2,a5 -80000f74: f5dff06f j 80000ed0 <__call_exitprocs+0x48> -80000f78: 18c92783 lw a5,396(s2) -80000f7c: 0844a583 lw a1,132(s1) -80000f80: 00f77733 and a4,a4,a5 -80000f84: 00071c63 bnez a4,80000f9c <__call_exitprocs+0x114> -80000f88: 000b0513 mv a0,s6 -80000f8c: 000680e7 jalr a3 -80000f90: fcdff06f j 80000f5c <__call_exitprocs+0xd4> -80000f94: 00892223 sw s0,4(s2) -80000f98: fa9ff06f j 80000f40 <__call_exitprocs+0xb8> -80000f9c: 00058513 mv a0,a1 -80000fa0: 000680e7 jalr a3 -80000fa4: fb9ff06f j 80000f5c <__call_exitprocs+0xd4> - -80000fa8 <__fp_lock>: -80000fa8: 00000513 li a0,0 -80000fac: 00008067 ret - -80000fb0 <_cleanup_r>: -80000fb0: 800035b7 lui a1,0x80003 -80000fb4: d0058593 addi a1,a1,-768 # 80002d00 <__BSS_END__+0xffffe368> -80000fb8: 0990006f j 80001850 <_fwalk_reent> - -80000fbc <__sinit.part.0>: -80000fbc: fe010113 addi sp,sp,-32 -80000fc0: 800017b7 lui a5,0x80001 -80000fc4: 00112e23 sw ra,28(sp) -80000fc8: 00812c23 sw s0,24(sp) -80000fcc: 00912a23 sw s1,20(sp) -80000fd0: 01212823 sw s2,16(sp) -80000fd4: 01312623 sw s3,12(sp) -80000fd8: 01412423 sw s4,8(sp) -80000fdc: 01512223 sw s5,4(sp) -80000fe0: 01612023 sw s6,0(sp) -80000fe4: 00452403 lw s0,4(a0) -80000fe8: fb078793 addi a5,a5,-80 # 80000fb0 <__BSS_END__+0xffffc618> -80000fec: 02f52e23 sw a5,60(a0) -80000ff0: 2ec50713 addi a4,a0,748 -80000ff4: 00300793 li a5,3 -80000ff8: 2ee52423 sw a4,744(a0) -80000ffc: 2ef52223 sw a5,740(a0) -80001000: 2e052023 sw zero,736(a0) -80001004: 00400793 li a5,4 -80001008: 00050913 mv s2,a0 -8000100c: 00f42623 sw a5,12(s0) -80001010: 00800613 li a2,8 -80001014: 00000593 li a1,0 -80001018: 06042223 sw zero,100(s0) -8000101c: 00042023 sw zero,0(s0) -80001020: 00042223 sw zero,4(s0) -80001024: 00042423 sw zero,8(s0) -80001028: 00042823 sw zero,16(s0) -8000102c: 00042a23 sw zero,20(s0) -80001030: 00042c23 sw zero,24(s0) -80001034: 05c40513 addi a0,s0,92 -80001038: b75ff0ef jal ra,80000bac -8000103c: 80003b37 lui s6,0x80003 -80001040: 00892483 lw s1,8(s2) -80001044: 80003ab7 lui s5,0x80003 -80001048: 80003a37 lui s4,0x80003 -8000104c: 800039b7 lui s3,0x80003 -80001050: 984b0b13 addi s6,s6,-1660 # 80002984 <__BSS_END__+0xffffdfec> -80001054: 9e8a8a93 addi s5,s5,-1560 # 800029e8 <__BSS_END__+0xffffe050> -80001058: a70a0a13 addi s4,s4,-1424 # 80002a70 <__BSS_END__+0xffffe0d8> -8000105c: ad898993 addi s3,s3,-1320 # 80002ad8 <__BSS_END__+0xffffe140> -80001060: 000107b7 lui a5,0x10 -80001064: 03642023 sw s6,32(s0) -80001068: 03542223 sw s5,36(s0) -8000106c: 03442423 sw s4,40(s0) -80001070: 03342623 sw s3,44(s0) -80001074: 00842e23 sw s0,28(s0) -80001078: 00978793 addi a5,a5,9 # 10009 <_start-0x7ffefff7> -8000107c: 00f4a623 sw a5,12(s1) -80001080: 00800613 li a2,8 -80001084: 00000593 li a1,0 -80001088: 0604a223 sw zero,100(s1) -8000108c: 0004a023 sw zero,0(s1) -80001090: 0004a223 sw zero,4(s1) -80001094: 0004a423 sw zero,8(s1) -80001098: 0004a823 sw zero,16(s1) -8000109c: 0004aa23 sw zero,20(s1) -800010a0: 0004ac23 sw zero,24(s1) -800010a4: 05c48513 addi a0,s1,92 -800010a8: b05ff0ef jal ra,80000bac -800010ac: 00c92403 lw s0,12(s2) -800010b0: 000207b7 lui a5,0x20 -800010b4: 0364a023 sw s6,32(s1) -800010b8: 0354a223 sw s5,36(s1) -800010bc: 0344a423 sw s4,40(s1) -800010c0: 0334a623 sw s3,44(s1) -800010c4: 0094ae23 sw s1,28(s1) -800010c8: 01278793 addi a5,a5,18 # 20012 <_start-0x7ffdffee> -800010cc: 00f42623 sw a5,12(s0) -800010d0: 06042223 sw zero,100(s0) -800010d4: 00042023 sw zero,0(s0) -800010d8: 00042223 sw zero,4(s0) -800010dc: 00042423 sw zero,8(s0) -800010e0: 00042823 sw zero,16(s0) -800010e4: 00042a23 sw zero,20(s0) -800010e8: 00042c23 sw zero,24(s0) -800010ec: 05c40513 addi a0,s0,92 -800010f0: 00800613 li a2,8 -800010f4: 00000593 li a1,0 -800010f8: ab5ff0ef jal ra,80000bac -800010fc: 01c12083 lw ra,28(sp) -80001100: 03642023 sw s6,32(s0) -80001104: 03542223 sw s5,36(s0) -80001108: 03442423 sw s4,40(s0) -8000110c: 03342623 sw s3,44(s0) -80001110: 00842e23 sw s0,28(s0) -80001114: 01812403 lw s0,24(sp) -80001118: 00100793 li a5,1 -8000111c: 02f92c23 sw a5,56(s2) -80001120: 01412483 lw s1,20(sp) -80001124: 01012903 lw s2,16(sp) -80001128: 00c12983 lw s3,12(sp) -8000112c: 00812a03 lw s4,8(sp) -80001130: 00412a83 lw s5,4(sp) -80001134: 00012b03 lw s6,0(sp) -80001138: 02010113 addi sp,sp,32 -8000113c: 00008067 ret - -80001140 <__fp_unlock>: -80001140: 00000513 li a0,0 -80001144: 00008067 ret - -80001148 <__sfmoreglue>: -80001148: ff010113 addi sp,sp,-16 -8000114c: 00912223 sw s1,4(sp) -80001150: 06800613 li a2,104 -80001154: fff58493 addi s1,a1,-1 -80001158: 02c484b3 mul s1,s1,a2 -8000115c: 01212023 sw s2,0(sp) -80001160: 00058913 mv s2,a1 -80001164: 00812423 sw s0,8(sp) -80001168: 00112623 sw ra,12(sp) -8000116c: 07448593 addi a1,s1,116 -80001170: 794000ef jal ra,80001904 <_malloc_r> -80001174: 00050413 mv s0,a0 -80001178: 02050063 beqz a0,80001198 <__sfmoreglue+0x50> -8000117c: 00c50513 addi a0,a0,12 -80001180: 00042023 sw zero,0(s0) -80001184: 01242223 sw s2,4(s0) -80001188: 00a42423 sw a0,8(s0) -8000118c: 06848613 addi a2,s1,104 -80001190: 00000593 li a1,0 -80001194: a19ff0ef jal ra,80000bac -80001198: 00c12083 lw ra,12(sp) -8000119c: 00040513 mv a0,s0 -800011a0: 00812403 lw s0,8(sp) -800011a4: 00412483 lw s1,4(sp) -800011a8: 00012903 lw s2,0(sp) -800011ac: 01010113 addi sp,sp,16 -800011b0: 00008067 ret - -800011b4 <__sfp>: -800011b4: fe010113 addi sp,sp,-32 -800011b8: 01212823 sw s2,16(sp) -800011bc: 0c81a903 lw s2,200(gp) # 800048d0 <_global_impure_ptr> -800011c0: 01312623 sw s3,12(sp) -800011c4: 00112e23 sw ra,28(sp) -800011c8: 03892783 lw a5,56(s2) -800011cc: 00812c23 sw s0,24(sp) -800011d0: 00912a23 sw s1,20(sp) -800011d4: 00050993 mv s3,a0 -800011d8: 0a078663 beqz a5,80001284 <__sfp+0xd0> -800011dc: 2e090913 addi s2,s2,736 -800011e0: fff00493 li s1,-1 -800011e4: 00492783 lw a5,4(s2) -800011e8: 00892403 lw s0,8(s2) -800011ec: fff78793 addi a5,a5,-1 -800011f0: 0007d863 bgez a5,80001200 <__sfp+0x4c> -800011f4: 0800006f j 80001274 <__sfp+0xc0> -800011f8: 06840413 addi s0,s0,104 -800011fc: 06978c63 beq a5,s1,80001274 <__sfp+0xc0> -80001200: 00c41703 lh a4,12(s0) -80001204: fff78793 addi a5,a5,-1 -80001208: fe0718e3 bnez a4,800011f8 <__sfp+0x44> -8000120c: ffff07b7 lui a5,0xffff0 -80001210: 00178793 addi a5,a5,1 # ffff0001 <__BSS_END__+0x7ffeb669> -80001214: 06042223 sw zero,100(s0) -80001218: 00042023 sw zero,0(s0) -8000121c: 00042223 sw zero,4(s0) -80001220: 00042423 sw zero,8(s0) -80001224: 00f42623 sw a5,12(s0) -80001228: 00042823 sw zero,16(s0) -8000122c: 00042a23 sw zero,20(s0) -80001230: 00042c23 sw zero,24(s0) -80001234: 00800613 li a2,8 -80001238: 00000593 li a1,0 -8000123c: 05c40513 addi a0,s0,92 -80001240: 96dff0ef jal ra,80000bac -80001244: 02042823 sw zero,48(s0) -80001248: 02042a23 sw zero,52(s0) -8000124c: 04042223 sw zero,68(s0) -80001250: 04042423 sw zero,72(s0) -80001254: 01c12083 lw ra,28(sp) -80001258: 00040513 mv a0,s0 -8000125c: 01812403 lw s0,24(sp) -80001260: 01412483 lw s1,20(sp) -80001264: 01012903 lw s2,16(sp) -80001268: 00c12983 lw s3,12(sp) -8000126c: 02010113 addi sp,sp,32 -80001270: 00008067 ret -80001274: 00092403 lw s0,0(s2) -80001278: 00040c63 beqz s0,80001290 <__sfp+0xdc> -8000127c: 00040913 mv s2,s0 -80001280: f65ff06f j 800011e4 <__sfp+0x30> -80001284: 00090513 mv a0,s2 -80001288: d35ff0ef jal ra,80000fbc <__sinit.part.0> -8000128c: f51ff06f j 800011dc <__sfp+0x28> -80001290: 00400593 li a1,4 -80001294: 00098513 mv a0,s3 -80001298: eb1ff0ef jal ra,80001148 <__sfmoreglue> -8000129c: 00a92023 sw a0,0(s2) -800012a0: 00050413 mv s0,a0 -800012a4: fc051ce3 bnez a0,8000127c <__sfp+0xc8> -800012a8: 00c00793 li a5,12 -800012ac: 00f9a023 sw a5,0(s3) -800012b0: fa5ff06f j 80001254 <__sfp+0xa0> - -800012b4 <_cleanup>: -800012b4: 0c81a503 lw a0,200(gp) # 800048d0 <_global_impure_ptr> -800012b8: 800035b7 lui a1,0x80003 -800012bc: d0058593 addi a1,a1,-768 # 80002d00 <__BSS_END__+0xffffe368> -800012c0: 5900006f j 80001850 <_fwalk_reent> - -800012c4 <__sinit>: -800012c4: 03852783 lw a5,56(a0) -800012c8: 00078463 beqz a5,800012d0 <__sinit+0xc> -800012cc: 00008067 ret -800012d0: cedff06f j 80000fbc <__sinit.part.0> - -800012d4 <__sfp_lock_acquire>: -800012d4: 00008067 ret - -800012d8 <__sfp_lock_release>: -800012d8: 00008067 ret - -800012dc <__sinit_lock_acquire>: -800012dc: 00008067 ret - -800012e0 <__sinit_lock_release>: -800012e0: 00008067 ret - -800012e4 <__fp_lock_all>: -800012e4: 0cc1a503 lw a0,204(gp) # 800048d4 <_impure_ptr> -800012e8: 800015b7 lui a1,0x80001 -800012ec: fa858593 addi a1,a1,-88 # 80000fa8 <__BSS_END__+0xffffc610> -800012f0: 4bc0006f j 800017ac <_fwalk> - -800012f4 <__fp_unlock_all>: -800012f4: 0cc1a503 lw a0,204(gp) # 800048d4 <_impure_ptr> -800012f8: 800015b7 lui a1,0x80001 -800012fc: 14058593 addi a1,a1,320 # 80001140 <__BSS_END__+0xffffc7a8> -80001300: 4ac0006f j 800017ac <_fwalk> - -80001304 <__sfvwrite_r>: -80001304: 00862783 lw a5,8(a2) -80001308: 32078e63 beqz a5,80001644 <__sfvwrite_r+0x340> -8000130c: 00c5d783 lhu a5,12(a1) -80001310: fd010113 addi sp,sp,-48 -80001314: 02812423 sw s0,40(sp) -80001318: 01412c23 sw s4,24(sp) -8000131c: 01512a23 sw s5,20(sp) -80001320: 02112623 sw ra,44(sp) -80001324: 02912223 sw s1,36(sp) -80001328: 03212023 sw s2,32(sp) -8000132c: 01312e23 sw s3,28(sp) -80001330: 01612823 sw s6,16(sp) -80001334: 01712623 sw s7,12(sp) -80001338: 01812423 sw s8,8(sp) -8000133c: 01912223 sw s9,4(sp) -80001340: 01a12023 sw s10,0(sp) -80001344: 0087f713 andi a4,a5,8 -80001348: 00060a13 mv s4,a2 -8000134c: 00050a93 mv s5,a0 -80001350: 00058413 mv s0,a1 -80001354: 08070663 beqz a4,800013e0 <__sfvwrite_r+0xdc> -80001358: 0105a703 lw a4,16(a1) -8000135c: 08070263 beqz a4,800013e0 <__sfvwrite_r+0xdc> -80001360: 0027f713 andi a4,a5,2 -80001364: 000a2483 lw s1,0(s4) -80001368: 08070c63 beqz a4,80001400 <__sfvwrite_r+0xfc> -8000136c: 02442783 lw a5,36(s0) -80001370: 01c42583 lw a1,28(s0) -80001374: 80000b37 lui s6,0x80000 -80001378: 00000993 li s3,0 -8000137c: 00000913 li s2,0 -80001380: c00b4b13 xori s6,s6,-1024 -80001384: 00098613 mv a2,s3 -80001388: 000a8513 mv a0,s5 -8000138c: 04090263 beqz s2,800013d0 <__sfvwrite_r+0xcc> -80001390: 00090693 mv a3,s2 -80001394: 012b7463 bgeu s6,s2,8000139c <__sfvwrite_r+0x98> -80001398: 000b0693 mv a3,s6 -8000139c: 000780e7 jalr a5 -800013a0: 28a05863 blez a0,80001630 <__sfvwrite_r+0x32c> -800013a4: 008a2783 lw a5,8(s4) -800013a8: 00a989b3 add s3,s3,a0 -800013ac: 40a90933 sub s2,s2,a0 -800013b0: 40a78533 sub a0,a5,a0 -800013b4: 00aa2423 sw a0,8(s4) -800013b8: 20050a63 beqz a0,800015cc <__sfvwrite_r+0x2c8> -800013bc: 02442783 lw a5,36(s0) -800013c0: 01c42583 lw a1,28(s0) -800013c4: 00098613 mv a2,s3 -800013c8: 000a8513 mv a0,s5 -800013cc: fc0912e3 bnez s2,80001390 <__sfvwrite_r+0x8c> -800013d0: 0004a983 lw s3,0(s1) -800013d4: 0044a903 lw s2,4(s1) -800013d8: 00848493 addi s1,s1,8 -800013dc: fa9ff06f j 80001384 <__sfvwrite_r+0x80> -800013e0: 00040593 mv a1,s0 -800013e4: 000a8513 mv a0,s5 -800013e8: 760010ef jal ra,80002b48 <__swsetup_r> -800013ec: 3a051c63 bnez a0,800017a4 <__sfvwrite_r+0x4a0> -800013f0: 00c45783 lhu a5,12(s0) -800013f4: 000a2483 lw s1,0(s4) -800013f8: 0027f713 andi a4,a5,2 -800013fc: f60718e3 bnez a4,8000136c <__sfvwrite_r+0x68> -80001400: 0017f713 andi a4,a5,1 -80001404: 24071463 bnez a4,8000164c <__sfvwrite_r+0x348> -80001408: 00842c83 lw s9,8(s0) -8000140c: 00042503 lw a0,0(s0) -80001410: 80000b37 lui s6,0x80000 -80001414: ffeb4b93 xori s7,s6,-2 -80001418: 00000c13 li s8,0 -8000141c: 00000913 li s2,0 -80001420: fffb4b13 not s6,s6 -80001424: 0e090e63 beqz s2,80001520 <__sfvwrite_r+0x21c> -80001428: 2007f713 andi a4,a5,512 -8000142c: 24070c63 beqz a4,80001684 <__sfvwrite_r+0x380> -80001430: 000c8d13 mv s10,s9 -80001434: 2f996263 bltu s2,s9,80001718 <__sfvwrite_r+0x414> -80001438: 4807f713 andi a4,a5,1152 -8000143c: 08070a63 beqz a4,800014d0 <__sfvwrite_r+0x1cc> -80001440: 01442983 lw s3,20(s0) -80001444: 01042583 lw a1,16(s0) -80001448: 00190713 addi a4,s2,1 -8000144c: 00199693 slli a3,s3,0x1 -80001450: 013686b3 add a3,a3,s3 -80001454: 01f6d993 srli s3,a3,0x1f -80001458: 40b50d33 sub s10,a0,a1 -8000145c: 00d989b3 add s3,s3,a3 -80001460: 4019d993 srai s3,s3,0x1 -80001464: 01a70733 add a4,a4,s10 -80001468: 00098613 mv a2,s3 -8000146c: 00e9f663 bgeu s3,a4,80001478 <__sfvwrite_r+0x174> -80001470: 00070993 mv s3,a4 -80001474: 00070613 mv a2,a4 -80001478: 4007f793 andi a5,a5,1024 -8000147c: 2e078463 beqz a5,80001764 <__sfvwrite_r+0x460> -80001480: 00060593 mv a1,a2 -80001484: 000a8513 mv a0,s5 -80001488: 47c000ef jal ra,80001904 <_malloc_r> -8000148c: 00050c93 mv s9,a0 -80001490: 30050263 beqz a0,80001794 <__sfvwrite_r+0x490> -80001494: 01042583 lw a1,16(s0) -80001498: 000d0613 mv a2,s10 -8000149c: 4d5000ef jal ra,80002170 -800014a0: 00c45783 lhu a5,12(s0) -800014a4: b7f7f793 andi a5,a5,-1153 -800014a8: 0807e793 ori a5,a5,128 -800014ac: 00f41623 sh a5,12(s0) -800014b0: 01ac8533 add a0,s9,s10 -800014b4: 41a987b3 sub a5,s3,s10 -800014b8: 01942823 sw s9,16(s0) -800014bc: 00a42023 sw a0,0(s0) -800014c0: 01342a23 sw s3,20(s0) -800014c4: 00090c93 mv s9,s2 -800014c8: 00f42423 sw a5,8(s0) -800014cc: 00090d13 mv s10,s2 -800014d0: 000d0613 mv a2,s10 -800014d4: 000c0593 mv a1,s8 -800014d8: 5b5000ef jal ra,8000228c -800014dc: 00842703 lw a4,8(s0) -800014e0: 00042783 lw a5,0(s0) -800014e4: 00090993 mv s3,s2 -800014e8: 41970cb3 sub s9,a4,s9 -800014ec: 01a787b3 add a5,a5,s10 -800014f0: 01942423 sw s9,8(s0) -800014f4: 00f42023 sw a5,0(s0) -800014f8: 00000913 li s2,0 -800014fc: 008a2603 lw a2,8(s4) -80001500: 013c0c33 add s8,s8,s3 -80001504: 413609b3 sub s3,a2,s3 -80001508: 013a2423 sw s3,8(s4) -8000150c: 0c098063 beqz s3,800015cc <__sfvwrite_r+0x2c8> -80001510: 00842c83 lw s9,8(s0) -80001514: 00042503 lw a0,0(s0) -80001518: 00c45783 lhu a5,12(s0) -8000151c: f00916e3 bnez s2,80001428 <__sfvwrite_r+0x124> -80001520: 0004ac03 lw s8,0(s1) -80001524: 0044a903 lw s2,4(s1) -80001528: 00848493 addi s1,s1,8 -8000152c: ef9ff06f j 80001424 <__sfvwrite_r+0x120> -80001530: 0044a983 lw s3,4(s1) -80001534: 0004ac03 lw s8,0(s1) -80001538: 00848493 addi s1,s1,8 -8000153c: fe098ae3 beqz s3,80001530 <__sfvwrite_r+0x22c> -80001540: 00098613 mv a2,s3 -80001544: 00a00593 li a1,10 -80001548: 000c0513 mv a0,s8 -8000154c: 351000ef jal ra,8000209c -80001550: 12050463 beqz a0,80001678 <__sfvwrite_r+0x374> -80001554: 00150513 addi a0,a0,1 -80001558: 41850b33 sub s6,a0,s8 -8000155c: 000b0793 mv a5,s6 -80001560: 00098b93 mv s7,s3 -80001564: 0137f463 bgeu a5,s3,8000156c <__sfvwrite_r+0x268> -80001568: 00078b93 mv s7,a5 -8000156c: 00042503 lw a0,0(s0) -80001570: 01042783 lw a5,16(s0) -80001574: 01442683 lw a3,20(s0) -80001578: 00a7f863 bgeu a5,a0,80001588 <__sfvwrite_r+0x284> -8000157c: 00842903 lw s2,8(s0) -80001580: 01268933 add s2,a3,s2 -80001584: 09794263 blt s2,s7,80001608 <__sfvwrite_r+0x304> -80001588: 1adbc863 blt s7,a3,80001738 <__sfvwrite_r+0x434> -8000158c: 02442783 lw a5,36(s0) -80001590: 01c42583 lw a1,28(s0) -80001594: 000c0613 mv a2,s8 -80001598: 000a8513 mv a0,s5 -8000159c: 000780e7 jalr a5 -800015a0: 00050913 mv s2,a0 -800015a4: 08a05663 blez a0,80001630 <__sfvwrite_r+0x32c> -800015a8: 412b0b33 sub s6,s6,s2 -800015ac: 00100513 li a0,1 -800015b0: 160b0a63 beqz s6,80001724 <__sfvwrite_r+0x420> -800015b4: 008a2603 lw a2,8(s4) -800015b8: 012c0c33 add s8,s8,s2 -800015bc: 412989b3 sub s3,s3,s2 -800015c0: 41260933 sub s2,a2,s2 -800015c4: 012a2423 sw s2,8(s4) -800015c8: 08091a63 bnez s2,8000165c <__sfvwrite_r+0x358> -800015cc: 00000513 li a0,0 -800015d0: 02c12083 lw ra,44(sp) -800015d4: 02812403 lw s0,40(sp) -800015d8: 02412483 lw s1,36(sp) -800015dc: 02012903 lw s2,32(sp) -800015e0: 01c12983 lw s3,28(sp) -800015e4: 01812a03 lw s4,24(sp) -800015e8: 01412a83 lw s5,20(sp) -800015ec: 01012b03 lw s6,16(sp) -800015f0: 00c12b83 lw s7,12(sp) -800015f4: 00812c03 lw s8,8(sp) -800015f8: 00412c83 lw s9,4(sp) -800015fc: 00012d03 lw s10,0(sp) -80001600: 03010113 addi sp,sp,48 -80001604: 00008067 ret -80001608: 000c0593 mv a1,s8 -8000160c: 00090613 mv a2,s2 -80001610: 47d000ef jal ra,8000228c -80001614: 00042783 lw a5,0(s0) -80001618: 00040593 mv a1,s0 -8000161c: 000a8513 mv a0,s5 -80001620: 012787b3 add a5,a5,s2 -80001624: 00f42023 sw a5,0(s0) -80001628: 251010ef jal ra,80003078 <_fflush_r> -8000162c: f6050ee3 beqz a0,800015a8 <__sfvwrite_r+0x2a4> -80001630: 00c41783 lh a5,12(s0) -80001634: 0407e793 ori a5,a5,64 -80001638: 00f41623 sh a5,12(s0) -8000163c: fff00513 li a0,-1 -80001640: f91ff06f j 800015d0 <__sfvwrite_r+0x2cc> -80001644: 00000513 li a0,0 -80001648: 00008067 ret -8000164c: 00000b13 li s6,0 -80001650: 00000513 li a0,0 -80001654: 00000c13 li s8,0 -80001658: 00000993 li s3,0 -8000165c: ec098ae3 beqz s3,80001530 <__sfvwrite_r+0x22c> -80001660: ee051ee3 bnez a0,8000155c <__sfvwrite_r+0x258> -80001664: 00098613 mv a2,s3 -80001668: 00a00593 li a1,10 -8000166c: 000c0513 mv a0,s8 -80001670: 22d000ef jal ra,8000209c -80001674: ee0510e3 bnez a0,80001554 <__sfvwrite_r+0x250> -80001678: 00198793 addi a5,s3,1 -8000167c: 00078b13 mv s6,a5 -80001680: ee1ff06f j 80001560 <__sfvwrite_r+0x25c> -80001684: 01042783 lw a5,16(s0) -80001688: 04a7e263 bltu a5,a0,800016cc <__sfvwrite_r+0x3c8> -8000168c: 01442783 lw a5,20(s0) -80001690: 02f96e63 bltu s2,a5,800016cc <__sfvwrite_r+0x3c8> -80001694: 00090693 mv a3,s2 -80001698: 012bf463 bgeu s7,s2,800016a0 <__sfvwrite_r+0x39c> -8000169c: 000b0693 mv a3,s6 -800016a0: 02f6c6b3 div a3,a3,a5 -800016a4: 02442703 lw a4,36(s0) -800016a8: 01c42583 lw a1,28(s0) -800016ac: 000c0613 mv a2,s8 -800016b0: 000a8513 mv a0,s5 -800016b4: 02f686b3 mul a3,a3,a5 -800016b8: 000700e7 jalr a4 -800016bc: 00050993 mv s3,a0 -800016c0: f6a058e3 blez a0,80001630 <__sfvwrite_r+0x32c> -800016c4: 41390933 sub s2,s2,s3 -800016c8: e35ff06f j 800014fc <__sfvwrite_r+0x1f8> -800016cc: 000c8993 mv s3,s9 -800016d0: 01997463 bgeu s2,s9,800016d8 <__sfvwrite_r+0x3d4> -800016d4: 00090993 mv s3,s2 -800016d8: 00098613 mv a2,s3 -800016dc: 000c0593 mv a1,s8 -800016e0: 3ad000ef jal ra,8000228c -800016e4: 00842783 lw a5,8(s0) -800016e8: 00042703 lw a4,0(s0) -800016ec: 413787b3 sub a5,a5,s3 -800016f0: 01370733 add a4,a4,s3 -800016f4: 00f42423 sw a5,8(s0) -800016f8: 00e42023 sw a4,0(s0) -800016fc: fc0794e3 bnez a5,800016c4 <__sfvwrite_r+0x3c0> -80001700: 00040593 mv a1,s0 -80001704: 000a8513 mv a0,s5 -80001708: 171010ef jal ra,80003078 <_fflush_r> -8000170c: f20512e3 bnez a0,80001630 <__sfvwrite_r+0x32c> -80001710: 41390933 sub s2,s2,s3 -80001714: de9ff06f j 800014fc <__sfvwrite_r+0x1f8> -80001718: 00090c93 mv s9,s2 -8000171c: 00090d13 mv s10,s2 -80001720: db1ff06f j 800014d0 <__sfvwrite_r+0x1cc> -80001724: 00040593 mv a1,s0 -80001728: 000a8513 mv a0,s5 -8000172c: 14d010ef jal ra,80003078 <_fflush_r> -80001730: e80502e3 beqz a0,800015b4 <__sfvwrite_r+0x2b0> -80001734: efdff06f j 80001630 <__sfvwrite_r+0x32c> -80001738: 000b8613 mv a2,s7 -8000173c: 000c0593 mv a1,s8 -80001740: 34d000ef jal ra,8000228c -80001744: 00842783 lw a5,8(s0) -80001748: 00042603 lw a2,0(s0) -8000174c: 000b8913 mv s2,s7 -80001750: 417787b3 sub a5,a5,s7 -80001754: 01760633 add a2,a2,s7 -80001758: 00f42423 sw a5,8(s0) -8000175c: 00c42023 sw a2,0(s0) -80001760: e49ff06f j 800015a8 <__sfvwrite_r+0x2a4> -80001764: 000a8513 mv a0,s5 -80001768: 44d000ef jal ra,800023b4 <_realloc_r> -8000176c: 00050c93 mv s9,a0 -80001770: d40510e3 bnez a0,800014b0 <__sfvwrite_r+0x1ac> -80001774: 01042583 lw a1,16(s0) -80001778: 000a8513 mv a0,s5 -8000177c: 2ad010ef jal ra,80003228 <_free_r> -80001780: 00c41783 lh a5,12(s0) -80001784: 00c00713 li a4,12 -80001788: 00eaa023 sw a4,0(s5) -8000178c: f7f7f793 andi a5,a5,-129 -80001790: ea5ff06f j 80001634 <__sfvwrite_r+0x330> -80001794: 00c00713 li a4,12 -80001798: 00c41783 lh a5,12(s0) -8000179c: 00eaa023 sw a4,0(s5) -800017a0: e95ff06f j 80001634 <__sfvwrite_r+0x330> -800017a4: fff00513 li a0,-1 -800017a8: e29ff06f j 800015d0 <__sfvwrite_r+0x2cc> - -800017ac <_fwalk>: -800017ac: fe010113 addi sp,sp,-32 -800017b0: 01212823 sw s2,16(sp) -800017b4: 01312623 sw s3,12(sp) -800017b8: 01412423 sw s4,8(sp) -800017bc: 01512223 sw s5,4(sp) -800017c0: 01612023 sw s6,0(sp) -800017c4: 00112e23 sw ra,28(sp) -800017c8: 00812c23 sw s0,24(sp) -800017cc: 00912a23 sw s1,20(sp) -800017d0: 00058b13 mv s6,a1 -800017d4: 2e050a93 addi s5,a0,736 -800017d8: 00000a13 li s4,0 -800017dc: 00100993 li s3,1 -800017e0: fff00913 li s2,-1 -800017e4: 004aa483 lw s1,4(s5) -800017e8: 008aa403 lw s0,8(s5) -800017ec: fff48493 addi s1,s1,-1 -800017f0: 0204c663 bltz s1,8000181c <_fwalk+0x70> -800017f4: 00c45783 lhu a5,12(s0) -800017f8: fff48493 addi s1,s1,-1 -800017fc: 00f9fc63 bgeu s3,a5,80001814 <_fwalk+0x68> -80001800: 00e41783 lh a5,14(s0) -80001804: 00040513 mv a0,s0 -80001808: 01278663 beq a5,s2,80001814 <_fwalk+0x68> -8000180c: 000b00e7 jalr s6 # 80000000 <__BSS_END__+0xffffb668> -80001810: 00aa6a33 or s4,s4,a0 -80001814: 06840413 addi s0,s0,104 -80001818: fd249ee3 bne s1,s2,800017f4 <_fwalk+0x48> -8000181c: 000aaa83 lw s5,0(s5) -80001820: fc0a92e3 bnez s5,800017e4 <_fwalk+0x38> -80001824: 01c12083 lw ra,28(sp) -80001828: 01812403 lw s0,24(sp) -8000182c: 01412483 lw s1,20(sp) -80001830: 01012903 lw s2,16(sp) -80001834: 00c12983 lw s3,12(sp) -80001838: 00412a83 lw s5,4(sp) -8000183c: 00012b03 lw s6,0(sp) -80001840: 000a0513 mv a0,s4 -80001844: 00812a03 lw s4,8(sp) -80001848: 02010113 addi sp,sp,32 -8000184c: 00008067 ret - -80001850 <_fwalk_reent>: -80001850: fd010113 addi sp,sp,-48 -80001854: 03212023 sw s2,32(sp) -80001858: 01312e23 sw s3,28(sp) -8000185c: 01412c23 sw s4,24(sp) -80001860: 01512a23 sw s5,20(sp) -80001864: 01612823 sw s6,16(sp) -80001868: 01712623 sw s7,12(sp) -8000186c: 02112623 sw ra,44(sp) -80001870: 02812423 sw s0,40(sp) -80001874: 02912223 sw s1,36(sp) -80001878: 00050a93 mv s5,a0 -8000187c: 00058b93 mv s7,a1 -80001880: 2e050b13 addi s6,a0,736 -80001884: 00000a13 li s4,0 -80001888: 00100993 li s3,1 -8000188c: fff00913 li s2,-1 -80001890: 004b2483 lw s1,4(s6) -80001894: 008b2403 lw s0,8(s6) -80001898: fff48493 addi s1,s1,-1 -8000189c: 0204c863 bltz s1,800018cc <_fwalk_reent+0x7c> -800018a0: 00c45783 lhu a5,12(s0) -800018a4: fff48493 addi s1,s1,-1 -800018a8: 00f9fe63 bgeu s3,a5,800018c4 <_fwalk_reent+0x74> -800018ac: 00e41783 lh a5,14(s0) -800018b0: 00040593 mv a1,s0 -800018b4: 000a8513 mv a0,s5 -800018b8: 01278663 beq a5,s2,800018c4 <_fwalk_reent+0x74> -800018bc: 000b80e7 jalr s7 -800018c0: 00aa6a33 or s4,s4,a0 -800018c4: 06840413 addi s0,s0,104 -800018c8: fd249ce3 bne s1,s2,800018a0 <_fwalk_reent+0x50> -800018cc: 000b2b03 lw s6,0(s6) -800018d0: fc0b10e3 bnez s6,80001890 <_fwalk_reent+0x40> -800018d4: 02c12083 lw ra,44(sp) -800018d8: 02812403 lw s0,40(sp) -800018dc: 02412483 lw s1,36(sp) -800018e0: 02012903 lw s2,32(sp) -800018e4: 01c12983 lw s3,28(sp) -800018e8: 01412a83 lw s5,20(sp) -800018ec: 01012b03 lw s6,16(sp) -800018f0: 00c12b83 lw s7,12(sp) -800018f4: 000a0513 mv a0,s4 -800018f8: 01812a03 lw s4,24(sp) -800018fc: 03010113 addi sp,sp,48 -80001900: 00008067 ret - -80001904 <_malloc_r>: -80001904: fd010113 addi sp,sp,-48 -80001908: 01312e23 sw s3,28(sp) -8000190c: 02112623 sw ra,44(sp) -80001910: 02812423 sw s0,40(sp) -80001914: 02912223 sw s1,36(sp) -80001918: 03212023 sw s2,32(sp) -8000191c: 01412c23 sw s4,24(sp) -80001920: 01512a23 sw s5,20(sp) -80001924: 01612823 sw s6,16(sp) -80001928: 01712623 sw s7,12(sp) -8000192c: 01812423 sw s8,8(sp) -80001930: 01912223 sw s9,4(sp) -80001934: 00b58793 addi a5,a1,11 -80001938: 01600713 li a4,22 -8000193c: 00050993 mv s3,a0 -80001940: 06f76463 bltu a4,a5,800019a8 <_malloc_r+0xa4> -80001944: 01000793 li a5,16 -80001948: 1eb7e263 bltu a5,a1,80001b2c <_malloc_r+0x228> -8000194c: 261000ef jal ra,800023ac <__malloc_lock> -80001950: 01000493 li s1,16 -80001954: 00200613 li a2,2 -80001958: 01800793 li a5,24 -8000195c: cc018913 addi s2,gp,-832 # 800044c8 <__malloc_av_> -80001960: 00f907b3 add a5,s2,a5 -80001964: 0047a403 lw s0,4(a5) -80001968: ff878713 addi a4,a5,-8 -8000196c: 20e40863 beq s0,a4,80001b7c <_malloc_r+0x278> -80001970: 00442783 lw a5,4(s0) -80001974: 00c42683 lw a3,12(s0) -80001978: 00842603 lw a2,8(s0) -8000197c: ffc7f793 andi a5,a5,-4 -80001980: 00f407b3 add a5,s0,a5 -80001984: 0047a703 lw a4,4(a5) -80001988: 00d62623 sw a3,12(a2) -8000198c: 00c6a423 sw a2,8(a3) -80001990: 00176713 ori a4,a4,1 -80001994: 00098513 mv a0,s3 -80001998: 00e7a223 sw a4,4(a5) -8000199c: 215000ef jal ra,800023b0 <__malloc_unlock> -800019a0: 00840513 addi a0,s0,8 -800019a4: 1940006f j 80001b38 <_malloc_r+0x234> -800019a8: ff87f493 andi s1,a5,-8 -800019ac: 1807c063 bltz a5,80001b2c <_malloc_r+0x228> -800019b0: 16b4ee63 bltu s1,a1,80001b2c <_malloc_r+0x228> -800019b4: 1f9000ef jal ra,800023ac <__malloc_lock> -800019b8: 1f700793 li a5,503 -800019bc: 4497fa63 bgeu a5,s1,80001e10 <_malloc_r+0x50c> -800019c0: 0094d793 srli a5,s1,0x9 -800019c4: 1a078463 beqz a5,80001b6c <_malloc_r+0x268> -800019c8: 00400713 li a4,4 -800019cc: 3cf76063 bltu a4,a5,80001d8c <_malloc_r+0x488> -800019d0: 0064d793 srli a5,s1,0x6 -800019d4: 03978613 addi a2,a5,57 -800019d8: 03878513 addi a0,a5,56 -800019dc: 00361693 slli a3,a2,0x3 -800019e0: cc018913 addi s2,gp,-832 # 800044c8 <__malloc_av_> -800019e4: 00d906b3 add a3,s2,a3 -800019e8: 0046a403 lw s0,4(a3) -800019ec: ff868693 addi a3,a3,-8 -800019f0: 02868663 beq a3,s0,80001a1c <_malloc_r+0x118> -800019f4: 00f00593 li a1,15 -800019f8: 0100006f j 80001a08 <_malloc_r+0x104> -800019fc: 32075263 bgez a4,80001d20 <_malloc_r+0x41c> -80001a00: 00c42403 lw s0,12(s0) -80001a04: 00868c63 beq a3,s0,80001a1c <_malloc_r+0x118> -80001a08: 00442783 lw a5,4(s0) -80001a0c: ffc7f793 andi a5,a5,-4 -80001a10: 40978733 sub a4,a5,s1 -80001a14: fee5d4e3 bge a1,a4,800019fc <_malloc_r+0xf8> -80001a18: 00050613 mv a2,a0 -80001a1c: 01092403 lw s0,16(s2) -80001a20: 00890893 addi a7,s2,8 -80001a24: 17140863 beq s0,a7,80001b94 <_malloc_r+0x290> -80001a28: 00442503 lw a0,4(s0) -80001a2c: 00f00693 li a3,15 -80001a30: ffc57513 andi a0,a0,-4 -80001a34: 409507b3 sub a5,a0,s1 -80001a38: 40f6c263 blt a3,a5,80001e3c <_malloc_r+0x538> -80001a3c: 01192a23 sw a7,20(s2) -80001a40: 01192823 sw a7,16(s2) -80001a44: 3c07dc63 bgez a5,80001e1c <_malloc_r+0x518> -80001a48: 1ff00793 li a5,511 -80001a4c: 2ea7e063 bltu a5,a0,80001d2c <_malloc_r+0x428> -80001a50: ff857793 andi a5,a0,-8 -80001a54: 00878793 addi a5,a5,8 -80001a58: 00492583 lw a1,4(s2) -80001a5c: 00f907b3 add a5,s2,a5 -80001a60: 0007a683 lw a3,0(a5) -80001a64: 00555513 srli a0,a0,0x5 -80001a68: 00100713 li a4,1 -80001a6c: 00a71733 sll a4,a4,a0 -80001a70: 00b76733 or a4,a4,a1 -80001a74: ff878593 addi a1,a5,-8 -80001a78: 00b42623 sw a1,12(s0) -80001a7c: 00d42423 sw a3,8(s0) -80001a80: 00e92223 sw a4,4(s2) -80001a84: 0087a023 sw s0,0(a5) -80001a88: 0086a623 sw s0,12(a3) -80001a8c: 40265793 srai a5,a2,0x2 -80001a90: 00100593 li a1,1 -80001a94: 00f595b3 sll a1,a1,a5 -80001a98: 10b76863 bltu a4,a1,80001ba8 <_malloc_r+0x2a4> -80001a9c: 00e5f7b3 and a5,a1,a4 -80001aa0: 02079463 bnez a5,80001ac8 <_malloc_r+0x1c4> -80001aa4: 00159593 slli a1,a1,0x1 -80001aa8: ffc67613 andi a2,a2,-4 -80001aac: 00e5f7b3 and a5,a1,a4 -80001ab0: 00460613 addi a2,a2,4 -80001ab4: 00079a63 bnez a5,80001ac8 <_malloc_r+0x1c4> -80001ab8: 00159593 slli a1,a1,0x1 -80001abc: 00e5f7b3 and a5,a1,a4 -80001ac0: 00460613 addi a2,a2,4 -80001ac4: fe078ae3 beqz a5,80001ab8 <_malloc_r+0x1b4> -80001ac8: 00f00813 li a6,15 -80001acc: 00361313 slli t1,a2,0x3 -80001ad0: 00690333 add t1,s2,t1 -80001ad4: 00030513 mv a0,t1 -80001ad8: 00c52783 lw a5,12(a0) -80001adc: 00060e13 mv t3,a2 -80001ae0: 2cf50863 beq a0,a5,80001db0 <_malloc_r+0x4ac> -80001ae4: 0047a703 lw a4,4(a5) -80001ae8: 00078413 mv s0,a5 -80001aec: 00c7a783 lw a5,12(a5) -80001af0: ffc77713 andi a4,a4,-4 -80001af4: 409706b3 sub a3,a4,s1 -80001af8: 2cd84863 blt a6,a3,80001dc8 <_malloc_r+0x4c4> -80001afc: fe06c2e3 bltz a3,80001ae0 <_malloc_r+0x1dc> -80001b00: 00e40733 add a4,s0,a4 -80001b04: 00472683 lw a3,4(a4) -80001b08: 00842603 lw a2,8(s0) -80001b0c: 00098513 mv a0,s3 -80001b10: 0016e693 ori a3,a3,1 -80001b14: 00d72223 sw a3,4(a4) -80001b18: 00f62623 sw a5,12(a2) -80001b1c: 00c7a423 sw a2,8(a5) -80001b20: 091000ef jal ra,800023b0 <__malloc_unlock> -80001b24: 00840513 addi a0,s0,8 -80001b28: 0100006f j 80001b38 <_malloc_r+0x234> -80001b2c: 00c00793 li a5,12 -80001b30: 00f9a023 sw a5,0(s3) -80001b34: 00000513 li a0,0 -80001b38: 02c12083 lw ra,44(sp) -80001b3c: 02812403 lw s0,40(sp) -80001b40: 02412483 lw s1,36(sp) -80001b44: 02012903 lw s2,32(sp) -80001b48: 01c12983 lw s3,28(sp) -80001b4c: 01812a03 lw s4,24(sp) -80001b50: 01412a83 lw s5,20(sp) -80001b54: 01012b03 lw s6,16(sp) -80001b58: 00c12b83 lw s7,12(sp) -80001b5c: 00812c03 lw s8,8(sp) -80001b60: 00412c83 lw s9,4(sp) -80001b64: 03010113 addi sp,sp,48 -80001b68: 00008067 ret -80001b6c: 20000693 li a3,512 -80001b70: 04000613 li a2,64 -80001b74: 03f00513 li a0,63 -80001b78: e69ff06f j 800019e0 <_malloc_r+0xdc> -80001b7c: 00c7a403 lw s0,12(a5) -80001b80: 00260613 addi a2,a2,2 -80001b84: de8796e3 bne a5,s0,80001970 <_malloc_r+0x6c> -80001b88: 01092403 lw s0,16(s2) -80001b8c: 00890893 addi a7,s2,8 -80001b90: e9141ce3 bne s0,a7,80001a28 <_malloc_r+0x124> -80001b94: 00492703 lw a4,4(s2) -80001b98: 40265793 srai a5,a2,0x2 -80001b9c: 00100593 li a1,1 -80001ba0: 00f595b3 sll a1,a1,a5 -80001ba4: eeb77ce3 bgeu a4,a1,80001a9c <_malloc_r+0x198> -80001ba8: 00892403 lw s0,8(s2) -80001bac: 00442a83 lw s5,4(s0) -80001bb0: ffcafb13 andi s6,s5,-4 -80001bb4: 009b6863 bltu s6,s1,80001bc4 <_malloc_r+0x2c0> -80001bb8: 409b07b3 sub a5,s6,s1 -80001bbc: 00f00713 li a4,15 -80001bc0: 12f74c63 blt a4,a5,80001cf8 <_malloc_r+0x3f4> -80001bc4: 0e01aa83 lw s5,224(gp) # 800048e8 <__malloc_top_pad> -80001bc8: 0d01a703 lw a4,208(gp) # 800048d8 <__malloc_sbrk_base> -80001bcc: fff00793 li a5,-1 -80001bd0: 01640a33 add s4,s0,s6 -80001bd4: 01548ab3 add s5,s1,s5 -80001bd8: 34f70463 beq a4,a5,80001f20 <_malloc_r+0x61c> -80001bdc: 000017b7 lui a5,0x1 -80001be0: 00f78793 addi a5,a5,15 # 100f <_start-0x7fffeff1> -80001be4: 00fa8ab3 add s5,s5,a5 -80001be8: fffff7b7 lui a5,0xfffff -80001bec: 00fafab3 and s5,s5,a5 -80001bf0: 000a8593 mv a1,s5 -80001bf4: 00098513 mv a0,s3 -80001bf8: 531000ef jal ra,80002928 <_sbrk_r> -80001bfc: fff00793 li a5,-1 -80001c00: 00050b93 mv s7,a0 -80001c04: 28f50663 beq a0,a5,80001e90 <_malloc_r+0x58c> -80001c08: 29456263 bltu a0,s4,80001e8c <_malloc_r+0x588> -80001c0c: 12818c13 addi s8,gp,296 # 80004930 <__malloc_current_mallinfo> -80001c10: 000c2583 lw a1,0(s8) -80001c14: 00ba85b3 add a1,s5,a1 -80001c18: 00bc2023 sw a1,0(s8) -80001c1c: 00058793 mv a5,a1 -80001c20: 38aa0e63 beq s4,a0,80001fbc <_malloc_r+0x6b8> -80001c24: 0d01a683 lw a3,208(gp) # 800048d8 <__malloc_sbrk_base> -80001c28: fff00713 li a4,-1 -80001c2c: 3ae68663 beq a3,a4,80001fd8 <_malloc_r+0x6d4> -80001c30: 414b8a33 sub s4,s7,s4 -80001c34: 00fa07b3 add a5,s4,a5 -80001c38: 00fc2023 sw a5,0(s8) -80001c3c: 007bfc93 andi s9,s7,7 -80001c40: 300c8263 beqz s9,80001f44 <_malloc_r+0x640> -80001c44: 000017b7 lui a5,0x1 -80001c48: 419b8bb3 sub s7,s7,s9 -80001c4c: 00878593 addi a1,a5,8 # 1008 <_start-0x7fffeff8> -80001c50: 008b8b93 addi s7,s7,8 -80001c54: 419585b3 sub a1,a1,s9 -80001c58: 015b8ab3 add s5,s7,s5 -80001c5c: fff78793 addi a5,a5,-1 -80001c60: 415585b3 sub a1,a1,s5 -80001c64: 00f5fa33 and s4,a1,a5 -80001c68: 000a0593 mv a1,s4 -80001c6c: 00098513 mv a0,s3 -80001c70: 4b9000ef jal ra,80002928 <_sbrk_r> -80001c74: fff00793 li a5,-1 -80001c78: 3af50a63 beq a0,a5,8000202c <_malloc_r+0x728> -80001c7c: 41750533 sub a0,a0,s7 -80001c80: 01450ab3 add s5,a0,s4 -80001c84: 000c2583 lw a1,0(s8) -80001c88: 01792423 sw s7,8(s2) -80001c8c: 001aea93 ori s5,s5,1 -80001c90: 00ba05b3 add a1,s4,a1 -80001c94: 00bc2023 sw a1,0(s8) -80001c98: 015ba223 sw s5,4(s7) -80001c9c: 35240263 beq s0,s2,80001fe0 <_malloc_r+0x6dc> -80001ca0: 00f00693 li a3,15 -80001ca4: 3566f263 bgeu a3,s6,80001fe8 <_malloc_r+0x6e4> -80001ca8: 00442703 lw a4,4(s0) -80001cac: ff4b0793 addi a5,s6,-12 -80001cb0: ff87f793 andi a5,a5,-8 -80001cb4: 00177713 andi a4,a4,1 -80001cb8: 00f76733 or a4,a4,a5 -80001cbc: 00e42223 sw a4,4(s0) -80001cc0: 00500613 li a2,5 -80001cc4: 00f40733 add a4,s0,a5 -80001cc8: 00c72223 sw a2,4(a4) -80001ccc: 00c72423 sw a2,8(a4) -80001cd0: 36f6e863 bltu a3,a5,80002040 <_malloc_r+0x73c> -80001cd4: 004baa83 lw s5,4(s7) -80001cd8: 000b8413 mv s0,s7 -80001cdc: 0dc1a703 lw a4,220(gp) # 800048e4 <__malloc_max_sbrked_mem> -80001ce0: 00b77463 bgeu a4,a1,80001ce8 <_malloc_r+0x3e4> -80001ce4: 0cb1ae23 sw a1,220(gp) # 800048e4 <__malloc_max_sbrked_mem> -80001ce8: 0d81a703 lw a4,216(gp) # 800048e0 <__malloc_max_total_mem> -80001cec: 1ab77663 bgeu a4,a1,80001e98 <_malloc_r+0x594> -80001cf0: 0cb1ac23 sw a1,216(gp) # 800048e0 <__malloc_max_total_mem> -80001cf4: 1a40006f j 80001e98 <_malloc_r+0x594> -80001cf8: 0014e713 ori a4,s1,1 -80001cfc: 00e42223 sw a4,4(s0) -80001d00: 009404b3 add s1,s0,s1 -80001d04: 00992423 sw s1,8(s2) -80001d08: 0017e793 ori a5,a5,1 -80001d0c: 00098513 mv a0,s3 -80001d10: 00f4a223 sw a5,4(s1) -80001d14: 69c000ef jal ra,800023b0 <__malloc_unlock> -80001d18: 00840513 addi a0,s0,8 -80001d1c: e1dff06f j 80001b38 <_malloc_r+0x234> -80001d20: 00c42683 lw a3,12(s0) -80001d24: 00842603 lw a2,8(s0) -80001d28: c59ff06f j 80001980 <_malloc_r+0x7c> -80001d2c: 00955793 srli a5,a0,0x9 -80001d30: 00400713 li a4,4 -80001d34: 14f77263 bgeu a4,a5,80001e78 <_malloc_r+0x574> -80001d38: 01400713 li a4,20 -80001d3c: 22f76a63 bltu a4,a5,80001f70 <_malloc_r+0x66c> -80001d40: 05c78693 addi a3,a5,92 -80001d44: 05b78593 addi a1,a5,91 -80001d48: 00369693 slli a3,a3,0x3 -80001d4c: 00d906b3 add a3,s2,a3 -80001d50: 0006a783 lw a5,0(a3) -80001d54: ff868693 addi a3,a3,-8 -80001d58: 1cf68863 beq a3,a5,80001f28 <_malloc_r+0x624> -80001d5c: 0047a703 lw a4,4(a5) -80001d60: ffc77713 andi a4,a4,-4 -80001d64: 00e57663 bgeu a0,a4,80001d70 <_malloc_r+0x46c> -80001d68: 0087a783 lw a5,8(a5) -80001d6c: fef698e3 bne a3,a5,80001d5c <_malloc_r+0x458> -80001d70: 00c7a683 lw a3,12(a5) -80001d74: 00492703 lw a4,4(s2) -80001d78: 00d42623 sw a3,12(s0) -80001d7c: 00f42423 sw a5,8(s0) -80001d80: 0086a423 sw s0,8(a3) -80001d84: 0087a623 sw s0,12(a5) -80001d88: d05ff06f j 80001a8c <_malloc_r+0x188> -80001d8c: 01400713 li a4,20 -80001d90: 12f77663 bgeu a4,a5,80001ebc <_malloc_r+0x5b8> -80001d94: 05400713 li a4,84 -80001d98: 1ef76a63 bltu a4,a5,80001f8c <_malloc_r+0x688> -80001d9c: 00c4d793 srli a5,s1,0xc -80001da0: 06f78613 addi a2,a5,111 -80001da4: 06e78513 addi a0,a5,110 -80001da8: 00361693 slli a3,a2,0x3 -80001dac: c35ff06f j 800019e0 <_malloc_r+0xdc> -80001db0: 001e0e13 addi t3,t3,1 -80001db4: 003e7793 andi a5,t3,3 -80001db8: 00850513 addi a0,a0,8 -80001dbc: 10078e63 beqz a5,80001ed8 <_malloc_r+0x5d4> -80001dc0: 00c52783 lw a5,12(a0) -80001dc4: d1dff06f j 80001ae0 <_malloc_r+0x1dc> -80001dc8: 00842603 lw a2,8(s0) -80001dcc: 0014e593 ori a1,s1,1 -80001dd0: 00b42223 sw a1,4(s0) -80001dd4: 00f62623 sw a5,12(a2) -80001dd8: 00c7a423 sw a2,8(a5) -80001ddc: 009404b3 add s1,s0,s1 -80001de0: 00992a23 sw s1,20(s2) -80001de4: 00992823 sw s1,16(s2) -80001de8: 0016e793 ori a5,a3,1 -80001dec: 0114a623 sw a7,12(s1) -80001df0: 0114a423 sw a7,8(s1) -80001df4: 00f4a223 sw a5,4(s1) -80001df8: 00e40733 add a4,s0,a4 -80001dfc: 00098513 mv a0,s3 -80001e00: 00d72023 sw a3,0(a4) -80001e04: 5ac000ef jal ra,800023b0 <__malloc_unlock> -80001e08: 00840513 addi a0,s0,8 -80001e0c: d2dff06f j 80001b38 <_malloc_r+0x234> -80001e10: 0034d613 srli a2,s1,0x3 -80001e14: 00848793 addi a5,s1,8 -80001e18: b45ff06f j 8000195c <_malloc_r+0x58> -80001e1c: 00a40733 add a4,s0,a0 -80001e20: 00472783 lw a5,4(a4) -80001e24: 00098513 mv a0,s3 -80001e28: 0017e793 ori a5,a5,1 -80001e2c: 00f72223 sw a5,4(a4) -80001e30: 580000ef jal ra,800023b0 <__malloc_unlock> -80001e34: 00840513 addi a0,s0,8 -80001e38: d01ff06f j 80001b38 <_malloc_r+0x234> -80001e3c: 0014e713 ori a4,s1,1 -80001e40: 00e42223 sw a4,4(s0) -80001e44: 009404b3 add s1,s0,s1 -80001e48: 00992a23 sw s1,20(s2) -80001e4c: 00992823 sw s1,16(s2) -80001e50: 0017e713 ori a4,a5,1 -80001e54: 0114a623 sw a7,12(s1) -80001e58: 0114a423 sw a7,8(s1) -80001e5c: 00e4a223 sw a4,4(s1) -80001e60: 00a40533 add a0,s0,a0 -80001e64: 00f52023 sw a5,0(a0) -80001e68: 00098513 mv a0,s3 -80001e6c: 544000ef jal ra,800023b0 <__malloc_unlock> -80001e70: 00840513 addi a0,s0,8 -80001e74: cc5ff06f j 80001b38 <_malloc_r+0x234> -80001e78: 00655793 srli a5,a0,0x6 -80001e7c: 03978693 addi a3,a5,57 -80001e80: 03878593 addi a1,a5,56 -80001e84: 00369693 slli a3,a3,0x3 -80001e88: ec5ff06f j 80001d4c <_malloc_r+0x448> -80001e8c: 11240e63 beq s0,s2,80001fa8 <_malloc_r+0x6a4> -80001e90: 00892403 lw s0,8(s2) -80001e94: 00442a83 lw s5,4(s0) -80001e98: ffcafa93 andi s5,s5,-4 -80001e9c: 409a87b3 sub a5,s5,s1 -80001ea0: 009ae663 bltu s5,s1,80001eac <_malloc_r+0x5a8> -80001ea4: 00f00713 li a4,15 -80001ea8: e4f748e3 blt a4,a5,80001cf8 <_malloc_r+0x3f4> -80001eac: 00098513 mv a0,s3 -80001eb0: 500000ef jal ra,800023b0 <__malloc_unlock> -80001eb4: 00000513 li a0,0 -80001eb8: c81ff06f j 80001b38 <_malloc_r+0x234> -80001ebc: 05c78613 addi a2,a5,92 -80001ec0: 05b78513 addi a0,a5,91 -80001ec4: 00361693 slli a3,a2,0x3 -80001ec8: b19ff06f j 800019e0 <_malloc_r+0xdc> -80001ecc: 00832783 lw a5,8(t1) -80001ed0: fff60613 addi a2,a2,-1 -80001ed4: 1c679063 bne a5,t1,80002094 <_malloc_r+0x790> -80001ed8: 00367793 andi a5,a2,3 -80001edc: ff830313 addi t1,t1,-8 -80001ee0: fe0796e3 bnez a5,80001ecc <_malloc_r+0x5c8> -80001ee4: 00492703 lw a4,4(s2) -80001ee8: fff5c793 not a5,a1 -80001eec: 00e7f7b3 and a5,a5,a4 -80001ef0: 00f92223 sw a5,4(s2) -80001ef4: 00159593 slli a1,a1,0x1 -80001ef8: cab7e8e3 bltu a5,a1,80001ba8 <_malloc_r+0x2a4> -80001efc: ca0586e3 beqz a1,80001ba8 <_malloc_r+0x2a4> -80001f00: 00f5f733 and a4,a1,a5 -80001f04: 00071a63 bnez a4,80001f18 <_malloc_r+0x614> -80001f08: 00159593 slli a1,a1,0x1 -80001f0c: 00f5f733 and a4,a1,a5 -80001f10: 004e0e13 addi t3,t3,4 -80001f14: fe070ae3 beqz a4,80001f08 <_malloc_r+0x604> -80001f18: 000e0613 mv a2,t3 -80001f1c: bb1ff06f j 80001acc <_malloc_r+0x1c8> -80001f20: 010a8a93 addi s5,s5,16 -80001f24: ccdff06f j 80001bf0 <_malloc_r+0x2ec> -80001f28: 00492503 lw a0,4(s2) -80001f2c: 4025d593 srai a1,a1,0x2 -80001f30: 00100713 li a4,1 -80001f34: 00b71733 sll a4,a4,a1 -80001f38: 00a76733 or a4,a4,a0 -80001f3c: 00e92223 sw a4,4(s2) -80001f40: e39ff06f j 80001d78 <_malloc_r+0x474> -80001f44: 015b85b3 add a1,s7,s5 -80001f48: 40b005b3 neg a1,a1 -80001f4c: 01459593 slli a1,a1,0x14 -80001f50: 0145da13 srli s4,a1,0x14 -80001f54: 000a0593 mv a1,s4 -80001f58: 00098513 mv a0,s3 -80001f5c: 1cd000ef jal ra,80002928 <_sbrk_r> -80001f60: fff00793 li a5,-1 -80001f64: d0f51ce3 bne a0,a5,80001c7c <_malloc_r+0x378> -80001f68: 00000a13 li s4,0 -80001f6c: d19ff06f j 80001c84 <_malloc_r+0x380> -80001f70: 05400713 li a4,84 -80001f74: 08f76063 bltu a4,a5,80001ff4 <_malloc_r+0x6f0> -80001f78: 00c55793 srli a5,a0,0xc -80001f7c: 06f78693 addi a3,a5,111 -80001f80: 06e78593 addi a1,a5,110 -80001f84: 00369693 slli a3,a3,0x3 -80001f88: dc5ff06f j 80001d4c <_malloc_r+0x448> -80001f8c: 15400713 li a4,340 -80001f90: 08f76063 bltu a4,a5,80002010 <_malloc_r+0x70c> -80001f94: 00f4d793 srli a5,s1,0xf -80001f98: 07878613 addi a2,a5,120 -80001f9c: 07778513 addi a0,a5,119 -80001fa0: 00361693 slli a3,a2,0x3 -80001fa4: a3dff06f j 800019e0 <_malloc_r+0xdc> -80001fa8: 12818c13 addi s8,gp,296 # 80004930 <__malloc_current_mallinfo> -80001fac: 000c2783 lw a5,0(s8) -80001fb0: 00fa87b3 add a5,s5,a5 -80001fb4: 00fc2023 sw a5,0(s8) -80001fb8: c6dff06f j 80001c24 <_malloc_r+0x320> -80001fbc: 014a1713 slli a4,s4,0x14 -80001fc0: c60712e3 bnez a4,80001c24 <_malloc_r+0x320> -80001fc4: 00892403 lw s0,8(s2) -80001fc8: 015b0ab3 add s5,s6,s5 -80001fcc: 001aea93 ori s5,s5,1 -80001fd0: 01542223 sw s5,4(s0) -80001fd4: d09ff06f j 80001cdc <_malloc_r+0x3d8> -80001fd8: 0d71a823 sw s7,208(gp) # 800048d8 <__malloc_sbrk_base> -80001fdc: c61ff06f j 80001c3c <_malloc_r+0x338> -80001fe0: 000b8413 mv s0,s7 -80001fe4: cf9ff06f j 80001cdc <_malloc_r+0x3d8> -80001fe8: 00100793 li a5,1 -80001fec: 00fba223 sw a5,4(s7) -80001ff0: ebdff06f j 80001eac <_malloc_r+0x5a8> -80001ff4: 15400713 li a4,340 -80001ff8: 06f76263 bltu a4,a5,8000205c <_malloc_r+0x758> -80001ffc: 00f55793 srli a5,a0,0xf -80002000: 07878693 addi a3,a5,120 -80002004: 07778593 addi a1,a5,119 -80002008: 00369693 slli a3,a3,0x3 -8000200c: d41ff06f j 80001d4c <_malloc_r+0x448> -80002010: 55400713 li a4,1364 -80002014: 06f76263 bltu a4,a5,80002078 <_malloc_r+0x774> -80002018: 0124d793 srli a5,s1,0x12 -8000201c: 07d78613 addi a2,a5,125 -80002020: 07c78513 addi a0,a5,124 -80002024: 00361693 slli a3,a2,0x3 -80002028: 9b9ff06f j 800019e0 <_malloc_r+0xdc> -8000202c: ff8c8c93 addi s9,s9,-8 -80002030: 019a8ab3 add s5,s5,s9 -80002034: 417a8ab3 sub s5,s5,s7 -80002038: 00000a13 li s4,0 -8000203c: c49ff06f j 80001c84 <_malloc_r+0x380> -80002040: 00840593 addi a1,s0,8 -80002044: 00098513 mv a0,s3 -80002048: 1e0010ef jal ra,80003228 <_free_r> -8000204c: 00892403 lw s0,8(s2) -80002050: 000c2583 lw a1,0(s8) -80002054: 00442a83 lw s5,4(s0) -80002058: c85ff06f j 80001cdc <_malloc_r+0x3d8> -8000205c: 55400713 li a4,1364 -80002060: 02f76463 bltu a4,a5,80002088 <_malloc_r+0x784> -80002064: 01255793 srli a5,a0,0x12 -80002068: 07d78693 addi a3,a5,125 -8000206c: 07c78593 addi a1,a5,124 -80002070: 00369693 slli a3,a3,0x3 -80002074: cd9ff06f j 80001d4c <_malloc_r+0x448> -80002078: 3f800693 li a3,1016 -8000207c: 07f00613 li a2,127 -80002080: 07e00513 li a0,126 -80002084: 95dff06f j 800019e0 <_malloc_r+0xdc> -80002088: 3f800693 li a3,1016 -8000208c: 07e00593 li a1,126 -80002090: cbdff06f j 80001d4c <_malloc_r+0x448> -80002094: 00492783 lw a5,4(s2) -80002098: e5dff06f j 80001ef4 <_malloc_r+0x5f0> - -8000209c : -8000209c: 00357793 andi a5,a0,3 -800020a0: 0ff5f693 andi a3,a1,255 -800020a4: 02078a63 beqz a5,800020d8 -800020a8: fff60793 addi a5,a2,-1 -800020ac: 02060e63 beqz a2,800020e8 -800020b0: fff00613 li a2,-1 -800020b4: 0180006f j 800020cc -800020b8: 00150513 addi a0,a0,1 -800020bc: 00357713 andi a4,a0,3 -800020c0: 00070e63 beqz a4,800020dc -800020c4: fff78793 addi a5,a5,-1 -800020c8: 02c78063 beq a5,a2,800020e8 -800020cc: 00054703 lbu a4,0(a0) -800020d0: fed714e3 bne a4,a3,800020b8 -800020d4: 00008067 ret -800020d8: 00060793 mv a5,a2 -800020dc: 00300713 li a4,3 -800020e0: 02f76663 bltu a4,a5,8000210c -800020e4: 00079663 bnez a5,800020f0 -800020e8: 00000513 li a0,0 -800020ec: 00008067 ret -800020f0: 00f507b3 add a5,a0,a5 -800020f4: 00c0006f j 80002100 -800020f8: 00150513 addi a0,a0,1 -800020fc: fea786e3 beq a5,a0,800020e8 -80002100: 00054703 lbu a4,0(a0) -80002104: fed71ae3 bne a4,a3,800020f8 -80002108: 00008067 ret -8000210c: 00010737 lui a4,0x10 -80002110: 00859893 slli a7,a1,0x8 -80002114: fff70713 addi a4,a4,-1 # ffff <_start-0x7fff0001> -80002118: 00e8f8b3 and a7,a7,a4 -8000211c: 0ff5f593 andi a1,a1,255 -80002120: 00b8e5b3 or a1,a7,a1 -80002124: 01059893 slli a7,a1,0x10 -80002128: 00b8e8b3 or a7,a7,a1 -8000212c: feff0837 lui a6,0xfeff0 -80002130: 808085b7 lui a1,0x80808 -80002134: eff80813 addi a6,a6,-257 # fefefeff <__BSS_END__+0x7efeb567> -80002138: 08058593 addi a1,a1,128 # 80808080 <__BSS_END__+0x8036e8> -8000213c: 00300313 li t1,3 -80002140: 00052703 lw a4,0(a0) -80002144: 00e8c733 xor a4,a7,a4 -80002148: 01070633 add a2,a4,a6 -8000214c: fff74713 not a4,a4 -80002150: 00e67733 and a4,a2,a4 -80002154: 00b77733 and a4,a4,a1 -80002158: f8071ce3 bnez a4,800020f0 -8000215c: ffc78793 addi a5,a5,-4 -80002160: 00450513 addi a0,a0,4 -80002164: fcf36ee3 bltu t1,a5,80002140 -80002168: f80794e3 bnez a5,800020f0 -8000216c: f7dff06f j 800020e8 - -80002170 : -80002170: 00a5c7b3 xor a5,a1,a0 -80002174: 0037f793 andi a5,a5,3 -80002178: 00c508b3 add a7,a0,a2 -8000217c: 06079263 bnez a5,800021e0 -80002180: 00300793 li a5,3 -80002184: 04c7fe63 bgeu a5,a2,800021e0 -80002188: 00357793 andi a5,a0,3 -8000218c: 00050713 mv a4,a0 -80002190: 06079863 bnez a5,80002200 -80002194: ffc8f613 andi a2,a7,-4 -80002198: fe060793 addi a5,a2,-32 -8000219c: 08f76c63 bltu a4,a5,80002234 -800021a0: 02c77c63 bgeu a4,a2,800021d8 -800021a4: 00058693 mv a3,a1 -800021a8: 00070793 mv a5,a4 -800021ac: 0006a803 lw a6,0(a3) -800021b0: 00478793 addi a5,a5,4 -800021b4: 00468693 addi a3,a3,4 -800021b8: ff07ae23 sw a6,-4(a5) -800021bc: fec7e8e3 bltu a5,a2,800021ac -800021c0: fff60793 addi a5,a2,-1 -800021c4: 40e787b3 sub a5,a5,a4 -800021c8: ffc7f793 andi a5,a5,-4 -800021cc: 00478793 addi a5,a5,4 -800021d0: 00f70733 add a4,a4,a5 -800021d4: 00f585b3 add a1,a1,a5 -800021d8: 01176863 bltu a4,a7,800021e8 -800021dc: 00008067 ret -800021e0: 00050713 mv a4,a0 -800021e4: ff157ce3 bgeu a0,a7,800021dc -800021e8: 0005c783 lbu a5,0(a1) -800021ec: 00170713 addi a4,a4,1 -800021f0: 00158593 addi a1,a1,1 -800021f4: fef70fa3 sb a5,-1(a4) -800021f8: ff1768e3 bltu a4,a7,800021e8 -800021fc: 00008067 ret -80002200: 0005c683 lbu a3,0(a1) -80002204: 00170713 addi a4,a4,1 -80002208: 00377793 andi a5,a4,3 -8000220c: fed70fa3 sb a3,-1(a4) -80002210: 00158593 addi a1,a1,1 -80002214: f80780e3 beqz a5,80002194 -80002218: 0005c683 lbu a3,0(a1) -8000221c: 00170713 addi a4,a4,1 -80002220: 00377793 andi a5,a4,3 -80002224: fed70fa3 sb a3,-1(a4) -80002228: 00158593 addi a1,a1,1 -8000222c: fc079ae3 bnez a5,80002200 -80002230: f65ff06f j 80002194 -80002234: 0045a683 lw a3,4(a1) -80002238: 0005a283 lw t0,0(a1) -8000223c: 0085af83 lw t6,8(a1) -80002240: 00c5af03 lw t5,12(a1) -80002244: 0105ae83 lw t4,16(a1) -80002248: 0145ae03 lw t3,20(a1) -8000224c: 0185a303 lw t1,24(a1) -80002250: 01c5a803 lw a6,28(a1) -80002254: 00d72223 sw a3,4(a4) -80002258: 0205a683 lw a3,32(a1) -8000225c: 00572023 sw t0,0(a4) -80002260: 01f72423 sw t6,8(a4) -80002264: 01e72623 sw t5,12(a4) -80002268: 01d72823 sw t4,16(a4) -8000226c: 01c72a23 sw t3,20(a4) -80002270: 00672c23 sw t1,24(a4) -80002274: 01072e23 sw a6,28(a4) -80002278: 02d72023 sw a3,32(a4) -8000227c: 02470713 addi a4,a4,36 -80002280: 02458593 addi a1,a1,36 -80002284: faf768e3 bltu a4,a5,80002234 -80002288: f19ff06f j 800021a0 - -8000228c : -8000228c: 02a5f663 bgeu a1,a0,800022b8 -80002290: 00c587b3 add a5,a1,a2 -80002294: 02f57263 bgeu a0,a5,800022b8 -80002298: 00c50733 add a4,a0,a2 -8000229c: 0e060a63 beqz a2,80002390 -800022a0: fff7c683 lbu a3,-1(a5) -800022a4: fff78793 addi a5,a5,-1 -800022a8: fff70713 addi a4,a4,-1 -800022ac: 00d70023 sb a3,0(a4) -800022b0: fef598e3 bne a1,a5,800022a0 -800022b4: 00008067 ret -800022b8: 00f00793 li a5,15 -800022bc: 02c7e863 bltu a5,a2,800022ec -800022c0: 00050793 mv a5,a0 -800022c4: fff60693 addi a3,a2,-1 -800022c8: 0c060c63 beqz a2,800023a0 -800022cc: 00168693 addi a3,a3,1 -800022d0: 00d786b3 add a3,a5,a3 -800022d4: 0005c703 lbu a4,0(a1) -800022d8: 00178793 addi a5,a5,1 -800022dc: 00158593 addi a1,a1,1 -800022e0: fee78fa3 sb a4,-1(a5) -800022e4: fed798e3 bne a5,a3,800022d4 -800022e8: 00008067 ret -800022ec: 00a5e7b3 or a5,a1,a0 -800022f0: 0037f793 andi a5,a5,3 -800022f4: 0a079063 bnez a5,80002394 -800022f8: ff060893 addi a7,a2,-16 -800022fc: ff08f893 andi a7,a7,-16 -80002300: 01088893 addi a7,a7,16 -80002304: 01150833 add a6,a0,a7 -80002308: 00058713 mv a4,a1 -8000230c: 00050793 mv a5,a0 -80002310: 00072683 lw a3,0(a4) -80002314: 01070713 addi a4,a4,16 -80002318: 01078793 addi a5,a5,16 -8000231c: fed7a823 sw a3,-16(a5) -80002320: ff472683 lw a3,-12(a4) -80002324: fed7aa23 sw a3,-12(a5) -80002328: ff872683 lw a3,-8(a4) -8000232c: fed7ac23 sw a3,-8(a5) -80002330: ffc72683 lw a3,-4(a4) -80002334: fed7ae23 sw a3,-4(a5) -80002338: fcf81ce3 bne a6,a5,80002310 -8000233c: 00c67713 andi a4,a2,12 -80002340: 011585b3 add a1,a1,a7 -80002344: 00f67813 andi a6,a2,15 -80002348: 04070e63 beqz a4,800023a4 -8000234c: 00058713 mv a4,a1 -80002350: 00078893 mv a7,a5 -80002354: 00300e13 li t3,3 -80002358: 00072303 lw t1,0(a4) -8000235c: 00470713 addi a4,a4,4 -80002360: 40e806b3 sub a3,a6,a4 -80002364: 0068a023 sw t1,0(a7) -80002368: 00d586b3 add a3,a1,a3 -8000236c: 00488893 addi a7,a7,4 -80002370: fede64e3 bltu t3,a3,80002358 -80002374: ffc80713 addi a4,a6,-4 -80002378: ffc77713 andi a4,a4,-4 -8000237c: 00470713 addi a4,a4,4 -80002380: 00367613 andi a2,a2,3 -80002384: 00e787b3 add a5,a5,a4 -80002388: 00e585b3 add a1,a1,a4 -8000238c: f39ff06f j 800022c4 -80002390: 00008067 ret -80002394: fff60693 addi a3,a2,-1 -80002398: 00050793 mv a5,a0 -8000239c: f31ff06f j 800022cc -800023a0: 00008067 ret -800023a4: 00080613 mv a2,a6 -800023a8: f1dff06f j 800022c4 - -800023ac <__malloc_lock>: -800023ac: 00008067 ret - -800023b0 <__malloc_unlock>: -800023b0: 00008067 ret - -800023b4 <_realloc_r>: -800023b4: fd010113 addi sp,sp,-48 -800023b8: 03212023 sw s2,32(sp) -800023bc: 02112623 sw ra,44(sp) -800023c0: 02812423 sw s0,40(sp) -800023c4: 02912223 sw s1,36(sp) -800023c8: 01312e23 sw s3,28(sp) -800023cc: 01412c23 sw s4,24(sp) -800023d0: 01512a23 sw s5,20(sp) -800023d4: 01612823 sw s6,16(sp) -800023d8: 01712623 sw s7,12(sp) -800023dc: 01812423 sw s8,8(sp) -800023e0: 00060913 mv s2,a2 -800023e4: 22058263 beqz a1,80002608 <_realloc_r+0x254> -800023e8: 00058413 mv s0,a1 -800023ec: 00050993 mv s3,a0 -800023f0: fbdff0ef jal ra,800023ac <__malloc_lock> -800023f4: 00b90493 addi s1,s2,11 -800023f8: 01600793 li a5,22 -800023fc: 0e97fc63 bgeu a5,s1,800024f4 <_realloc_r+0x140> -80002400: ff84f493 andi s1,s1,-8 -80002404: 00048713 mv a4,s1 -80002408: 0e04cc63 bltz s1,80002500 <_realloc_r+0x14c> -8000240c: 0f24ea63 bltu s1,s2,80002500 <_realloc_r+0x14c> -80002410: ffc42783 lw a5,-4(s0) -80002414: ff840a93 addi s5,s0,-8 -80002418: ffc7fa13 andi s4,a5,-4 -8000241c: 014a8b33 add s6,s5,s4 -80002420: 18ea5a63 bge s4,a4,800025b4 <_realloc_r+0x200> -80002424: cc018b93 addi s7,gp,-832 # 800044c8 <__malloc_av_> -80002428: 008ba603 lw a2,8(s7) -8000242c: 004b2683 lw a3,4(s6) -80002430: 23660e63 beq a2,s6,8000266c <_realloc_r+0x2b8> -80002434: ffe6f613 andi a2,a3,-2 -80002438: 00cb0633 add a2,s6,a2 -8000243c: 00462603 lw a2,4(a2) -80002440: 00167613 andi a2,a2,1 -80002444: 1a061463 bnez a2,800025ec <_realloc_r+0x238> -80002448: ffc6f693 andi a3,a3,-4 -8000244c: 00da0633 add a2,s4,a3 -80002450: 32e65e63 bge a2,a4,8000278c <_realloc_r+0x3d8> -80002454: 0017f793 andi a5,a5,1 -80002458: 02079463 bnez a5,80002480 <_realloc_r+0xcc> -8000245c: ff842c03 lw s8,-8(s0) -80002460: 418a8c33 sub s8,s5,s8 -80002464: 004c2783 lw a5,4(s8) -80002468: ffc7f793 andi a5,a5,-4 -8000246c: 00d786b3 add a3,a5,a3 -80002470: 01468bb3 add s7,a3,s4 -80002474: 34ebda63 bge s7,a4,800027c8 <_realloc_r+0x414> -80002478: 00fa0bb3 add s7,s4,a5 -8000247c: 0cebd263 bge s7,a4,80002540 <_realloc_r+0x18c> -80002480: 00090593 mv a1,s2 -80002484: 00098513 mv a0,s3 -80002488: c7cff0ef jal ra,80001904 <_malloc_r> -8000248c: 00050913 mv s2,a0 -80002490: 04050c63 beqz a0,800024e8 <_realloc_r+0x134> -80002494: ffc42783 lw a5,-4(s0) -80002498: ff850713 addi a4,a0,-8 -8000249c: ffe7f793 andi a5,a5,-2 -800024a0: 00fa87b3 add a5,s5,a5 -800024a4: 30e78263 beq a5,a4,800027a8 <_realloc_r+0x3f4> -800024a8: ffca0613 addi a2,s4,-4 -800024ac: 02400793 li a5,36 -800024b0: 30c7e663 bltu a5,a2,800027bc <_realloc_r+0x408> -800024b4: 01300713 li a4,19 -800024b8: 00042683 lw a3,0(s0) -800024bc: 26c76c63 bltu a4,a2,80002734 <_realloc_r+0x380> -800024c0: 00050793 mv a5,a0 -800024c4: 00040713 mv a4,s0 -800024c8: 00d7a023 sw a3,0(a5) -800024cc: 00472683 lw a3,4(a4) -800024d0: 00d7a223 sw a3,4(a5) -800024d4: 00872703 lw a4,8(a4) -800024d8: 00e7a423 sw a4,8(a5) -800024dc: 00040593 mv a1,s0 -800024e0: 00098513 mv a0,s3 -800024e4: 545000ef jal ra,80003228 <_free_r> -800024e8: 00098513 mv a0,s3 -800024ec: ec5ff0ef jal ra,800023b0 <__malloc_unlock> -800024f0: 01c0006f j 8000250c <_realloc_r+0x158> -800024f4: 01000493 li s1,16 -800024f8: 01000713 li a4,16 -800024fc: f124fae3 bgeu s1,s2,80002410 <_realloc_r+0x5c> -80002500: 00c00793 li a5,12 -80002504: 00f9a023 sw a5,0(s3) -80002508: 00000913 li s2,0 -8000250c: 02c12083 lw ra,44(sp) -80002510: 02812403 lw s0,40(sp) -80002514: 02412483 lw s1,36(sp) -80002518: 01c12983 lw s3,28(sp) -8000251c: 01812a03 lw s4,24(sp) -80002520: 01412a83 lw s5,20(sp) -80002524: 01012b03 lw s6,16(sp) -80002528: 00c12b83 lw s7,12(sp) -8000252c: 00812c03 lw s8,8(sp) -80002530: 00090513 mv a0,s2 -80002534: 02012903 lw s2,32(sp) -80002538: 03010113 addi sp,sp,48 -8000253c: 00008067 ret -80002540: 00cc2783 lw a5,12(s8) -80002544: 008c2703 lw a4,8(s8) -80002548: ffca0613 addi a2,s4,-4 -8000254c: 02400693 li a3,36 -80002550: 00f72623 sw a5,12(a4) -80002554: 00e7a423 sw a4,8(a5) -80002558: 008c0913 addi s2,s8,8 -8000255c: 017c0b33 add s6,s8,s7 -80002560: 2ec6e463 bltu a3,a2,80002848 <_realloc_r+0x494> -80002564: 01300593 li a1,19 -80002568: 00042703 lw a4,0(s0) -8000256c: 00090793 mv a5,s2 -80002570: 02c5f263 bgeu a1,a2,80002594 <_realloc_r+0x1e0> -80002574: 00ec2423 sw a4,8(s8) -80002578: 00442703 lw a4,4(s0) -8000257c: 01b00793 li a5,27 -80002580: 00ec2623 sw a4,12(s8) -80002584: 30c7e263 bltu a5,a2,80002888 <_realloc_r+0x4d4> -80002588: 00842703 lw a4,8(s0) -8000258c: 010c0793 addi a5,s8,16 -80002590: 00840413 addi s0,s0,8 -80002594: 00e7a023 sw a4,0(a5) -80002598: 00442703 lw a4,4(s0) -8000259c: 000b8a13 mv s4,s7 -800025a0: 000c0a93 mv s5,s8 -800025a4: 00e7a223 sw a4,4(a5) -800025a8: 00842703 lw a4,8(s0) -800025ac: 00090413 mv s0,s2 -800025b0: 00e7a423 sw a4,8(a5) -800025b4: 004aa783 lw a5,4(s5) -800025b8: 409a0733 sub a4,s4,s1 -800025bc: 00f00693 li a3,15 -800025c0: 0017f793 andi a5,a5,1 -800025c4: 06e6ec63 bltu a3,a4,8000263c <_realloc_r+0x288> -800025c8: 00fa67b3 or a5,s4,a5 -800025cc: 00faa223 sw a5,4(s5) -800025d0: 004b2783 lw a5,4(s6) -800025d4: 0017e793 ori a5,a5,1 -800025d8: 00fb2223 sw a5,4(s6) -800025dc: 00098513 mv a0,s3 -800025e0: dd1ff0ef jal ra,800023b0 <__malloc_unlock> -800025e4: 00040913 mv s2,s0 -800025e8: f25ff06f j 8000250c <_realloc_r+0x158> -800025ec: 0017f793 andi a5,a5,1 -800025f0: e80798e3 bnez a5,80002480 <_realloc_r+0xcc> -800025f4: ff842c03 lw s8,-8(s0) -800025f8: 418a8c33 sub s8,s5,s8 -800025fc: 004c2783 lw a5,4(s8) -80002600: ffc7f793 andi a5,a5,-4 -80002604: e75ff06f j 80002478 <_realloc_r+0xc4> -80002608: 02812403 lw s0,40(sp) -8000260c: 02c12083 lw ra,44(sp) -80002610: 02412483 lw s1,36(sp) -80002614: 02012903 lw s2,32(sp) -80002618: 01c12983 lw s3,28(sp) -8000261c: 01812a03 lw s4,24(sp) -80002620: 01412a83 lw s5,20(sp) -80002624: 01012b03 lw s6,16(sp) -80002628: 00c12b83 lw s7,12(sp) -8000262c: 00812c03 lw s8,8(sp) -80002630: 00060593 mv a1,a2 -80002634: 03010113 addi sp,sp,48 -80002638: accff06f j 80001904 <_malloc_r> -8000263c: 0097e7b3 or a5,a5,s1 -80002640: 00faa223 sw a5,4(s5) -80002644: 009a85b3 add a1,s5,s1 -80002648: 00176713 ori a4,a4,1 -8000264c: 00e5a223 sw a4,4(a1) -80002650: 004b2783 lw a5,4(s6) -80002654: 00858593 addi a1,a1,8 -80002658: 00098513 mv a0,s3 -8000265c: 0017e793 ori a5,a5,1 -80002660: 00fb2223 sw a5,4(s6) -80002664: 3c5000ef jal ra,80003228 <_free_r> -80002668: f75ff06f j 800025dc <_realloc_r+0x228> -8000266c: ffc6f693 andi a3,a3,-4 -80002670: 00da0633 add a2,s4,a3 -80002674: 01048593 addi a1,s1,16 -80002678: 0eb65063 bge a2,a1,80002758 <_realloc_r+0x3a4> -8000267c: 0017f793 andi a5,a5,1 -80002680: e00790e3 bnez a5,80002480 <_realloc_r+0xcc> -80002684: ff842c03 lw s8,-8(s0) -80002688: 418a8c33 sub s8,s5,s8 -8000268c: 004c2783 lw a5,4(s8) -80002690: ffc7f793 andi a5,a5,-4 -80002694: 00d786b3 add a3,a5,a3 -80002698: 01468b33 add s6,a3,s4 -8000269c: dcbb4ee3 blt s6,a1,80002478 <_realloc_r+0xc4> -800026a0: 00cc2783 lw a5,12(s8) -800026a4: 008c2703 lw a4,8(s8) -800026a8: ffca0613 addi a2,s4,-4 -800026ac: 02400693 li a3,36 -800026b0: 00f72623 sw a5,12(a4) -800026b4: 00e7a423 sw a4,8(a5) -800026b8: 008c0913 addi s2,s8,8 -800026bc: 20c6ee63 bltu a3,a2,800028d8 <_realloc_r+0x524> -800026c0: 01300593 li a1,19 -800026c4: 00042703 lw a4,0(s0) -800026c8: 00090793 mv a5,s2 -800026cc: 02c5f263 bgeu a1,a2,800026f0 <_realloc_r+0x33c> -800026d0: 00ec2423 sw a4,8(s8) -800026d4: 00442703 lw a4,4(s0) -800026d8: 01b00793 li a5,27 -800026dc: 00ec2623 sw a4,12(s8) -800026e0: 20c7e463 bltu a5,a2,800028e8 <_realloc_r+0x534> -800026e4: 00842703 lw a4,8(s0) -800026e8: 010c0793 addi a5,s8,16 -800026ec: 00840413 addi s0,s0,8 -800026f0: 00e7a023 sw a4,0(a5) -800026f4: 00442703 lw a4,4(s0) -800026f8: 00e7a223 sw a4,4(a5) -800026fc: 00842703 lw a4,8(s0) -80002700: 00e7a423 sw a4,8(a5) -80002704: 009c0733 add a4,s8,s1 -80002708: 409b07b3 sub a5,s6,s1 -8000270c: 00eba423 sw a4,8(s7) -80002710: 0017e793 ori a5,a5,1 -80002714: 00f72223 sw a5,4(a4) -80002718: 004c2783 lw a5,4(s8) -8000271c: 00098513 mv a0,s3 -80002720: 0017f793 andi a5,a5,1 -80002724: 0097e4b3 or s1,a5,s1 -80002728: 009c2223 sw s1,4(s8) -8000272c: c85ff0ef jal ra,800023b0 <__malloc_unlock> -80002730: dddff06f j 8000250c <_realloc_r+0x158> -80002734: 00d52023 sw a3,0(a0) -80002738: 00442683 lw a3,4(s0) -8000273c: 01b00713 li a4,27 -80002740: 00d52223 sw a3,4(a0) -80002744: 12c76063 bltu a4,a2,80002864 <_realloc_r+0x4b0> -80002748: 00842683 lw a3,8(s0) -8000274c: 00840713 addi a4,s0,8 -80002750: 00850793 addi a5,a0,8 -80002754: d75ff06f j 800024c8 <_realloc_r+0x114> -80002758: 009a8ab3 add s5,s5,s1 -8000275c: 409607b3 sub a5,a2,s1 -80002760: 015ba423 sw s5,8(s7) -80002764: 0017e793 ori a5,a5,1 -80002768: 00faa223 sw a5,4(s5) -8000276c: ffc42783 lw a5,-4(s0) -80002770: 00098513 mv a0,s3 -80002774: 00040913 mv s2,s0 -80002778: 0017f793 andi a5,a5,1 -8000277c: 0097e4b3 or s1,a5,s1 -80002780: fe942e23 sw s1,-4(s0) -80002784: c2dff0ef jal ra,800023b0 <__malloc_unlock> -80002788: d85ff06f j 8000250c <_realloc_r+0x158> -8000278c: 00cb2783 lw a5,12(s6) -80002790: 008b2703 lw a4,8(s6) -80002794: 00060a13 mv s4,a2 -80002798: 00ca8b33 add s6,s5,a2 -8000279c: 00f72623 sw a5,12(a4) -800027a0: 00e7a423 sw a4,8(a5) -800027a4: e11ff06f j 800025b4 <_realloc_r+0x200> -800027a8: ffc52783 lw a5,-4(a0) -800027ac: ffc7f793 andi a5,a5,-4 -800027b0: 00fa0a33 add s4,s4,a5 -800027b4: 014a8b33 add s6,s5,s4 -800027b8: dfdff06f j 800025b4 <_realloc_r+0x200> -800027bc: 00040593 mv a1,s0 -800027c0: acdff0ef jal ra,8000228c -800027c4: d19ff06f j 800024dc <_realloc_r+0x128> -800027c8: 00cb2783 lw a5,12(s6) -800027cc: 008b2703 lw a4,8(s6) -800027d0: ffca0613 addi a2,s4,-4 -800027d4: 02400693 li a3,36 -800027d8: 00f72623 sw a5,12(a4) -800027dc: 00e7a423 sw a4,8(a5) -800027e0: 008c2703 lw a4,8(s8) -800027e4: 00cc2783 lw a5,12(s8) -800027e8: 008c0913 addi s2,s8,8 -800027ec: 017c0b33 add s6,s8,s7 -800027f0: 00f72623 sw a5,12(a4) -800027f4: 00e7a423 sw a4,8(a5) -800027f8: 04c6e863 bltu a3,a2,80002848 <_realloc_r+0x494> -800027fc: 01300693 li a3,19 -80002800: 00042703 lw a4,0(s0) -80002804: 00090793 mv a5,s2 -80002808: d8c6f6e3 bgeu a3,a2,80002594 <_realloc_r+0x1e0> -8000280c: 00ec2423 sw a4,8(s8) -80002810: 00442703 lw a4,4(s0) -80002814: 01b00793 li a5,27 -80002818: 00ec2623 sw a4,12(s8) -8000281c: 00842703 lw a4,8(s0) -80002820: d6c7f6e3 bgeu a5,a2,8000258c <_realloc_r+0x1d8> -80002824: 00ec2823 sw a4,16(s8) -80002828: 00c42703 lw a4,12(s0) -8000282c: 02400793 li a5,36 -80002830: 00ec2a23 sw a4,20(s8) -80002834: 01042703 lw a4,16(s0) -80002838: 06f60463 beq a2,a5,800028a0 <_realloc_r+0x4ec> -8000283c: 018c0793 addi a5,s8,24 -80002840: 01040413 addi s0,s0,16 -80002844: d51ff06f j 80002594 <_realloc_r+0x1e0> -80002848: 00040593 mv a1,s0 -8000284c: 00090513 mv a0,s2 -80002850: a3dff0ef jal ra,8000228c -80002854: 00090413 mv s0,s2 -80002858: 000b8a13 mv s4,s7 -8000285c: 000c0a93 mv s5,s8 -80002860: d55ff06f j 800025b4 <_realloc_r+0x200> -80002864: 00842703 lw a4,8(s0) -80002868: 00e52423 sw a4,8(a0) -8000286c: 00c42703 lw a4,12(s0) -80002870: 00e52623 sw a4,12(a0) -80002874: 01042683 lw a3,16(s0) -80002878: 04f60263 beq a2,a5,800028bc <_realloc_r+0x508> -8000287c: 01040713 addi a4,s0,16 -80002880: 01050793 addi a5,a0,16 -80002884: c45ff06f j 800024c8 <_realloc_r+0x114> -80002888: 00842783 lw a5,8(s0) -8000288c: 00fc2823 sw a5,16(s8) -80002890: 00c42783 lw a5,12(s0) -80002894: 00fc2a23 sw a5,20(s8) -80002898: 01042703 lw a4,16(s0) -8000289c: fad610e3 bne a2,a3,8000283c <_realloc_r+0x488> -800028a0: 00ec2c23 sw a4,24(s8) -800028a4: 01442703 lw a4,20(s0) -800028a8: 020c0793 addi a5,s8,32 -800028ac: 01840413 addi s0,s0,24 -800028b0: 00ec2e23 sw a4,28(s8) -800028b4: 00042703 lw a4,0(s0) -800028b8: cddff06f j 80002594 <_realloc_r+0x1e0> -800028bc: 00d52823 sw a3,16(a0) -800028c0: 01442683 lw a3,20(s0) -800028c4: 01840713 addi a4,s0,24 -800028c8: 01850793 addi a5,a0,24 -800028cc: 00d52a23 sw a3,20(a0) -800028d0: 01842683 lw a3,24(s0) -800028d4: bf5ff06f j 800024c8 <_realloc_r+0x114> -800028d8: 00040593 mv a1,s0 -800028dc: 00090513 mv a0,s2 -800028e0: 9adff0ef jal ra,8000228c -800028e4: e21ff06f j 80002704 <_realloc_r+0x350> -800028e8: 00842783 lw a5,8(s0) -800028ec: 00fc2823 sw a5,16(s8) -800028f0: 00c42783 lw a5,12(s0) -800028f4: 00fc2a23 sw a5,20(s8) -800028f8: 01042703 lw a4,16(s0) -800028fc: 00d60863 beq a2,a3,8000290c <_realloc_r+0x558> -80002900: 018c0793 addi a5,s8,24 -80002904: 01040413 addi s0,s0,16 -80002908: de9ff06f j 800026f0 <_realloc_r+0x33c> -8000290c: 00ec2c23 sw a4,24(s8) -80002910: 01442703 lw a4,20(s0) -80002914: 020c0793 addi a5,s8,32 -80002918: 01840413 addi s0,s0,24 -8000291c: 00ec2e23 sw a4,28(s8) -80002920: 00042703 lw a4,0(s0) -80002924: dcdff06f j 800026f0 <_realloc_r+0x33c> - -80002928 <_sbrk_r>: -80002928: ff010113 addi sp,sp,-16 -8000292c: 00812423 sw s0,8(sp) -80002930: 00912223 sw s1,4(sp) -80002934: 00050413 mv s0,a0 -80002938: 00058513 mv a0,a1 -8000293c: 00112623 sw ra,12(sp) -80002940: 1801a623 sw zero,396(gp) # 80004994 -80002944: 10c010ef jal ra,80003a50 <_sbrk> -80002948: fff00793 li a5,-1 -8000294c: 00f50c63 beq a0,a5,80002964 <_sbrk_r+0x3c> -80002950: 00c12083 lw ra,12(sp) -80002954: 00812403 lw s0,8(sp) -80002958: 00412483 lw s1,4(sp) -8000295c: 01010113 addi sp,sp,16 -80002960: 00008067 ret -80002964: 18c1a783 lw a5,396(gp) # 80004994 -80002968: fe0784e3 beqz a5,80002950 <_sbrk_r+0x28> -8000296c: 00c12083 lw ra,12(sp) -80002970: 00f42023 sw a5,0(s0) -80002974: 00812403 lw s0,8(sp) -80002978: 00412483 lw s1,4(sp) -8000297c: 01010113 addi sp,sp,16 -80002980: 00008067 ret - -80002984 <__sread>: -80002984: ff010113 addi sp,sp,-16 -80002988: 00812423 sw s0,8(sp) -8000298c: 00058413 mv s0,a1 -80002990: 00e59583 lh a1,14(a1) -80002994: 00112623 sw ra,12(sp) -80002998: 5e9000ef jal ra,80003780 <_read_r> -8000299c: 02054063 bltz a0,800029bc <__sread+0x38> -800029a0: 05042783 lw a5,80(s0) -800029a4: 00c12083 lw ra,12(sp) -800029a8: 00a787b3 add a5,a5,a0 -800029ac: 04f42823 sw a5,80(s0) -800029b0: 00812403 lw s0,8(sp) -800029b4: 01010113 addi sp,sp,16 -800029b8: 00008067 ret -800029bc: 00c45783 lhu a5,12(s0) -800029c0: fffff737 lui a4,0xfffff -800029c4: fff70713 addi a4,a4,-1 # ffffefff <__BSS_END__+0x7fffa667> -800029c8: 00e7f7b3 and a5,a5,a4 -800029cc: 00c12083 lw ra,12(sp) -800029d0: 00f41623 sh a5,12(s0) -800029d4: 00812403 lw s0,8(sp) -800029d8: 01010113 addi sp,sp,16 -800029dc: 00008067 ret - -800029e0 <__seofread>: -800029e0: 00000513 li a0,0 -800029e4: 00008067 ret - -800029e8 <__swrite>: -800029e8: 00c59783 lh a5,12(a1) -800029ec: fe010113 addi sp,sp,-32 -800029f0: 00812c23 sw s0,24(sp) -800029f4: 00912a23 sw s1,20(sp) -800029f8: 01212823 sw s2,16(sp) -800029fc: 01312623 sw s3,12(sp) -80002a00: 00112e23 sw ra,28(sp) -80002a04: 1007f713 andi a4,a5,256 -80002a08: 00058413 mv s0,a1 -80002a0c: 00050493 mv s1,a0 -80002a10: 00e59583 lh a1,14(a1) -80002a14: 00060913 mv s2,a2 -80002a18: 00068993 mv s3,a3 -80002a1c: 02071e63 bnez a4,80002a58 <__swrite+0x70> -80002a20: fffff737 lui a4,0xfffff -80002a24: fff70713 addi a4,a4,-1 # ffffefff <__BSS_END__+0x7fffa667> -80002a28: 00e7f7b3 and a5,a5,a4 -80002a2c: 00f41623 sh a5,12(s0) -80002a30: 01812403 lw s0,24(sp) -80002a34: 01c12083 lw ra,28(sp) -80002a38: 00098693 mv a3,s3 -80002a3c: 00090613 mv a2,s2 -80002a40: 00c12983 lw s3,12(sp) -80002a44: 01012903 lw s2,16(sp) -80002a48: 00048513 mv a0,s1 -80002a4c: 01412483 lw s1,20(sp) -80002a50: 02010113 addi sp,sp,32 -80002a54: 08c0006f j 80002ae0 <_write_r> -80002a58: 00200693 li a3,2 -80002a5c: 00000613 li a2,0 -80002a60: 2c9000ef jal ra,80003528 <_lseek_r> -80002a64: 00c41783 lh a5,12(s0) -80002a68: 00e41583 lh a1,14(s0) -80002a6c: fb5ff06f j 80002a20 <__swrite+0x38> - -80002a70 <__sseek>: -80002a70: ff010113 addi sp,sp,-16 -80002a74: 00812423 sw s0,8(sp) -80002a78: 00058413 mv s0,a1 -80002a7c: 00e59583 lh a1,14(a1) -80002a80: 00112623 sw ra,12(sp) -80002a84: 2a5000ef jal ra,80003528 <_lseek_r> -80002a88: fff00793 li a5,-1 -80002a8c: 02f50463 beq a0,a5,80002ab4 <__sseek+0x44> -80002a90: 00c45783 lhu a5,12(s0) -80002a94: 00001737 lui a4,0x1 -80002a98: 00c12083 lw ra,12(sp) -80002a9c: 00e7e7b3 or a5,a5,a4 -80002aa0: 04a42823 sw a0,80(s0) -80002aa4: 00f41623 sh a5,12(s0) -80002aa8: 00812403 lw s0,8(sp) -80002aac: 01010113 addi sp,sp,16 -80002ab0: 00008067 ret -80002ab4: 00c45783 lhu a5,12(s0) -80002ab8: fffff737 lui a4,0xfffff -80002abc: fff70713 addi a4,a4,-1 # ffffefff <__BSS_END__+0x7fffa667> -80002ac0: 00e7f7b3 and a5,a5,a4 -80002ac4: 00c12083 lw ra,12(sp) -80002ac8: 00f41623 sh a5,12(s0) -80002acc: 00812403 lw s0,8(sp) -80002ad0: 01010113 addi sp,sp,16 -80002ad4: 00008067 ret - -80002ad8 <__sclose>: -80002ad8: 00e59583 lh a1,14(a1) -80002adc: 1c80006f j 80002ca4 <_close_r> - -80002ae0 <_write_r>: -80002ae0: ff010113 addi sp,sp,-16 -80002ae4: 00058713 mv a4,a1 -80002ae8: 00812423 sw s0,8(sp) -80002aec: 00912223 sw s1,4(sp) -80002af0: 00060593 mv a1,a2 -80002af4: 00050413 mv s0,a0 -80002af8: 00068613 mv a2,a3 -80002afc: 00070513 mv a0,a4 -80002b00: 00112623 sw ra,12(sp) -80002b04: 1801a623 sw zero,396(gp) # 80004994 -80002b08: 7e5000ef jal ra,80003aec <_write> -80002b0c: fff00793 li a5,-1 -80002b10: 00f50c63 beq a0,a5,80002b28 <_write_r+0x48> -80002b14: 00c12083 lw ra,12(sp) -80002b18: 00812403 lw s0,8(sp) -80002b1c: 00412483 lw s1,4(sp) -80002b20: 01010113 addi sp,sp,16 -80002b24: 00008067 ret -80002b28: 18c1a783 lw a5,396(gp) # 80004994 -80002b2c: fe0784e3 beqz a5,80002b14 <_write_r+0x34> -80002b30: 00c12083 lw ra,12(sp) -80002b34: 00f42023 sw a5,0(s0) -80002b38: 00812403 lw s0,8(sp) -80002b3c: 00412483 lw s1,4(sp) -80002b40: 01010113 addi sp,sp,16 -80002b44: 00008067 ret - -80002b48 <__swsetup_r>: -80002b48: 0cc1a783 lw a5,204(gp) # 800048d4 <_impure_ptr> -80002b4c: ff010113 addi sp,sp,-16 -80002b50: 00812423 sw s0,8(sp) -80002b54: 00912223 sw s1,4(sp) -80002b58: 00112623 sw ra,12(sp) -80002b5c: 00050493 mv s1,a0 -80002b60: 00058413 mv s0,a1 -80002b64: 00078663 beqz a5,80002b70 <__swsetup_r+0x28> -80002b68: 0387a703 lw a4,56(a5) -80002b6c: 0e070063 beqz a4,80002c4c <__swsetup_r+0x104> -80002b70: 00c41703 lh a4,12(s0) -80002b74: 01071793 slli a5,a4,0x10 -80002b78: 00877693 andi a3,a4,8 -80002b7c: 0107d793 srli a5,a5,0x10 -80002b80: 04068063 beqz a3,80002bc0 <__swsetup_r+0x78> -80002b84: 01042683 lw a3,16(s0) -80002b88: 06068063 beqz a3,80002be8 <__swsetup_r+0xa0> -80002b8c: 0017f613 andi a2,a5,1 -80002b90: 08060463 beqz a2,80002c18 <__swsetup_r+0xd0> -80002b94: 01442603 lw a2,20(s0) -80002b98: 00042423 sw zero,8(s0) -80002b9c: 00000513 li a0,0 -80002ba0: 40c00633 neg a2,a2 -80002ba4: 00c42c23 sw a2,24(s0) -80002ba8: 08068663 beqz a3,80002c34 <__swsetup_r+0xec> -80002bac: 00c12083 lw ra,12(sp) -80002bb0: 00812403 lw s0,8(sp) -80002bb4: 00412483 lw s1,4(sp) -80002bb8: 01010113 addi sp,sp,16 -80002bbc: 00008067 ret -80002bc0: 0107f693 andi a3,a5,16 -80002bc4: 0c068463 beqz a3,80002c8c <__swsetup_r+0x144> -80002bc8: 0047f793 andi a5,a5,4 -80002bcc: 08079663 bnez a5,80002c58 <__swsetup_r+0x110> -80002bd0: 01042683 lw a3,16(s0) -80002bd4: 00876713 ori a4,a4,8 -80002bd8: 01071793 slli a5,a4,0x10 -80002bdc: 00e41623 sh a4,12(s0) -80002be0: 0107d793 srli a5,a5,0x10 -80002be4: fa0694e3 bnez a3,80002b8c <__swsetup_r+0x44> -80002be8: 2807f613 andi a2,a5,640 -80002bec: 20000593 li a1,512 -80002bf0: f8b60ee3 beq a2,a1,80002b8c <__swsetup_r+0x44> -80002bf4: 00040593 mv a1,s0 -80002bf8: 00048513 mv a0,s1 -80002bfc: 265000ef jal ra,80003660 <__smakebuf_r> -80002c00: 00c41703 lh a4,12(s0) -80002c04: 01042683 lw a3,16(s0) -80002c08: 01071793 slli a5,a4,0x10 -80002c0c: 0107d793 srli a5,a5,0x10 -80002c10: 0017f613 andi a2,a5,1 -80002c14: f80610e3 bnez a2,80002b94 <__swsetup_r+0x4c> -80002c18: 0027f613 andi a2,a5,2 -80002c1c: 00000593 li a1,0 -80002c20: 00061463 bnez a2,80002c28 <__swsetup_r+0xe0> -80002c24: 01442583 lw a1,20(s0) -80002c28: 00b42423 sw a1,8(s0) -80002c2c: 00000513 li a0,0 -80002c30: f6069ee3 bnez a3,80002bac <__swsetup_r+0x64> -80002c34: 0807f793 andi a5,a5,128 -80002c38: f6078ae3 beqz a5,80002bac <__swsetup_r+0x64> -80002c3c: 04076713 ori a4,a4,64 -80002c40: 00e41623 sh a4,12(s0) -80002c44: fff00513 li a0,-1 -80002c48: f65ff06f j 80002bac <__swsetup_r+0x64> -80002c4c: 00078513 mv a0,a5 -80002c50: e74fe0ef jal ra,800012c4 <__sinit> -80002c54: f1dff06f j 80002b70 <__swsetup_r+0x28> -80002c58: 03042583 lw a1,48(s0) -80002c5c: 00058e63 beqz a1,80002c78 <__swsetup_r+0x130> -80002c60: 04040793 addi a5,s0,64 -80002c64: 00f58863 beq a1,a5,80002c74 <__swsetup_r+0x12c> -80002c68: 00048513 mv a0,s1 -80002c6c: 5bc000ef jal ra,80003228 <_free_r> -80002c70: 00c41703 lh a4,12(s0) -80002c74: 02042823 sw zero,48(s0) -80002c78: 01042683 lw a3,16(s0) -80002c7c: fdb77713 andi a4,a4,-37 -80002c80: 00042223 sw zero,4(s0) -80002c84: 00d42023 sw a3,0(s0) -80002c88: f4dff06f j 80002bd4 <__swsetup_r+0x8c> -80002c8c: 00900793 li a5,9 -80002c90: 00f4a023 sw a5,0(s1) -80002c94: 04076713 ori a4,a4,64 -80002c98: 00e41623 sh a4,12(s0) -80002c9c: fff00513 li a0,-1 -80002ca0: f0dff06f j 80002bac <__swsetup_r+0x64> - -80002ca4 <_close_r>: -80002ca4: ff010113 addi sp,sp,-16 -80002ca8: 00812423 sw s0,8(sp) -80002cac: 00912223 sw s1,4(sp) -80002cb0: 00050413 mv s0,a0 -80002cb4: 00058513 mv a0,a1 -80002cb8: 00112623 sw ra,12(sp) -80002cbc: 1801a623 sw zero,396(gp) # 80004994 -80002cc0: 3e9000ef jal ra,800038a8 <_close> -80002cc4: fff00793 li a5,-1 -80002cc8: 00f50c63 beq a0,a5,80002ce0 <_close_r+0x3c> -80002ccc: 00c12083 lw ra,12(sp) -80002cd0: 00812403 lw s0,8(sp) -80002cd4: 00412483 lw s1,4(sp) -80002cd8: 01010113 addi sp,sp,16 -80002cdc: 00008067 ret -80002ce0: 18c1a783 lw a5,396(gp) # 80004994 -80002ce4: fe0784e3 beqz a5,80002ccc <_close_r+0x28> -80002ce8: 00c12083 lw ra,12(sp) -80002cec: 00f42023 sw a5,0(s0) -80002cf0: 00812403 lw s0,8(sp) -80002cf4: 00412483 lw s1,4(sp) -80002cf8: 01010113 addi sp,sp,16 -80002cfc: 00008067 ret - -80002d00 <_fclose_r>: -80002d00: ff010113 addi sp,sp,-16 -80002d04: 00112623 sw ra,12(sp) -80002d08: 00812423 sw s0,8(sp) -80002d0c: 00912223 sw s1,4(sp) -80002d10: 01212023 sw s2,0(sp) -80002d14: 02058063 beqz a1,80002d34 <_fclose_r+0x34> -80002d18: 00058413 mv s0,a1 -80002d1c: 00050493 mv s1,a0 -80002d20: 00050663 beqz a0,80002d2c <_fclose_r+0x2c> -80002d24: 03852783 lw a5,56(a0) -80002d28: 0a078c63 beqz a5,80002de0 <_fclose_r+0xe0> -80002d2c: 00c41783 lh a5,12(s0) -80002d30: 02079263 bnez a5,80002d54 <_fclose_r+0x54> -80002d34: 00c12083 lw ra,12(sp) -80002d38: 00812403 lw s0,8(sp) -80002d3c: 00000913 li s2,0 -80002d40: 00412483 lw s1,4(sp) -80002d44: 00090513 mv a0,s2 -80002d48: 00012903 lw s2,0(sp) -80002d4c: 01010113 addi sp,sp,16 -80002d50: 00008067 ret -80002d54: 00040593 mv a1,s0 -80002d58: 00048513 mv a0,s1 -80002d5c: 0c0000ef jal ra,80002e1c <__sflush_r> -80002d60: 02c42783 lw a5,44(s0) -80002d64: 00050913 mv s2,a0 -80002d68: 00078a63 beqz a5,80002d7c <_fclose_r+0x7c> -80002d6c: 01c42583 lw a1,28(s0) -80002d70: 00048513 mv a0,s1 -80002d74: 000780e7 jalr a5 -80002d78: 06054c63 bltz a0,80002df0 <_fclose_r+0xf0> -80002d7c: 00c45783 lhu a5,12(s0) -80002d80: 0807f793 andi a5,a5,128 -80002d84: 06079e63 bnez a5,80002e00 <_fclose_r+0x100> -80002d88: 03042583 lw a1,48(s0) -80002d8c: 00058c63 beqz a1,80002da4 <_fclose_r+0xa4> -80002d90: 04040793 addi a5,s0,64 -80002d94: 00f58663 beq a1,a5,80002da0 <_fclose_r+0xa0> -80002d98: 00048513 mv a0,s1 -80002d9c: 48c000ef jal ra,80003228 <_free_r> -80002da0: 02042823 sw zero,48(s0) -80002da4: 04442583 lw a1,68(s0) -80002da8: 00058863 beqz a1,80002db8 <_fclose_r+0xb8> -80002dac: 00048513 mv a0,s1 -80002db0: 478000ef jal ra,80003228 <_free_r> -80002db4: 04042223 sw zero,68(s0) -80002db8: d1cfe0ef jal ra,800012d4 <__sfp_lock_acquire> -80002dbc: 00041623 sh zero,12(s0) -80002dc0: d18fe0ef jal ra,800012d8 <__sfp_lock_release> -80002dc4: 00c12083 lw ra,12(sp) -80002dc8: 00812403 lw s0,8(sp) -80002dcc: 00412483 lw s1,4(sp) -80002dd0: 00090513 mv a0,s2 -80002dd4: 00012903 lw s2,0(sp) -80002dd8: 01010113 addi sp,sp,16 -80002ddc: 00008067 ret -80002de0: ce4fe0ef jal ra,800012c4 <__sinit> -80002de4: 00c41783 lh a5,12(s0) -80002de8: f40786e3 beqz a5,80002d34 <_fclose_r+0x34> -80002dec: f69ff06f j 80002d54 <_fclose_r+0x54> -80002df0: 00c45783 lhu a5,12(s0) -80002df4: fff00913 li s2,-1 -80002df8: 0807f793 andi a5,a5,128 -80002dfc: f80786e3 beqz a5,80002d88 <_fclose_r+0x88> -80002e00: 01042583 lw a1,16(s0) -80002e04: 00048513 mv a0,s1 -80002e08: 420000ef jal ra,80003228 <_free_r> -80002e0c: f7dff06f j 80002d88 <_fclose_r+0x88> - -80002e10 : -80002e10: 00050593 mv a1,a0 -80002e14: 0cc1a503 lw a0,204(gp) # 800048d4 <_impure_ptr> -80002e18: ee9ff06f j 80002d00 <_fclose_r> - -80002e1c <__sflush_r>: -80002e1c: 00c59783 lh a5,12(a1) -80002e20: fe010113 addi sp,sp,-32 -80002e24: 00812c23 sw s0,24(sp) -80002e28: 01312623 sw s3,12(sp) -80002e2c: 00112e23 sw ra,28(sp) -80002e30: 00912a23 sw s1,20(sp) -80002e34: 01212823 sw s2,16(sp) -80002e38: 0087f693 andi a3,a5,8 -80002e3c: 00058413 mv s0,a1 -80002e40: 00050993 mv s3,a0 -80002e44: 10069a63 bnez a3,80002f58 <__sflush_r+0x13c> -80002e48: 00001737 lui a4,0x1 -80002e4c: 80070713 addi a4,a4,-2048 # 800 <_start-0x7ffff800> -80002e50: 0045a683 lw a3,4(a1) -80002e54: 00e7e7b3 or a5,a5,a4 -80002e58: 00f59623 sh a5,12(a1) -80002e5c: 18d05463 blez a3,80002fe4 <__sflush_r+0x1c8> -80002e60: 02842703 lw a4,40(s0) -80002e64: 0c070a63 beqz a4,80002f38 <__sflush_r+0x11c> -80002e68: 0009a483 lw s1,0(s3) -80002e6c: 01079693 slli a3,a5,0x10 -80002e70: 0009a023 sw zero,0(s3) -80002e74: 01379613 slli a2,a5,0x13 -80002e78: 01c42583 lw a1,28(s0) -80002e7c: 0106d693 srli a3,a3,0x10 -80002e80: 16064863 bltz a2,80002ff0 <__sflush_r+0x1d4> -80002e84: 00100693 li a3,1 -80002e88: 00000613 li a2,0 -80002e8c: 00098513 mv a0,s3 -80002e90: 000700e7 jalr a4 -80002e94: fff00793 li a5,-1 -80002e98: 18f50c63 beq a0,a5,80003030 <__sflush_r+0x214> -80002e9c: 00c45683 lhu a3,12(s0) -80002ea0: 02842703 lw a4,40(s0) -80002ea4: 01c42583 lw a1,28(s0) -80002ea8: 0046f693 andi a3,a3,4 -80002eac: 00068e63 beqz a3,80002ec8 <__sflush_r+0xac> -80002eb0: 00442683 lw a3,4(s0) -80002eb4: 03042783 lw a5,48(s0) -80002eb8: 40d50533 sub a0,a0,a3 -80002ebc: 00078663 beqz a5,80002ec8 <__sflush_r+0xac> -80002ec0: 03c42783 lw a5,60(s0) -80002ec4: 40f50533 sub a0,a0,a5 -80002ec8: 00050613 mv a2,a0 -80002ecc: 00000693 li a3,0 -80002ed0: 00098513 mv a0,s3 -80002ed4: 000700e7 jalr a4 -80002ed8: fff00793 li a5,-1 -80002edc: 10f51e63 bne a0,a5,80002ff8 <__sflush_r+0x1dc> -80002ee0: 0009a703 lw a4,0(s3) -80002ee4: 00c41783 lh a5,12(s0) -80002ee8: 16070863 beqz a4,80003058 <__sflush_r+0x23c> -80002eec: 01d00693 li a3,29 -80002ef0: 00d70663 beq a4,a3,80002efc <__sflush_r+0xe0> -80002ef4: 01600693 li a3,22 -80002ef8: 0cd71463 bne a4,a3,80002fc0 <__sflush_r+0x1a4> -80002efc: 01042683 lw a3,16(s0) -80002f00: fffff737 lui a4,0xfffff -80002f04: 7ff70713 addi a4,a4,2047 # fffff7ff <__BSS_END__+0x7fffae67> -80002f08: 00e7f7b3 and a5,a5,a4 -80002f0c: 00f41623 sh a5,12(s0) -80002f10: 00042223 sw zero,4(s0) -80002f14: 00d42023 sw a3,0(s0) -80002f18: 03042583 lw a1,48(s0) -80002f1c: 0099a023 sw s1,0(s3) -80002f20: 00058c63 beqz a1,80002f38 <__sflush_r+0x11c> -80002f24: 04040793 addi a5,s0,64 -80002f28: 00f58663 beq a1,a5,80002f34 <__sflush_r+0x118> -80002f2c: 00098513 mv a0,s3 -80002f30: 2f8000ef jal ra,80003228 <_free_r> -80002f34: 02042823 sw zero,48(s0) -80002f38: 00000513 li a0,0 -80002f3c: 01c12083 lw ra,28(sp) -80002f40: 01812403 lw s0,24(sp) -80002f44: 01412483 lw s1,20(sp) -80002f48: 01012903 lw s2,16(sp) -80002f4c: 00c12983 lw s3,12(sp) -80002f50: 02010113 addi sp,sp,32 -80002f54: 00008067 ret -80002f58: 0105a903 lw s2,16(a1) -80002f5c: fc090ee3 beqz s2,80002f38 <__sflush_r+0x11c> -80002f60: 0005a483 lw s1,0(a1) -80002f64: 01079713 slli a4,a5,0x10 -80002f68: 01075713 srli a4,a4,0x10 -80002f6c: 00377713 andi a4,a4,3 -80002f70: 0125a023 sw s2,0(a1) -80002f74: 412484b3 sub s1,s1,s2 -80002f78: 00000793 li a5,0 -80002f7c: 00071463 bnez a4,80002f84 <__sflush_r+0x168> -80002f80: 0145a783 lw a5,20(a1) -80002f84: 00f42423 sw a5,8(s0) -80002f88: 00904863 bgtz s1,80002f98 <__sflush_r+0x17c> -80002f8c: fadff06f j 80002f38 <__sflush_r+0x11c> -80002f90: 00a90933 add s2,s2,a0 -80002f94: fa9052e3 blez s1,80002f38 <__sflush_r+0x11c> -80002f98: 02442783 lw a5,36(s0) -80002f9c: 01c42583 lw a1,28(s0) -80002fa0: 00048693 mv a3,s1 -80002fa4: 00090613 mv a2,s2 -80002fa8: 00098513 mv a0,s3 -80002fac: 000780e7 jalr a5 -80002fb0: 40a484b3 sub s1,s1,a0 -80002fb4: fca04ee3 bgtz a0,80002f90 <__sflush_r+0x174> -80002fb8: 00c45783 lhu a5,12(s0) -80002fbc: fff00513 li a0,-1 -80002fc0: 0407e793 ori a5,a5,64 -80002fc4: 01c12083 lw ra,28(sp) -80002fc8: 00f41623 sh a5,12(s0) -80002fcc: 01812403 lw s0,24(sp) -80002fd0: 01412483 lw s1,20(sp) -80002fd4: 01012903 lw s2,16(sp) -80002fd8: 00c12983 lw s3,12(sp) -80002fdc: 02010113 addi sp,sp,32 -80002fe0: 00008067 ret -80002fe4: 03c5a703 lw a4,60(a1) -80002fe8: e6e04ce3 bgtz a4,80002e60 <__sflush_r+0x44> -80002fec: f4dff06f j 80002f38 <__sflush_r+0x11c> -80002ff0: 05042503 lw a0,80(s0) -80002ff4: eb5ff06f j 80002ea8 <__sflush_r+0x8c> -80002ff8: 00c45783 lhu a5,12(s0) -80002ffc: fffff737 lui a4,0xfffff -80003000: 7ff70713 addi a4,a4,2047 # fffff7ff <__BSS_END__+0x7fffae67> -80003004: 00e7f7b3 and a5,a5,a4 -80003008: 01042683 lw a3,16(s0) -8000300c: 01079793 slli a5,a5,0x10 -80003010: 4107d793 srai a5,a5,0x10 -80003014: 00f41623 sh a5,12(s0) -80003018: 00042223 sw zero,4(s0) -8000301c: 00d42023 sw a3,0(s0) -80003020: 01379713 slli a4,a5,0x13 -80003024: ee075ae3 bgez a4,80002f18 <__sflush_r+0xfc> -80003028: 04a42823 sw a0,80(s0) -8000302c: eedff06f j 80002f18 <__sflush_r+0xfc> -80003030: 0009a783 lw a5,0(s3) -80003034: e60784e3 beqz a5,80002e9c <__sflush_r+0x80> -80003038: 01d00713 li a4,29 -8000303c: 02e78863 beq a5,a4,8000306c <__sflush_r+0x250> -80003040: 01600713 li a4,22 -80003044: 02e78463 beq a5,a4,8000306c <__sflush_r+0x250> -80003048: 00c45783 lhu a5,12(s0) -8000304c: 0407e793 ori a5,a5,64 -80003050: 00f41623 sh a5,12(s0) -80003054: ee9ff06f j 80002f3c <__sflush_r+0x120> -80003058: fffff737 lui a4,0xfffff -8000305c: 7ff70713 addi a4,a4,2047 # fffff7ff <__BSS_END__+0x7fffae67> -80003060: 01042683 lw a3,16(s0) -80003064: 00e7f7b3 and a5,a5,a4 -80003068: fadff06f j 80003014 <__sflush_r+0x1f8> -8000306c: 0099a023 sw s1,0(s3) -80003070: 00000513 li a0,0 -80003074: ec9ff06f j 80002f3c <__sflush_r+0x120> - -80003078 <_fflush_r>: -80003078: fe010113 addi sp,sp,-32 -8000307c: 00812c23 sw s0,24(sp) -80003080: 00112e23 sw ra,28(sp) -80003084: 00050413 mv s0,a0 -80003088: 00050663 beqz a0,80003094 <_fflush_r+0x1c> -8000308c: 03852783 lw a5,56(a0) -80003090: 02078063 beqz a5,800030b0 <_fflush_r+0x38> -80003094: 00c59783 lh a5,12(a1) -80003098: 02079663 bnez a5,800030c4 <_fflush_r+0x4c> -8000309c: 01c12083 lw ra,28(sp) -800030a0: 01812403 lw s0,24(sp) -800030a4: 00000513 li a0,0 -800030a8: 02010113 addi sp,sp,32 -800030ac: 00008067 ret -800030b0: 00b12623 sw a1,12(sp) -800030b4: a10fe0ef jal ra,800012c4 <__sinit> -800030b8: 00c12583 lw a1,12(sp) -800030bc: 00c59783 lh a5,12(a1) -800030c0: fc078ee3 beqz a5,8000309c <_fflush_r+0x24> -800030c4: 00040513 mv a0,s0 -800030c8: 01812403 lw s0,24(sp) -800030cc: 01c12083 lw ra,28(sp) -800030d0: 02010113 addi sp,sp,32 -800030d4: d49ff06f j 80002e1c <__sflush_r> - -800030d8 : -800030d8: 00050593 mv a1,a0 -800030dc: 00050663 beqz a0,800030e8 -800030e0: 0cc1a503 lw a0,204(gp) # 800048d4 <_impure_ptr> -800030e4: f95ff06f j 80003078 <_fflush_r> -800030e8: 0c81a503 lw a0,200(gp) # 800048d0 <_global_impure_ptr> -800030ec: 800035b7 lui a1,0x80003 -800030f0: 07858593 addi a1,a1,120 # 80003078 <__BSS_END__+0xffffe6e0> -800030f4: f5cfe06f j 80001850 <_fwalk_reent> - -800030f8 <_malloc_trim_r>: -800030f8: fe010113 addi sp,sp,-32 -800030fc: 01312623 sw s3,12(sp) -80003100: 00812c23 sw s0,24(sp) -80003104: 00912a23 sw s1,20(sp) -80003108: 01212823 sw s2,16(sp) -8000310c: 01412423 sw s4,8(sp) -80003110: 00112e23 sw ra,28(sp) -80003114: 00058a13 mv s4,a1 -80003118: 00050913 mv s2,a0 -8000311c: cc018993 addi s3,gp,-832 # 800044c8 <__malloc_av_> -80003120: a8cff0ef jal ra,800023ac <__malloc_lock> -80003124: 0089a703 lw a4,8(s3) -80003128: 000017b7 lui a5,0x1 -8000312c: fef78413 addi s0,a5,-17 # fef <_start-0x7ffff011> -80003130: 00472483 lw s1,4(a4) -80003134: 41440433 sub s0,s0,s4 -80003138: ffc4f493 andi s1,s1,-4 -8000313c: 00940433 add s0,s0,s1 -80003140: 00c45413 srli s0,s0,0xc -80003144: fff40413 addi s0,s0,-1 -80003148: 00c41413 slli s0,s0,0xc -8000314c: 00f44e63 blt s0,a5,80003168 <_malloc_trim_r+0x70> -80003150: 00000593 li a1,0 -80003154: 00090513 mv a0,s2 -80003158: fd0ff0ef jal ra,80002928 <_sbrk_r> -8000315c: 0089a783 lw a5,8(s3) -80003160: 009787b3 add a5,a5,s1 -80003164: 02f50863 beq a0,a5,80003194 <_malloc_trim_r+0x9c> -80003168: 00090513 mv a0,s2 -8000316c: a44ff0ef jal ra,800023b0 <__malloc_unlock> -80003170: 01c12083 lw ra,28(sp) -80003174: 01812403 lw s0,24(sp) -80003178: 01412483 lw s1,20(sp) -8000317c: 01012903 lw s2,16(sp) -80003180: 00c12983 lw s3,12(sp) -80003184: 00812a03 lw s4,8(sp) -80003188: 00000513 li a0,0 -8000318c: 02010113 addi sp,sp,32 -80003190: 00008067 ret -80003194: 408005b3 neg a1,s0 -80003198: 00090513 mv a0,s2 -8000319c: f8cff0ef jal ra,80002928 <_sbrk_r> -800031a0: fff00793 li a5,-1 -800031a4: 04f50863 beq a0,a5,800031f4 <_malloc_trim_r+0xfc> -800031a8: 12818793 addi a5,gp,296 # 80004930 <__malloc_current_mallinfo> -800031ac: 0007a703 lw a4,0(a5) -800031b0: 0089a683 lw a3,8(s3) -800031b4: 408484b3 sub s1,s1,s0 -800031b8: 0014e493 ori s1,s1,1 -800031bc: 40870433 sub s0,a4,s0 -800031c0: 00090513 mv a0,s2 -800031c4: 0096a223 sw s1,4(a3) -800031c8: 0087a023 sw s0,0(a5) -800031cc: 9e4ff0ef jal ra,800023b0 <__malloc_unlock> -800031d0: 01c12083 lw ra,28(sp) -800031d4: 01812403 lw s0,24(sp) -800031d8: 01412483 lw s1,20(sp) -800031dc: 01012903 lw s2,16(sp) -800031e0: 00c12983 lw s3,12(sp) -800031e4: 00812a03 lw s4,8(sp) -800031e8: 00100513 li a0,1 -800031ec: 02010113 addi sp,sp,32 -800031f0: 00008067 ret -800031f4: 00000593 li a1,0 -800031f8: 00090513 mv a0,s2 -800031fc: f2cff0ef jal ra,80002928 <_sbrk_r> -80003200: 0089a703 lw a4,8(s3) -80003204: 00f00693 li a3,15 -80003208: 40e507b3 sub a5,a0,a4 -8000320c: f4f6dee3 bge a3,a5,80003168 <_malloc_trim_r+0x70> -80003210: 0d01a683 lw a3,208(gp) # 800048d8 <__malloc_sbrk_base> -80003214: 0017e793 ori a5,a5,1 -80003218: 00f72223 sw a5,4(a4) -8000321c: 40d50533 sub a0,a0,a3 -80003220: 12a1a423 sw a0,296(gp) # 80004930 <__malloc_current_mallinfo> -80003224: f45ff06f j 80003168 <_malloc_trim_r+0x70> - -80003228 <_free_r>: -80003228: 12058463 beqz a1,80003350 <_free_r+0x128> -8000322c: ff010113 addi sp,sp,-16 -80003230: 00812423 sw s0,8(sp) -80003234: 00912223 sw s1,4(sp) -80003238: 00058413 mv s0,a1 -8000323c: 00050493 mv s1,a0 -80003240: 00112623 sw ra,12(sp) -80003244: 968ff0ef jal ra,800023ac <__malloc_lock> -80003248: ffc42803 lw a6,-4(s0) -8000324c: ff840713 addi a4,s0,-8 -80003250: ffe87793 andi a5,a6,-2 -80003254: 00f70633 add a2,a4,a5 -80003258: cc018593 addi a1,gp,-832 # 800044c8 <__malloc_av_> -8000325c: 00462683 lw a3,4(a2) -80003260: 0085a503 lw a0,8(a1) -80003264: ffc6f693 andi a3,a3,-4 -80003268: 1ac50663 beq a0,a2,80003414 <_free_r+0x1ec> -8000326c: 00d62223 sw a3,4(a2) -80003270: 00187813 andi a6,a6,1 -80003274: 00d60533 add a0,a2,a3 -80003278: 08081e63 bnez a6,80003314 <_free_r+0xec> -8000327c: ff842303 lw t1,-8(s0) -80003280: 00452803 lw a6,4(a0) -80003284: 40670733 sub a4,a4,t1 -80003288: 00872883 lw a7,8(a4) -8000328c: cc818513 addi a0,gp,-824 # 800044d0 <__malloc_av_+0x8> -80003290: 006787b3 add a5,a5,t1 -80003294: 00187813 andi a6,a6,1 -80003298: 12a88e63 beq a7,a0,800033d4 <_free_r+0x1ac> -8000329c: 00c72303 lw t1,12(a4) -800032a0: 0068a623 sw t1,12(a7) -800032a4: 01132423 sw a7,8(t1) -800032a8: 1c080e63 beqz a6,80003484 <_free_r+0x25c> -800032ac: 0017e693 ori a3,a5,1 -800032b0: 00d72223 sw a3,4(a4) -800032b4: 00f62023 sw a5,0(a2) -800032b8: 1ff00693 li a3,511 -800032bc: 0af6e663 bltu a3,a5,80003368 <_free_r+0x140> -800032c0: ff87f693 andi a3,a5,-8 -800032c4: 00868693 addi a3,a3,8 -800032c8: 0045a503 lw a0,4(a1) -800032cc: 00d586b3 add a3,a1,a3 -800032d0: 0006a603 lw a2,0(a3) -800032d4: 0057d813 srli a6,a5,0x5 -800032d8: 00100793 li a5,1 -800032dc: 010797b3 sll a5,a5,a6 -800032e0: 00a7e7b3 or a5,a5,a0 -800032e4: ff868513 addi a0,a3,-8 -800032e8: 00a72623 sw a0,12(a4) -800032ec: 00c72423 sw a2,8(a4) -800032f0: 00f5a223 sw a5,4(a1) -800032f4: 00e6a023 sw a4,0(a3) -800032f8: 00e62623 sw a4,12(a2) -800032fc: 00812403 lw s0,8(sp) -80003300: 00c12083 lw ra,12(sp) -80003304: 00048513 mv a0,s1 -80003308: 00412483 lw s1,4(sp) -8000330c: 01010113 addi sp,sp,16 -80003310: 8a0ff06f j 800023b0 <__malloc_unlock> -80003314: 00452503 lw a0,4(a0) -80003318: 00157513 andi a0,a0,1 -8000331c: 02051c63 bnez a0,80003354 <_free_r+0x12c> -80003320: 00d787b3 add a5,a5,a3 -80003324: cc818513 addi a0,gp,-824 # 800044d0 <__malloc_av_+0x8> -80003328: 00862683 lw a3,8(a2) -8000332c: 0017e893 ori a7,a5,1 -80003330: 00f70833 add a6,a4,a5 -80003334: 16a68463 beq a3,a0,8000349c <_free_r+0x274> -80003338: 00c62603 lw a2,12(a2) -8000333c: 00c6a623 sw a2,12(a3) -80003340: 00d62423 sw a3,8(a2) -80003344: 01172223 sw a7,4(a4) -80003348: 00f82023 sw a5,0(a6) -8000334c: f6dff06f j 800032b8 <_free_r+0x90> -80003350: 00008067 ret -80003354: 0017e693 ori a3,a5,1 -80003358: fed42e23 sw a3,-4(s0) -8000335c: 00f62023 sw a5,0(a2) -80003360: 1ff00693 li a3,511 -80003364: f4f6fee3 bgeu a3,a5,800032c0 <_free_r+0x98> -80003368: 0097d693 srli a3,a5,0x9 -8000336c: 00400613 li a2,4 -80003370: 0ed66863 bltu a2,a3,80003460 <_free_r+0x238> -80003374: 0067d693 srli a3,a5,0x6 -80003378: 03968813 addi a6,a3,57 -8000337c: 03868613 addi a2,a3,56 -80003380: 00381813 slli a6,a6,0x3 -80003384: 01058833 add a6,a1,a6 -80003388: 00082683 lw a3,0(a6) -8000338c: ff880813 addi a6,a6,-8 -80003390: 12d80463 beq a6,a3,800034b8 <_free_r+0x290> -80003394: 0046a603 lw a2,4(a3) -80003398: ffc67613 andi a2,a2,-4 -8000339c: 00c7f663 bgeu a5,a2,800033a8 <_free_r+0x180> -800033a0: 0086a683 lw a3,8(a3) -800033a4: fed818e3 bne a6,a3,80003394 <_free_r+0x16c> -800033a8: 00c6a803 lw a6,12(a3) -800033ac: 01072623 sw a6,12(a4) -800033b0: 00d72423 sw a3,8(a4) -800033b4: 00812403 lw s0,8(sp) -800033b8: 00c12083 lw ra,12(sp) -800033bc: 00e82423 sw a4,8(a6) -800033c0: 00048513 mv a0,s1 -800033c4: 00412483 lw s1,4(sp) -800033c8: 00e6a623 sw a4,12(a3) -800033cc: 01010113 addi sp,sp,16 -800033d0: fe1fe06f j 800023b0 <__malloc_unlock> -800033d4: 14081263 bnez a6,80003518 <_free_r+0x2f0> -800033d8: 00c62583 lw a1,12(a2) -800033dc: 00862603 lw a2,8(a2) -800033e0: 00f687b3 add a5,a3,a5 -800033e4: 00812403 lw s0,8(sp) -800033e8: 00b62623 sw a1,12(a2) -800033ec: 00c5a423 sw a2,8(a1) -800033f0: 0017e693 ori a3,a5,1 -800033f4: 00c12083 lw ra,12(sp) -800033f8: 00d72223 sw a3,4(a4) -800033fc: 00048513 mv a0,s1 -80003400: 00f70733 add a4,a4,a5 -80003404: 00412483 lw s1,4(sp) -80003408: 00f72023 sw a5,0(a4) -8000340c: 01010113 addi sp,sp,16 -80003410: fa1fe06f j 800023b0 <__malloc_unlock> -80003414: 00187813 andi a6,a6,1 -80003418: 00d787b3 add a5,a5,a3 -8000341c: 02081063 bnez a6,8000343c <_free_r+0x214> -80003420: ff842503 lw a0,-8(s0) -80003424: 40a70733 sub a4,a4,a0 -80003428: 00c72683 lw a3,12(a4) -8000342c: 00872603 lw a2,8(a4) -80003430: 00a787b3 add a5,a5,a0 -80003434: 00d62623 sw a3,12(a2) -80003438: 00c6a423 sw a2,8(a3) -8000343c: 0017e613 ori a2,a5,1 -80003440: 0d41a683 lw a3,212(gp) # 800048dc <__malloc_trim_threshold> -80003444: 00c72223 sw a2,4(a4) -80003448: 00e5a423 sw a4,8(a1) -8000344c: ead7e8e3 bltu a5,a3,800032fc <_free_r+0xd4> -80003450: 0e01a583 lw a1,224(gp) # 800048e8 <__malloc_top_pad> -80003454: 00048513 mv a0,s1 -80003458: ca1ff0ef jal ra,800030f8 <_malloc_trim_r> -8000345c: ea1ff06f j 800032fc <_free_r+0xd4> -80003460: 01400613 li a2,20 -80003464: 02d67463 bgeu a2,a3,8000348c <_free_r+0x264> -80003468: 05400613 li a2,84 -8000346c: 06d66463 bltu a2,a3,800034d4 <_free_r+0x2ac> -80003470: 00c7d693 srli a3,a5,0xc -80003474: 06f68813 addi a6,a3,111 -80003478: 06e68613 addi a2,a3,110 -8000347c: 00381813 slli a6,a6,0x3 -80003480: f05ff06f j 80003384 <_free_r+0x15c> -80003484: 00d787b3 add a5,a5,a3 -80003488: ea1ff06f j 80003328 <_free_r+0x100> -8000348c: 05c68813 addi a6,a3,92 -80003490: 05b68613 addi a2,a3,91 -80003494: 00381813 slli a6,a6,0x3 -80003498: eedff06f j 80003384 <_free_r+0x15c> -8000349c: 00e5aa23 sw a4,20(a1) -800034a0: 00e5a823 sw a4,16(a1) -800034a4: 00a72623 sw a0,12(a4) -800034a8: 00a72423 sw a0,8(a4) -800034ac: 01172223 sw a7,4(a4) -800034b0: 00f82023 sw a5,0(a6) -800034b4: e49ff06f j 800032fc <_free_r+0xd4> -800034b8: 0045a503 lw a0,4(a1) -800034bc: 40265613 srai a2,a2,0x2 -800034c0: 00100793 li a5,1 -800034c4: 00c79633 sll a2,a5,a2 -800034c8: 00a66633 or a2,a2,a0 -800034cc: 00c5a223 sw a2,4(a1) -800034d0: eddff06f j 800033ac <_free_r+0x184> -800034d4: 15400613 li a2,340 -800034d8: 00d66c63 bltu a2,a3,800034f0 <_free_r+0x2c8> -800034dc: 00f7d693 srli a3,a5,0xf -800034e0: 07868813 addi a6,a3,120 -800034e4: 07768613 addi a2,a3,119 -800034e8: 00381813 slli a6,a6,0x3 -800034ec: e99ff06f j 80003384 <_free_r+0x15c> -800034f0: 55400613 li a2,1364 -800034f4: 00d66c63 bltu a2,a3,8000350c <_free_r+0x2e4> -800034f8: 0127d693 srli a3,a5,0x12 -800034fc: 07d68813 addi a6,a3,125 -80003500: 07c68613 addi a2,a3,124 -80003504: 00381813 slli a6,a6,0x3 -80003508: e7dff06f j 80003384 <_free_r+0x15c> -8000350c: 3f800813 li a6,1016 -80003510: 07e00613 li a2,126 -80003514: e71ff06f j 80003384 <_free_r+0x15c> -80003518: 0017e693 ori a3,a5,1 -8000351c: 00d72223 sw a3,4(a4) -80003520: 00f62023 sw a5,0(a2) -80003524: dd9ff06f j 800032fc <_free_r+0xd4> - -80003528 <_lseek_r>: -80003528: ff010113 addi sp,sp,-16 -8000352c: 00058713 mv a4,a1 -80003530: 00812423 sw s0,8(sp) -80003534: 00912223 sw s1,4(sp) -80003538: 00060593 mv a1,a2 -8000353c: 00050413 mv s0,a0 -80003540: 00068613 mv a2,a3 -80003544: 00070513 mv a0,a4 -80003548: 00112623 sw ra,12(sp) -8000354c: 1801a623 sw zero,396(gp) # 80004994 -80003550: 460000ef jal ra,800039b0 <_lseek> -80003554: fff00793 li a5,-1 -80003558: 00f50c63 beq a0,a5,80003570 <_lseek_r+0x48> -8000355c: 00c12083 lw ra,12(sp) -80003560: 00812403 lw s0,8(sp) -80003564: 00412483 lw s1,4(sp) -80003568: 01010113 addi sp,sp,16 -8000356c: 00008067 ret -80003570: 18c1a783 lw a5,396(gp) # 80004994 -80003574: fe0784e3 beqz a5,8000355c <_lseek_r+0x34> -80003578: 00c12083 lw ra,12(sp) -8000357c: 00f42023 sw a5,0(s0) -80003580: 00812403 lw s0,8(sp) -80003584: 00412483 lw s1,4(sp) -80003588: 01010113 addi sp,sp,16 -8000358c: 00008067 ret - -80003590 <__swhatbuf_r>: -80003590: f9010113 addi sp,sp,-112 -80003594: 06812423 sw s0,104(sp) -80003598: 00058413 mv s0,a1 -8000359c: 00e59583 lh a1,14(a1) -800035a0: 06912223 sw s1,100(sp) -800035a4: 07212023 sw s2,96(sp) -800035a8: 06112623 sw ra,108(sp) -800035ac: 00060493 mv s1,a2 -800035b0: 00068913 mv s2,a3 -800035b4: 0405ca63 bltz a1,80003608 <__swhatbuf_r+0x78> -800035b8: 00810613 addi a2,sp,8 -800035bc: 22c000ef jal ra,800037e8 <_fstat_r> -800035c0: 04054463 bltz a0,80003608 <__swhatbuf_r+0x78> -800035c4: 00c12703 lw a4,12(sp) -800035c8: 0000f7b7 lui a5,0xf -800035cc: 06c12083 lw ra,108(sp) -800035d0: 00e7f7b3 and a5,a5,a4 -800035d4: ffffe737 lui a4,0xffffe -800035d8: 00e787b3 add a5,a5,a4 -800035dc: 06812403 lw s0,104(sp) -800035e0: 0017b793 seqz a5,a5 -800035e4: 00f92023 sw a5,0(s2) -800035e8: 40000793 li a5,1024 -800035ec: 00f4a023 sw a5,0(s1) -800035f0: 00001537 lui a0,0x1 -800035f4: 06412483 lw s1,100(sp) -800035f8: 06012903 lw s2,96(sp) -800035fc: 80050513 addi a0,a0,-2048 # 800 <_start-0x7ffff800> -80003600: 07010113 addi sp,sp,112 -80003604: 00008067 ret -80003608: 00c45783 lhu a5,12(s0) -8000360c: 00092023 sw zero,0(s2) -80003610: 0807f793 andi a5,a5,128 -80003614: 02078463 beqz a5,8000363c <__swhatbuf_r+0xac> -80003618: 06c12083 lw ra,108(sp) -8000361c: 06812403 lw s0,104(sp) -80003620: 04000793 li a5,64 -80003624: 00f4a023 sw a5,0(s1) -80003628: 06012903 lw s2,96(sp) -8000362c: 06412483 lw s1,100(sp) -80003630: 00000513 li a0,0 -80003634: 07010113 addi sp,sp,112 -80003638: 00008067 ret -8000363c: 06c12083 lw ra,108(sp) -80003640: 06812403 lw s0,104(sp) -80003644: 40000793 li a5,1024 -80003648: 00f4a023 sw a5,0(s1) -8000364c: 06012903 lw s2,96(sp) -80003650: 06412483 lw s1,100(sp) -80003654: 00000513 li a0,0 -80003658: 07010113 addi sp,sp,112 -8000365c: 00008067 ret - -80003660 <__smakebuf_r>: -80003660: 00c5d783 lhu a5,12(a1) -80003664: fe010113 addi sp,sp,-32 -80003668: 00812c23 sw s0,24(sp) -8000366c: 00112e23 sw ra,28(sp) -80003670: 00912a23 sw s1,20(sp) -80003674: 01212823 sw s2,16(sp) -80003678: 0027f793 andi a5,a5,2 -8000367c: 00058413 mv s0,a1 -80003680: 02078863 beqz a5,800036b0 <__smakebuf_r+0x50> -80003684: 04358793 addi a5,a1,67 -80003688: 00f5a023 sw a5,0(a1) -8000368c: 00f5a823 sw a5,16(a1) -80003690: 00100793 li a5,1 -80003694: 00f5aa23 sw a5,20(a1) -80003698: 01c12083 lw ra,28(sp) -8000369c: 01812403 lw s0,24(sp) -800036a0: 01412483 lw s1,20(sp) -800036a4: 01012903 lw s2,16(sp) -800036a8: 02010113 addi sp,sp,32 -800036ac: 00008067 ret -800036b0: 00c10693 addi a3,sp,12 -800036b4: 00810613 addi a2,sp,8 -800036b8: 00050493 mv s1,a0 -800036bc: ed5ff0ef jal ra,80003590 <__swhatbuf_r> -800036c0: 00812583 lw a1,8(sp) -800036c4: 00050913 mv s2,a0 -800036c8: 00048513 mv a0,s1 -800036cc: a38fe0ef jal ra,80001904 <_malloc_r> -800036d0: 00c41783 lh a5,12(s0) -800036d4: 04050863 beqz a0,80003724 <__smakebuf_r+0xc4> -800036d8: 80001737 lui a4,0x80001 -800036dc: fb070713 addi a4,a4,-80 # 80000fb0 <__BSS_END__+0xffffc618> -800036e0: 02e4ae23 sw a4,60(s1) -800036e4: 00812703 lw a4,8(sp) -800036e8: 00c12683 lw a3,12(sp) -800036ec: 0807e793 ori a5,a5,128 -800036f0: 00f41623 sh a5,12(s0) -800036f4: 00a42023 sw a0,0(s0) -800036f8: 00a42823 sw a0,16(s0) -800036fc: 00e42a23 sw a4,20(s0) -80003700: 04069863 bnez a3,80003750 <__smakebuf_r+0xf0> -80003704: 0127e7b3 or a5,a5,s2 -80003708: 01c12083 lw ra,28(sp) -8000370c: 00f41623 sh a5,12(s0) -80003710: 01812403 lw s0,24(sp) -80003714: 01412483 lw s1,20(sp) -80003718: 01012903 lw s2,16(sp) -8000371c: 02010113 addi sp,sp,32 -80003720: 00008067 ret -80003724: 2007f713 andi a4,a5,512 -80003728: f60718e3 bnez a4,80003698 <__smakebuf_r+0x38> -8000372c: ffc7f793 andi a5,a5,-4 -80003730: 0027e793 ori a5,a5,2 -80003734: 04340713 addi a4,s0,67 -80003738: 00f41623 sh a5,12(s0) -8000373c: 00100793 li a5,1 -80003740: 00e42023 sw a4,0(s0) -80003744: 00e42823 sw a4,16(s0) -80003748: 00f42a23 sw a5,20(s0) -8000374c: f4dff06f j 80003698 <__smakebuf_r+0x38> -80003750: 00e41583 lh a1,14(s0) -80003754: 00048513 mv a0,s1 -80003758: 0f4000ef jal ra,8000384c <_isatty_r> -8000375c: 00051663 bnez a0,80003768 <__smakebuf_r+0x108> -80003760: 00c41783 lh a5,12(s0) -80003764: fa1ff06f j 80003704 <__smakebuf_r+0xa4> -80003768: 00c45703 lhu a4,12(s0) -8000376c: ffc77713 andi a4,a4,-4 -80003770: 00176713 ori a4,a4,1 -80003774: 01071793 slli a5,a4,0x10 -80003778: 4107d793 srai a5,a5,0x10 -8000377c: f89ff06f j 80003704 <__smakebuf_r+0xa4> - -80003780 <_read_r>: -80003780: ff010113 addi sp,sp,-16 -80003784: 00058713 mv a4,a1 -80003788: 00812423 sw s0,8(sp) -8000378c: 00912223 sw s1,4(sp) -80003790: 00060593 mv a1,a2 -80003794: 00050413 mv s0,a0 -80003798: 00068613 mv a2,a3 -8000379c: 00070513 mv a0,a4 -800037a0: 00112623 sw ra,12(sp) -800037a4: 1801a623 sw zero,396(gp) # 80004994 -800037a8: 258000ef jal ra,80003a00 <_read> -800037ac: fff00793 li a5,-1 -800037b0: 00f50c63 beq a0,a5,800037c8 <_read_r+0x48> -800037b4: 00c12083 lw ra,12(sp) -800037b8: 00812403 lw s0,8(sp) -800037bc: 00412483 lw s1,4(sp) -800037c0: 01010113 addi sp,sp,16 -800037c4: 00008067 ret -800037c8: 18c1a783 lw a5,396(gp) # 80004994 -800037cc: fe0784e3 beqz a5,800037b4 <_read_r+0x34> -800037d0: 00c12083 lw ra,12(sp) -800037d4: 00f42023 sw a5,0(s0) -800037d8: 00812403 lw s0,8(sp) -800037dc: 00412483 lw s1,4(sp) -800037e0: 01010113 addi sp,sp,16 -800037e4: 00008067 ret - -800037e8 <_fstat_r>: -800037e8: ff010113 addi sp,sp,-16 -800037ec: 00058713 mv a4,a1 -800037f0: 00812423 sw s0,8(sp) -800037f4: 00912223 sw s1,4(sp) -800037f8: 00050413 mv s0,a0 -800037fc: 00060593 mv a1,a2 -80003800: 00070513 mv a0,a4 -80003804: 00112623 sw ra,12(sp) -80003808: 1801a623 sw zero,396(gp) # 80004994 -8000380c: 0f4000ef jal ra,80003900 <_fstat> -80003810: fff00793 li a5,-1 -80003814: 00f50c63 beq a0,a5,8000382c <_fstat_r+0x44> -80003818: 00c12083 lw ra,12(sp) -8000381c: 00812403 lw s0,8(sp) -80003820: 00412483 lw s1,4(sp) -80003824: 01010113 addi sp,sp,16 -80003828: 00008067 ret -8000382c: 18c1a783 lw a5,396(gp) # 80004994 -80003830: fe0784e3 beqz a5,80003818 <_fstat_r+0x30> -80003834: 00c12083 lw ra,12(sp) -80003838: 00f42023 sw a5,0(s0) -8000383c: 00812403 lw s0,8(sp) -80003840: 00412483 lw s1,4(sp) -80003844: 01010113 addi sp,sp,16 -80003848: 00008067 ret - -8000384c <_isatty_r>: -8000384c: ff010113 addi sp,sp,-16 -80003850: 00812423 sw s0,8(sp) -80003854: 00912223 sw s1,4(sp) -80003858: 00050413 mv s0,a0 -8000385c: 00058513 mv a0,a1 -80003860: 00112623 sw ra,12(sp) -80003864: 1801a623 sw zero,396(gp) # 80004994 -80003868: 108000ef jal ra,80003970 <_isatty> -8000386c: fff00793 li a5,-1 -80003870: 00f50c63 beq a0,a5,80003888 <_isatty_r+0x3c> -80003874: 00c12083 lw ra,12(sp) -80003878: 00812403 lw s0,8(sp) -8000387c: 00412483 lw s1,4(sp) -80003880: 01010113 addi sp,sp,16 -80003884: 00008067 ret -80003888: 18c1a783 lw a5,396(gp) # 80004994 -8000388c: fe0784e3 beqz a5,80003874 <_isatty_r+0x28> -80003890: 00c12083 lw ra,12(sp) -80003894: 00f42023 sw a5,0(s0) -80003898: 00812403 lw s0,8(sp) -8000389c: 00412483 lw s1,4(sp) -800038a0: 01010113 addi sp,sp,16 -800038a4: 00008067 ret - -800038a8 <_close>: -800038a8: ff010113 addi sp,sp,-16 -800038ac: 00112623 sw ra,12(sp) -800038b0: 00812423 sw s0,8(sp) -800038b4: 00000593 li a1,0 -800038b8: 00000613 li a2,0 -800038bc: 00000693 li a3,0 -800038c0: 00000713 li a4,0 -800038c4: 00000793 li a5,0 -800038c8: 03900893 li a7,57 -800038cc: 00000073 ecall -800038d0: 00050413 mv s0,a0 -800038d4: 00054c63 bltz a0,800038ec <_close+0x44> -800038d8: 00c12083 lw ra,12(sp) -800038dc: 00040513 mv a0,s0 -800038e0: 00812403 lw s0,8(sp) -800038e4: 01010113 addi sp,sp,16 -800038e8: 00008067 ret -800038ec: 40800433 neg s0,s0 -800038f0: 2f0000ef jal ra,80003be0 <__errno> -800038f4: 00852023 sw s0,0(a0) -800038f8: fff00413 li s0,-1 -800038fc: fddff06f j 800038d8 <_close+0x30> - -80003900 <_fstat>: -80003900: f7010113 addi sp,sp,-144 -80003904: 08912223 sw s1,132(sp) -80003908: 08112623 sw ra,140(sp) -8000390c: 00058493 mv s1,a1 -80003910: 08812423 sw s0,136(sp) -80003914: 00010593 mv a1,sp -80003918: 00000613 li a2,0 -8000391c: 00000693 li a3,0 -80003920: 00000713 li a4,0 -80003924: 00000793 li a5,0 -80003928: 05000893 li a7,80 -8000392c: 00000073 ecall -80003930: 00050413 mv s0,a0 -80003934: 02054463 bltz a0,8000395c <_fstat+0x5c> -80003938: 00048513 mv a0,s1 -8000393c: 00010593 mv a1,sp -80003940: 1fc000ef jal ra,80003b3c <_conv_stat> -80003944: 08c12083 lw ra,140(sp) -80003948: 00040513 mv a0,s0 -8000394c: 08812403 lw s0,136(sp) -80003950: 08412483 lw s1,132(sp) -80003954: 09010113 addi sp,sp,144 -80003958: 00008067 ret -8000395c: 40800433 neg s0,s0 -80003960: 280000ef jal ra,80003be0 <__errno> -80003964: 00852023 sw s0,0(a0) -80003968: fff00413 li s0,-1 -8000396c: fcdff06f j 80003938 <_fstat+0x38> - -80003970 <_isatty>: -80003970: f9010113 addi sp,sp,-112 -80003974: 00810593 addi a1,sp,8 -80003978: 06112623 sw ra,108(sp) -8000397c: f85ff0ef jal ra,80003900 <_fstat> -80003980: fff00793 li a5,-1 -80003984: 00f50e63 beq a0,a5,800039a0 <_isatty+0x30> -80003988: 00c12503 lw a0,12(sp) -8000398c: 06c12083 lw ra,108(sp) -80003990: 00d55513 srli a0,a0,0xd -80003994: 00157513 andi a0,a0,1 -80003998: 07010113 addi sp,sp,112 -8000399c: 00008067 ret -800039a0: 06c12083 lw ra,108(sp) -800039a4: 00000513 li a0,0 -800039a8: 07010113 addi sp,sp,112 -800039ac: 00008067 ret - -800039b0 <_lseek>: -800039b0: ff010113 addi sp,sp,-16 -800039b4: 00112623 sw ra,12(sp) -800039b8: 00812423 sw s0,8(sp) -800039bc: 00000693 li a3,0 -800039c0: 00000713 li a4,0 -800039c4: 00000793 li a5,0 -800039c8: 03e00893 li a7,62 -800039cc: 00000073 ecall -800039d0: 00050413 mv s0,a0 -800039d4: 00054c63 bltz a0,800039ec <_lseek+0x3c> -800039d8: 00c12083 lw ra,12(sp) -800039dc: 00040513 mv a0,s0 -800039e0: 00812403 lw s0,8(sp) -800039e4: 01010113 addi sp,sp,16 -800039e8: 00008067 ret -800039ec: 40800433 neg s0,s0 -800039f0: 1f0000ef jal ra,80003be0 <__errno> -800039f4: 00852023 sw s0,0(a0) -800039f8: fff00413 li s0,-1 -800039fc: fddff06f j 800039d8 <_lseek+0x28> - -80003a00 <_read>: -80003a00: ff010113 addi sp,sp,-16 -80003a04: 00112623 sw ra,12(sp) -80003a08: 00812423 sw s0,8(sp) -80003a0c: 00000693 li a3,0 -80003a10: 00000713 li a4,0 -80003a14: 00000793 li a5,0 -80003a18: 03f00893 li a7,63 -80003a1c: 00000073 ecall -80003a20: 00050413 mv s0,a0 -80003a24: 00054c63 bltz a0,80003a3c <_read+0x3c> -80003a28: 00c12083 lw ra,12(sp) -80003a2c: 00040513 mv a0,s0 -80003a30: 00812403 lw s0,8(sp) -80003a34: 01010113 addi sp,sp,16 -80003a38: 00008067 ret -80003a3c: 40800433 neg s0,s0 -80003a40: 1a0000ef jal ra,80003be0 <__errno> -80003a44: 00852023 sw s0,0(a0) -80003a48: fff00413 li s0,-1 -80003a4c: fddff06f j 80003a28 <_read+0x28> - -80003a50 <_sbrk>: -80003a50: 0e41a783 lw a5,228(gp) # 800048ec -80003a54: ff010113 addi sp,sp,-16 -80003a58: 00112623 sw ra,12(sp) -80003a5c: 00050813 mv a6,a0 -80003a60: 02079863 bnez a5,80003a90 <_sbrk+0x40> -80003a64: 00000513 li a0,0 -80003a68: 00000593 li a1,0 -80003a6c: 00000613 li a2,0 -80003a70: 00000693 li a3,0 -80003a74: 00000713 li a4,0 -80003a78: 0d600893 li a7,214 -80003a7c: 00000073 ecall -80003a80: fff00713 li a4,-1 -80003a84: 00050793 mv a5,a0 -80003a88: 04e50463 beq a0,a4,80003ad0 <_sbrk+0x80> -80003a8c: 0ea1a223 sw a0,228(gp) # 800048ec -80003a90: 00f80533 add a0,a6,a5 -80003a94: 00000593 li a1,0 -80003a98: 00000613 li a2,0 -80003a9c: 00000693 li a3,0 -80003aa0: 00000713 li a4,0 -80003aa4: 00000793 li a5,0 -80003aa8: 0d600893 li a7,214 -80003aac: 00000073 ecall -80003ab0: 0e41a783 lw a5,228(gp) # 800048ec -80003ab4: 00f80833 add a6,a6,a5 -80003ab8: 01051c63 bne a0,a6,80003ad0 <_sbrk+0x80> -80003abc: 00c12083 lw ra,12(sp) -80003ac0: 0ea1a223 sw a0,228(gp) # 800048ec -80003ac4: 00078513 mv a0,a5 -80003ac8: 01010113 addi sp,sp,16 -80003acc: 00008067 ret -80003ad0: 110000ef jal ra,80003be0 <__errno> -80003ad4: 00c12083 lw ra,12(sp) -80003ad8: 00c00793 li a5,12 -80003adc: 00f52023 sw a5,0(a0) -80003ae0: fff00513 li a0,-1 -80003ae4: 01010113 addi sp,sp,16 -80003ae8: 00008067 ret - -80003aec <_write>: -80003aec: ff010113 addi sp,sp,-16 -80003af0: 00112623 sw ra,12(sp) -80003af4: 00812423 sw s0,8(sp) -80003af8: 00000693 li a3,0 -80003afc: 00000713 li a4,0 -80003b00: 00000793 li a5,0 -80003b04: 04000893 li a7,64 -80003b08: 00000073 ecall -80003b0c: 00050413 mv s0,a0 -80003b10: 00054c63 bltz a0,80003b28 <_write+0x3c> -80003b14: 00c12083 lw ra,12(sp) -80003b18: 00040513 mv a0,s0 -80003b1c: 00812403 lw s0,8(sp) -80003b20: 01010113 addi sp,sp,16 -80003b24: 00008067 ret -80003b28: 40800433 neg s0,s0 -80003b2c: 0b4000ef jal ra,80003be0 <__errno> -80003b30: 00852023 sw s0,0(a0) -80003b34: fff00413 li s0,-1 -80003b38: fddff06f j 80003b14 <_write+0x28> - -80003b3c <_conv_stat>: -80003b3c: ff010113 addi sp,sp,-16 -80003b40: 0145a383 lw t2,20(a1) -80003b44: 0185a283 lw t0,24(a1) -80003b48: 01c5af83 lw t6,28(a1) -80003b4c: 0205af03 lw t5,32(a1) -80003b50: 0305ae83 lw t4,48(a1) -80003b54: 0405ae03 lw t3,64(a1) -80003b58: 0385a303 lw t1,56(a1) -80003b5c: 0485a803 lw a6,72(a1) -80003b60: 04c5a883 lw a7,76(a1) -80003b64: 0585a603 lw a2,88(a1) -80003b68: 00812623 sw s0,12(sp) -80003b6c: 00912423 sw s1,8(sp) -80003b70: 0105a403 lw s0,16(a1) -80003b74: 0085a483 lw s1,8(a1) -80003b78: 01212223 sw s2,4(sp) -80003b7c: 0005a903 lw s2,0(a1) -80003b80: 05c5a683 lw a3,92(a1) -80003b84: 0685a703 lw a4,104(a1) -80003b88: 06c5a783 lw a5,108(a1) -80003b8c: 01251023 sh s2,0(a0) -80003b90: 00951123 sh s1,2(a0) -80003b94: 00852223 sw s0,4(a0) -80003b98: 00751423 sh t2,8(a0) -80003b9c: 00551523 sh t0,10(a0) -80003ba0: 01f51623 sh t6,12(a0) -80003ba4: 01e51723 sh t5,14(a0) -80003ba8: 01d52823 sw t4,16(a0) -80003bac: 05c52623 sw t3,76(a0) -80003bb0: 04652423 sw t1,72(a0) -80003bb4: 01052c23 sw a6,24(a0) -80003bb8: 01152e23 sw a7,28(a0) -80003bbc: 02c52423 sw a2,40(a0) -80003bc0: 02d52623 sw a3,44(a0) -80003bc4: 00c12403 lw s0,12(sp) -80003bc8: 02e52c23 sw a4,56(a0) -80003bcc: 02f52e23 sw a5,60(a0) -80003bd0: 00812483 lw s1,8(sp) -80003bd4: 00412903 lw s2,4(sp) -80003bd8: 01010113 addi sp,sp,16 -80003bdc: 00008067 ret - -80003be0 <__errno>: -80003be0: 0cc1a503 lw a0,204(gp) # 800048d4 <_impure_ptr> -80003be4: 00008067 ret +80000c28 <__call_exitprocs>: +80000c28: fd010113 addi sp,sp,-48 +80000c2c: 01412c23 sw s4,24(sp) +80000c30: cc01aa03 lw s4,-832(gp) # 800014c8 <_global_impure_ptr> +80000c34: 03212023 sw s2,32(sp) +80000c38: 02112623 sw ra,44(sp) +80000c3c: 148a2903 lw s2,328(s4) +80000c40: 02812423 sw s0,40(sp) +80000c44: 02912223 sw s1,36(sp) +80000c48: 01312e23 sw s3,28(sp) +80000c4c: 01512a23 sw s5,20(sp) +80000c50: 01612823 sw s6,16(sp) +80000c54: 01712623 sw s7,12(sp) +80000c58: 01812423 sw s8,8(sp) +80000c5c: 04090063 beqz s2,80000c9c <__call_exitprocs+0x74> +80000c60: 00050b13 mv s6,a0 +80000c64: 00058b93 mv s7,a1 +80000c68: 00100a93 li s5,1 +80000c6c: fff00993 li s3,-1 +80000c70: 00492483 lw s1,4(s2) +80000c74: fff48413 addi s0,s1,-1 +80000c78: 02044263 bltz s0,80000c9c <__call_exitprocs+0x74> +80000c7c: 00249493 slli s1,s1,0x2 +80000c80: 009904b3 add s1,s2,s1 +80000c84: 040b8463 beqz s7,80000ccc <__call_exitprocs+0xa4> +80000c88: 1044a783 lw a5,260(s1) +80000c8c: 05778063 beq a5,s7,80000ccc <__call_exitprocs+0xa4> +80000c90: fff40413 addi s0,s0,-1 +80000c94: ffc48493 addi s1,s1,-4 +80000c98: ff3416e3 bne s0,s3,80000c84 <__call_exitprocs+0x5c> +80000c9c: 02c12083 lw ra,44(sp) +80000ca0: 02812403 lw s0,40(sp) +80000ca4: 02412483 lw s1,36(sp) +80000ca8: 02012903 lw s2,32(sp) +80000cac: 01c12983 lw s3,28(sp) +80000cb0: 01812a03 lw s4,24(sp) +80000cb4: 01412a83 lw s5,20(sp) +80000cb8: 01012b03 lw s6,16(sp) +80000cbc: 00c12b83 lw s7,12(sp) +80000cc0: 00812c03 lw s8,8(sp) +80000cc4: 03010113 addi sp,sp,48 +80000cc8: 00008067 ret +80000ccc: 00492783 lw a5,4(s2) +80000cd0: 0044a683 lw a3,4(s1) +80000cd4: fff78793 addi a5,a5,-1 +80000cd8: 04878e63 beq a5,s0,80000d34 <__call_exitprocs+0x10c> +80000cdc: 0004a223 sw zero,4(s1) +80000ce0: fa0688e3 beqz a3,80000c90 <__call_exitprocs+0x68> +80000ce4: 18892783 lw a5,392(s2) +80000ce8: 008a9733 sll a4,s5,s0 +80000cec: 00492c03 lw s8,4(s2) +80000cf0: 00f777b3 and a5,a4,a5 +80000cf4: 02079263 bnez a5,80000d18 <__call_exitprocs+0xf0> +80000cf8: 000680e7 jalr a3 +80000cfc: 00492703 lw a4,4(s2) +80000d00: 148a2783 lw a5,328(s4) +80000d04: 01871463 bne a4,s8,80000d0c <__call_exitprocs+0xe4> +80000d08: f8f904e3 beq s2,a5,80000c90 <__call_exitprocs+0x68> +80000d0c: f80788e3 beqz a5,80000c9c <__call_exitprocs+0x74> +80000d10: 00078913 mv s2,a5 +80000d14: f5dff06f j 80000c70 <__call_exitprocs+0x48> +80000d18: 18c92783 lw a5,396(s2) +80000d1c: 0844a583 lw a1,132(s1) +80000d20: 00f77733 and a4,a4,a5 +80000d24: 00071c63 bnez a4,80000d3c <__call_exitprocs+0x114> +80000d28: 000b0513 mv a0,s6 +80000d2c: 000680e7 jalr a3 +80000d30: fcdff06f j 80000cfc <__call_exitprocs+0xd4> +80000d34: 00892223 sw s0,4(s2) +80000d38: fa9ff06f j 80000ce0 <__call_exitprocs+0xb8> +80000d3c: 00058513 mv a0,a1 +80000d40: 000680e7 jalr a3 +80000d44: fb9ff06f j 80000cfc <__call_exitprocs+0xd4> Disassembly of section .rodata: -80003be8 : -80003be8: 654c flw fa1,12(a0) -80003bea: 2774 fld fa3,200(a4) -80003bec: 74732073 csrs 0x747,t1 -80003bf0: 7261 lui tp,0xffff8 -80003bf2: 2e74 fld fa3,216(a2) -80003bf4: 2e2e fld ft8,200(sp) -80003bf6: 2820 fld fs0,80(s0) -80003bf8: 6854 flw fa3,20(s0) -80003bfa: 7369 lui t1,0xffffa -80003bfc: 6d20 flw fs0,88(a0) -80003bfe: 6769 lui a4,0x1a -80003c00: 7468 flw fa0,108(s0) -80003c02: 7420 flw fs0,104(s0) -80003c04: 6b61 lui s6,0x18 -80003c06: 2065 jal 80003cae <__errno+0xce> -80003c08: 2061 jal 80003c90 <__errno+0xb0> -80003c0a: 6c696877 0x6c696877 -80003c0e: 2965 jal 800040c6 -80003c10: 000a c.slli zero,0x2 -80003c12: 0000 unimp -80003c14: 3254 fld fa3,160(a2) -80003c16: 4620 lw s0,72(a2) -80003c18: 6961 lui s2,0x18 -80003c1a: 206c fld fa1,192(s0) -80003c1c: 00206e6f jal t3,80009c1e <__BSS_END__+0x5286> -80003c20: 3e2d7257 0x3e2d7257 -80003c24: 6572 flw fa0,28(sp) -80003c26: 6461 lui s0,0x18 -80003c28: 6120 flw fs0,64(a0) -80003c2a: 646e flw fs0,216(sp) -80003c2c: 7220 flw fs0,96(a2) -80003c2e: 7065 c.lui zero,0xffff9 -80003c30: 6165 addi sp,sp,112 -80003c32: 2874 fld fa3,208(s0) -80003c34: 20297257 0x20297257 -80003c38: 6574 flw fa3,76(a0) -80003c3a: 20737473 csrrci s0,0x207,6 -80003c3e: 6170 flw fa2,68(a0) -80003c40: 64657373 csrrci t1,0x646,10 -80003c44: 0a21 addi s4,s4,8 -80003c46: 0000 unimp -80003c48: 706d6953 0x706d6953 -80003c4c: 656c flw fa1,76(a0) -80003c4e: 4d20 lw s0,88(a0) -80003c50: 6961 lui s2,0x18 -80003c52: 0a6e slli s4,s4,0x1b -80003c54: 0000 unimp -80003c56: 0000 unimp -80003c58: 6574 flw fa3,76(a0) -80003c5a: 645f7473 csrrci s0,0x645,30 -80003c5e: 7669 lui a2,0xffffa -80003c60: 7265 lui tp,0xffff9 -80003c62: 636e6567 0x636e6567 -80003c66: 0a65 addi s4,s4,25 -80003c68: 0000 unimp -80003c6a: 0000 unimp -80003c6c: 6574 flw fa3,76(a0) -80003c6e: 775f7473 csrrci s0,0x775,30 -80003c72: 77617073 csrci 0x776,2 -80003c76: 0a6e slli s4,s4,0x1b -80003c78: 0000 unimp -80003c7a: 0000 unimp -80003c7c: 72616853 0x72616853 -80003c80: 6465 lui s0,0x19 -80003c82: 4d20 lw s0,88(a0) -80003c84: 6d65 lui s10,0x19 -80003c86: 2079726f jal tp,8009b68c <__BSS_END__+0x96cf4> -80003c8a: 6574 flw fa3,76(a0) -80003c8c: 000a7473 csrrci s0,ustatus,20 -80003c90: 7470 flw fa2,108(s0) -80003c92: 3a72 fld fs4,312(sp) -80003c94: 0020 addi s0,sp,8 -80003c96: 0000 unimp -80003c98: 6769724f fnmadd.q ft4,fs2,fs6,fa2 -80003c9c: 6e69 lui t3,0x1a -80003c9e: 6c61 lui s8,0x18 -80003ca0: 5620 lw s0,104(a2) -80003ca2: 6c61 lui s8,0x18 -80003ca4: 6575 lui a0,0x1d -80003ca6: 203a fld ft0,392(sp) -80003ca8: 0000 unimp -80003caa: 0000 unimp -80003cac: 6552 flw fa0,20(sp) -80003cae: 6461 lui s0,0x18 -80003cb0: 5620 lw s0,104(a2) -80003cb2: 6c61 lui s8,0x18 -80003cb4: 6575 lui a0,0x1d -80003cb6: 203a fld ft0,392(sp) -80003cb8: 0000 unimp -80003cba: 0000 unimp -80003cbc: 2d2d jal 800042f6 -80003cbe: 2d2d jal 800042f8 -80003cc0: 2d2d jal 800042fa -80003cc2: 2d2d jal 800042fc -80003cc4: 2d2d jal 800042fe -80003cc6: 2d2d jal 80004300 -80003cc8: 2d2d jal 80004302 -80003cca: 2d2d jal 80004304 -80003ccc: 2d2d jal 80004306 -80003cce: 0a2d addi s4,s4,11 -80003cd0: 0000 unimp -80003cd2: 0000 unimp -80003cd4: 7876 flw fa6,124(sp) -80003cd6: 735f 6170 6e77 0x6e776170735f -80003cdc: 775f 7261 7370 0x73707261775f -80003ce2: 6d20 flw fs0,88(a0) -80003ce4: 7461 lui s0,0xffff8 -80003ce6: 615f 6464 6b5f 0x6b5f6464615f -80003cec: 7265 lui tp,0xffff9 -80003cee: 656e flw fa0,216(sp) -80003cf0: 0a6c addi a1,sp,284 -80003cf2: 0000 unimp -80003cf4: 74696157 0x74696157 -80003cf8: 6e69 lui t3,0x1a -80003cfa: 6f742067 0x6f742067 -80003cfe: 6520 flw fs0,72(a0) -80003d00: 736e flw ft6,248(sp) -80003d02: 7275 lui tp,0xffffd -80003d04: 2065 jal 80003dac -80003d06: 6568746f jal s0,8008b35c <__BSS_END__+0x869c4> -80003d0a: 2072 fld ft0,280(sp) -80003d0c: 70726177 0x70726177 -80003d10: 72612073 csrs 0x726,sp -80003d14: 2065 jal 80003dbc -80003d16: 6f64 flw fs1,92(a4) -80003d18: 656e flw fa0,216(sp) -80003d1a: 2e2e fld ft8,200(sp) -80003d1c: 202e fld ft0,200(sp) -80003d1e: 5428 lw a0,104(s0) -80003d20: 6b61 lui s6,0x18 -80003d22: 7365 lui t1,0xffff9 -80003d24: 6120 flw fs0,64(a0) -80003d26: 7720 flw fs0,104(a4) -80003d28: 6968 flw fa0,84(a0) -80003d2a: 656c flw fa1,76(a0) -80003d2c: 0a29 addi s4,s4,10 -80003d2e: 0000 unimp -80003d30: 6574 flw fa3,76(a0) -80003d32: 6e697473 csrrci s0,0x6e6,18 -80003d36: 6d745f67 0x6d745f67 -80003d3a: 00000a63 beqz zero,80003d4e <__errno+0x16e> -80003d3e: 0000 unimp -80003d40: 6574 flw fa3,76(a0) -80003d42: 735f7473 csrrci s0,0x735,30 -80003d46: 6170 flw fa2,68(a0) -80003d48: 000a6e77 0xa6e77 -80003d4c: 0030 addi a2,sp,8 -80003d4e: 0000 unimp -80003d50: 0031 c.nop 12 -80003d52: 0000 unimp -80003d54: 0032 c.slli zero,0xc -80003d56: 0000 unimp -80003d58: 00000033 add zero,zero,zero -80003d5c: 0034 addi a3,sp,8 -80003d5e: 0000 unimp -80003d60: 0035 c.nop 13 -80003d62: 0000 unimp -80003d64: 0036 c.slli zero,0xd -80003d66: 0000 unimp -80003d68: 00000037 lui zero,0x0 -80003d6c: 0038 addi a4,sp,8 -80003d6e: 0000 unimp -80003d70: 0039 c.nop 14 -80003d72: 0000 unimp -80003d74: 0061 c.nop 24 -80003d76: 0000 unimp -80003d78: 0062 c.slli zero,0x18 -80003d7a: 0000 unimp -80003d7c: 00000063 beqz zero,80003d7c <__errno+0x19c> -80003d80: 0064 addi s1,sp,12 -80003d82: 0000 unimp -80003d84: 0065 c.nop 25 -80003d86: 0000 unimp -80003d88: 0066 c.slli zero,0x19 +80000d48 : +80000d48: 654c flw fa1,12(a0) +80000d4a: 2774 fld fa3,200(a4) +80000d4c: 74732073 csrs 0x747,t1 +80000d50: 7261 lui tp,0xffff8 +80000d52: 2e74 fld fa3,216(a2) +80000d54: 2e2e fld ft8,200(sp) +80000d56: 2820 fld fs0,80(s0) +80000d58: 6854 flw fa3,20(s0) +80000d5a: 7369 lui t1,0xffffa +80000d5c: 6d20 flw fs0,88(a0) +80000d5e: 6769 lui a4,0x1a +80000d60: 7468 flw fa0,108(s0) +80000d62: 7420 flw fs0,104(s0) +80000d64: 6b61 lui s6,0x18 +80000d66: 2065 jal 80000e0e <__call_exitprocs+0x1e6> +80000d68: 2061 jal 80000df0 <__call_exitprocs+0x1c8> +80000d6a: 6c696877 0x6c696877 +80000d6e: 2965 jal 80001226 +80000d70: 000a c.slli zero,0x2 +80000d72: 0000 unimp +80000d74: 3254 fld fa3,160(a2) +80000d76: 4620 lw s0,72(a2) +80000d78: 6961 lui s2,0x18 +80000d7a: 206c fld fa1,192(s0) +80000d7c: 00206e6f jal t3,80006d7e <__global_pointer$+0x5576> +80000d80: 3e2d7257 0x3e2d7257 +80000d84: 6572 flw fa0,28(sp) +80000d86: 6461 lui s0,0x18 +80000d88: 6120 flw fs0,64(a0) +80000d8a: 646e flw fs0,216(sp) +80000d8c: 7220 flw fs0,96(a2) +80000d8e: 7065 c.lui zero,0xffff9 +80000d90: 6165 addi sp,sp,112 +80000d92: 2874 fld fa3,208(s0) +80000d94: 20297257 0x20297257 +80000d98: 6574 flw fa3,76(a0) +80000d9a: 20737473 csrrci s0,0x207,6 +80000d9e: 6170 flw fa2,68(a0) +80000da0: 64657373 csrrci t1,0x646,10 +80000da4: 0a21 addi s4,s4,8 +80000da6: 0000 unimp +80000da8: 706d6953 0x706d6953 +80000dac: 656c flw fa1,76(a0) +80000dae: 4d20 lw s0,88(a0) +80000db0: 6961 lui s2,0x18 +80000db2: 0a6e slli s4,s4,0x1b +80000db4: 0000 unimp +80000db6: 0000 unimp +80000db8: 6574 flw fa3,76(a0) +80000dba: 645f7473 csrrci s0,0x645,30 +80000dbe: 7669 lui a2,0xffffa +80000dc0: 7265 lui tp,0xffff9 +80000dc2: 636e6567 0x636e6567 +80000dc6: 0a65 addi s4,s4,25 +80000dc8: 0000 unimp +80000dca: 0000 unimp +80000dcc: 6574 flw fa3,76(a0) +80000dce: 775f7473 csrrci s0,0x775,30 +80000dd2: 77617073 csrci 0x776,2 +80000dd6: 0a6e slli s4,s4,0x1b +80000dd8: 0000 unimp +80000dda: 0000 unimp +80000ddc: 72616853 0x72616853 +80000de0: 6465 lui s0,0x19 +80000de2: 4d20 lw s0,88(a0) +80000de4: 6d65 lui s10,0x19 +80000de6: 2079726f jal tp,800987ec <__global_pointer$+0x96fe4> +80000dea: 6574 flw fa3,76(a0) +80000dec: 000a7473 csrrci s0,ustatus,20 +80000df0: 7470 flw fa2,108(s0) +80000df2: 3a72 fld fs4,312(sp) +80000df4: 0020 addi s0,sp,8 +80000df6: 0000 unimp +80000df8: 6769724f fnmadd.q ft4,fs2,fs6,fa2 +80000dfc: 6e69 lui t3,0x1a +80000dfe: 6c61 lui s8,0x18 +80000e00: 5620 lw s0,104(a2) +80000e02: 6c61 lui s8,0x18 +80000e04: 6575 lui a0,0x1d +80000e06: 203a fld ft0,392(sp) +80000e08: 0000 unimp +80000e0a: 0000 unimp +80000e0c: 6552 flw fa0,20(sp) +80000e0e: 6461 lui s0,0x18 +80000e10: 5620 lw s0,104(a2) +80000e12: 6c61 lui s8,0x18 +80000e14: 6575 lui a0,0x1d +80000e16: 203a fld ft0,392(sp) +80000e18: 0000 unimp +80000e1a: 0000 unimp +80000e1c: 2d2d jal 80001456 +80000e1e: 2d2d jal 80001458 +80000e20: 2d2d jal 8000145a +80000e22: 2d2d jal 8000145c +80000e24: 2d2d jal 8000145e +80000e26: 2d2d jal 80001460 +80000e28: 2d2d jal 80001462 +80000e2a: 2d2d jal 80001464 +80000e2c: 2d2d jal 80001466 +80000e2e: 0a2d addi s4,s4,11 +80000e30: 0000 unimp +80000e32: 0000 unimp +80000e34: 7876 flw fa6,124(sp) +80000e36: 735f 6170 6e77 0x6e776170735f +80000e3c: 775f 7261 7370 0x73707261775f +80000e42: 6d20 flw fs0,88(a0) +80000e44: 7461 lui s0,0xffff8 +80000e46: 615f 6464 6b5f 0x6b5f6464615f +80000e4c: 7265 lui tp,0xffff9 +80000e4e: 656e flw fa0,216(sp) +80000e50: 0a6c addi a1,sp,284 +80000e52: 0000 unimp +80000e54: 74696157 0x74696157 +80000e58: 6e69 lui t3,0x1a +80000e5a: 6f742067 0x6f742067 +80000e5e: 6520 flw fs0,72(a0) +80000e60: 736e flw ft6,248(sp) +80000e62: 7275 lui tp,0xffffd +80000e64: 2065 jal 80000f0c +80000e66: 6568746f jal s0,800884bc <__global_pointer$+0x86cb4> +80000e6a: 2072 fld ft0,280(sp) +80000e6c: 70726177 0x70726177 +80000e70: 72612073 csrs 0x726,sp +80000e74: 2065 jal 80000f1c +80000e76: 6f64 flw fs1,92(a4) +80000e78: 656e flw fa0,216(sp) +80000e7a: 2e2e fld ft8,200(sp) +80000e7c: 202e fld ft0,200(sp) +80000e7e: 5428 lw a0,104(s0) +80000e80: 6b61 lui s6,0x18 +80000e82: 7365 lui t1,0xffff9 +80000e84: 6120 flw fs0,64(a0) +80000e86: 7720 flw fs0,104(a4) +80000e88: 6968 flw fa0,84(a0) +80000e8a: 656c flw fa1,76(a0) +80000e8c: 0a29 addi s4,s4,10 +80000e8e: 0000 unimp +80000e90: 6574 flw fa3,76(a0) +80000e92: 6e697473 csrrci s0,0x6e6,18 +80000e96: 6d745f67 0x6d745f67 +80000e9a: 00000a63 beqz zero,80000eae <__call_exitprocs+0x286> +80000e9e: 0000 unimp +80000ea0: 6574 flw fa3,76(a0) +80000ea2: 735f7473 csrrci s0,0x735,30 +80000ea6: 6170 flw fa2,68(a0) +80000ea8: 000a6e77 0xa6e77 +80000eac: 0030 addi a2,sp,8 +80000eae: 0000 unimp +80000eb0: 0031 c.nop 12 +80000eb2: 0000 unimp +80000eb4: 0032 c.slli zero,0xc +80000eb6: 0000 unimp +80000eb8: 00000033 add zero,zero,zero +80000ebc: 0034 addi a3,sp,8 +80000ebe: 0000 unimp +80000ec0: 0035 c.nop 13 +80000ec2: 0000 unimp +80000ec4: 0036 c.slli zero,0xd +80000ec6: 0000 unimp +80000ec8: 00000037 lui zero,0x0 +80000ecc: 0038 addi a4,sp,8 +80000ece: 0000 unimp +80000ed0: 0039 c.nop 14 +80000ed2: 0000 unimp +80000ed4: 0061 c.nop 24 +80000ed6: 0000 unimp +80000ed8: 0062 c.slli zero,0x18 +80000eda: 0000 unimp +80000edc: 00000063 beqz zero,80000edc <__call_exitprocs+0x2b4> +80000ee0: 0064 addi s1,sp,12 +80000ee2: 0000 unimp +80000ee4: 0065 c.nop 25 +80000ee6: 0000 unimp +80000ee8: 0066 c.slli zero,0x19 ... -80003d8c : -80003d8c: 3d4c fld fa1,184(a0) -80003d8e: 8000 0x8000 -80003d90: 3d50 fld fa2,184(a0) -80003d92: 8000 0x8000 -80003d94: 3d54 fld fa3,184(a0) -80003d96: 8000 0x8000 -80003d98: 3d58 fld fa4,184(a0) -80003d9a: 8000 0x8000 -80003d9c: 3d5c fld fa5,184(a0) -80003d9e: 8000 0x8000 -80003da0: 3d60 fld fs0,248(a0) -80003da2: 8000 0x8000 -80003da4: 3d64 fld fs1,248(a0) -80003da6: 8000 0x8000 -80003da8: 3d68 fld fa0,248(a0) -80003daa: 8000 0x8000 -80003dac: 3d6c fld fa1,248(a0) -80003dae: 8000 0x8000 -80003db0: 3d70 fld fa2,248(a0) -80003db2: 8000 0x8000 -80003db4: 3d74 fld fa3,248(a0) -80003db6: 8000 0x8000 -80003db8: 3d78 fld fa4,248(a0) -80003dba: 8000 0x8000 -80003dbc: 3d7c fld fa5,248(a0) -80003dbe: 8000 0x8000 -80003dc0: 3d80 fld fs0,56(a1) -80003dc2: 8000 0x8000 -80003dc4: 3d84 fld fs1,56(a1) -80003dc6: 8000 0x8000 -80003dc8: 3d88 fld fa0,56(a1) -80003dca: 8000 0x8000 -80003dcc: 5245 li tp,-15 -80003dce: 4f52 lw t5,20(sp) -80003dd0: 3a52 fld fs4,304(sp) -80003dd2: 7020 flw fs0,96(s0) -80003dd4: 5f6c636f jal t1,800ca3ca <__BSS_END__+0xc5a32> -80003dd8: 77617073 csrci 0x776,2 -80003ddc: 206e fld ft0,216(sp) -80003dde: 6f64 flw fs1,92(a4) -80003de0: 7365 lui t1,0xffff9 -80003de2: 276e fld fa4,216(sp) -80003de4: 2074 fld fa3,192(s0) -80003de6: 70707573 csrrci a0,0x707,0 -80003dea: 2074726f jal tp,8004b7f0 <__BSS_END__+0x46e58> -80003dee: 205a fld ft0,400(sp) -80003df0: 6964 flw fs1,84(a0) -80003df2: 656d lui a0,0x1b -80003df4: 736e flw ft6,248(sp) -80003df6: 6f69 lui t5,0x1a -80003df8: 206e fld ft0,216(sp) -80003dfa: 6579 lui a0,0x1e -80003dfc: 2174 fld fa3,192(a0) - ... +80000eec : +80000eec: 0eac addi a1,sp,856 +80000eee: 8000 0x8000 +80000ef0: 0eb0 addi a2,sp,856 +80000ef2: 8000 0x8000 +80000ef4: 0eb4 addi a3,sp,856 +80000ef6: 8000 0x8000 +80000ef8: 0eb8 addi a4,sp,856 +80000efa: 8000 0x8000 +80000efc: 0ebc addi a5,sp,856 +80000efe: 8000 0x8000 +80000f00: 0ec0 addi s0,sp,852 +80000f02: 8000 0x8000 +80000f04: 0ec4 addi s1,sp,852 +80000f06: 8000 0x8000 +80000f08: 0ec8 addi a0,sp,852 +80000f0a: 8000 0x8000 +80000f0c: 0ecc addi a1,sp,852 +80000f0e: 8000 0x8000 +80000f10: 0ed0 addi a2,sp,852 +80000f12: 8000 0x8000 +80000f14: 0ed4 addi a3,sp,852 +80000f16: 8000 0x8000 +80000f18: 0ed8 addi a4,sp,852 +80000f1a: 8000 0x8000 +80000f1c: 0edc addi a5,sp,852 +80000f1e: 8000 0x8000 +80000f20: 0ee0 addi s0,sp,860 +80000f22: 8000 0x8000 +80000f24: 0ee4 addi s1,sp,860 +80000f26: 8000 0x8000 +80000f28: 0ee8 addi a0,sp,860 +80000f2a: 8000 0x8000 Disassembly of section .init_array: -80004000 <__init_array_start>: -80004000: 0260 addi s0,sp,268 -80004002: 8000 0x8000 +80001000 <__init_array_start>: +80001000: 0260 addi s0,sp,268 +80001002: 8000 0x8000 Disassembly of section .data: -80004008 : -80004008: 0005 c.nop 1 -8000400a: 0000 unimp -8000400c: 0005 c.nop 1 -8000400e: 0000 unimp -80004010: 0005 c.nop 1 -80004012: 0000 unimp -80004014: 0005 c.nop 1 -80004016: 0000 unimp -80004018: 0006 c.slli zero,0x1 -8000401a: 0000 unimp -8000401c: 0006 c.slli zero,0x1 -8000401e: 0000 unimp -80004020: 0006 c.slli zero,0x1 -80004022: 0000 unimp -80004024: 0006 c.slli zero,0x1 -80004026: 0000 unimp -80004028: 00000007 0x7 -8000402c: 00000007 0x7 -80004030: 00000007 0x7 -80004034: 00000007 0x7 -80004038: 0008 0x8 -8000403a: 0000 unimp -8000403c: 0008 0x8 -8000403e: 0000 unimp -80004040: 0008 0x8 -80004042: 0000 unimp -80004044: 0008 0x8 +80001008 : +80001008: 0005 c.nop 1 +8000100a: 0000 unimp +8000100c: 0005 c.nop 1 +8000100e: 0000 unimp +80001010: 0005 c.nop 1 +80001012: 0000 unimp +80001014: 0005 c.nop 1 +80001016: 0000 unimp +80001018: 0006 c.slli zero,0x1 +8000101a: 0000 unimp +8000101c: 0006 c.slli zero,0x1 +8000101e: 0000 unimp +80001020: 0006 c.slli zero,0x1 +80001022: 0000 unimp +80001024: 0006 c.slli zero,0x1 +80001026: 0000 unimp +80001028: 00000007 0x7 +8000102c: 00000007 0x7 +80001030: 00000007 0x7 +80001034: 00000007 0x7 +80001038: 0008 0x8 +8000103a: 0000 unimp +8000103c: 0008 0x8 +8000103e: 0000 unimp +80001040: 0008 0x8 +80001042: 0000 unimp +80001044: 0008 0x8 ... -80004048 : -80004048: 0001 nop -8000404a: 0000 unimp -8000404c: 0001 nop -8000404e: 0000 unimp -80004050: 0001 nop -80004052: 0000 unimp -80004054: 0001 nop -80004056: 0000 unimp -80004058: 0001 nop -8000405a: 0000 unimp -8000405c: 0001 nop -8000405e: 0000 unimp -80004060: 0001 nop -80004062: 0000 unimp -80004064: 0001 nop -80004066: 0000 unimp -80004068: 0001 nop -8000406a: 0000 unimp -8000406c: 0001 nop -8000406e: 0000 unimp -80004070: 0001 nop -80004072: 0000 unimp -80004074: 0001 nop -80004076: 0000 unimp -80004078: 0001 nop -8000407a: 0000 unimp -8000407c: 0001 nop -8000407e: 0000 unimp -80004080: 0001 nop -80004082: 0000 unimp -80004084: 0001 nop +80001048 : +80001048: 0001 nop +8000104a: 0000 unimp +8000104c: 0001 nop +8000104e: 0000 unimp +80001050: 0001 nop +80001052: 0000 unimp +80001054: 0001 nop +80001056: 0000 unimp +80001058: 0001 nop +8000105a: 0000 unimp +8000105c: 0001 nop +8000105e: 0000 unimp +80001060: 0001 nop +80001062: 0000 unimp +80001064: 0001 nop +80001066: 0000 unimp +80001068: 0001 nop +8000106a: 0000 unimp +8000106c: 0001 nop +8000106e: 0000 unimp +80001070: 0001 nop +80001072: 0000 unimp +80001074: 0001 nop +80001076: 0000 unimp +80001078: 0001 nop +8000107a: 0000 unimp +8000107c: 0001 nop +8000107e: 0000 unimp +80001080: 0001 nop +80001082: 0000 unimp +80001084: 0001 nop ... -80004088 : -80004088: 0005 c.nop 1 -8000408a: 0000 unimp -8000408c: 0005 c.nop 1 -8000408e: 0000 unimp -80004090: 0005 c.nop 1 -80004092: 0000 unimp -80004094: 0005 c.nop 1 +80001088 : +80001088: 0005 c.nop 1 +8000108a: 0000 unimp +8000108c: 0005 c.nop 1 +8000108e: 0000 unimp +80001090: 0005 c.nop 1 +80001092: 0000 unimp +80001094: 0005 c.nop 1 ... -80004098 : -80004098: fffc fsw fa5,124(a5) -8000409a: ffff 0xffff -8000409c: 0000 unimp +80001098 : +80001098: fffc fsw fa5,124(a5) +8000109a: ffff 0xffff +8000109c: 0000 unimp ... -800040a0 : -800040a0: 0000 unimp -800040a2: 0000 unimp -800040a4: 438c lw a1,0(a5) -800040a6: 8000 0x8000 -800040a8: 43f4 lw a3,68(a5) -800040aa: 8000 0x8000 -800040ac: 445c lw a5,12(s0) -800040ae: 8000 0x8000 +800010a0 : +800010a0: 0000 unimp +800010a2: 0000 unimp +800010a4: 138c addi a1,sp,480 +800010a6: 8000 0x8000 +800010a8: 13f4 addi a3,sp,492 +800010aa: 8000 0x8000 +800010ac: 145c addi a5,sp,548 +800010ae: 8000 0x8000 ... -80004148: 0001 nop -8000414a: 0000 unimp -8000414c: 0000 unimp -8000414e: 0000 unimp -80004150: 330e fld ft6,224(sp) -80004152: abcd j 80004744 <__malloc_av_+0x27c> -80004154: 1234 addi a3,sp,296 -80004156: e66d bnez a2,80004240 -80004158: deec sw a1,124(a3) -8000415a: 0005 c.nop 1 -8000415c: 0000000b 0xb +80001148: 0001 nop +8000114a: 0000 unimp +8000114c: 0000 unimp +8000114e: 0000 unimp +80001150: 330e fld ft6,224(sp) +80001152: abcd j 80001744 <__BSS_END__+0x214> +80001154: 1234 addi a3,sp,296 +80001156: e66d bnez a2,80001240 +80001158: deec sw a1,124(a3) +8000115a: 0005 c.nop 1 +8000115c: 0000000b 0xb ... -800044c8 <__malloc_av_>: - ... -800044d0: 44c8 lw a0,12(s1) -800044d2: 8000 0x8000 -800044d4: 44c8 lw a0,12(s1) -800044d6: 8000 0x8000 -800044d8: 44d0 lw a2,12(s1) -800044da: 8000 0x8000 -800044dc: 44d0 lw a2,12(s1) -800044de: 8000 0x8000 -800044e0: 44d8 lw a4,12(s1) -800044e2: 8000 0x8000 -800044e4: 44d8 lw a4,12(s1) -800044e6: 8000 0x8000 -800044e8: 44e0 lw s0,76(s1) -800044ea: 8000 0x8000 -800044ec: 44e0 lw s0,76(s1) -800044ee: 8000 0x8000 -800044f0: 44e8 lw a0,76(s1) -800044f2: 8000 0x8000 -800044f4: 44e8 lw a0,76(s1) -800044f6: 8000 0x8000 -800044f8: 44f0 lw a2,76(s1) -800044fa: 8000 0x8000 -800044fc: 44f0 lw a2,76(s1) -800044fe: 8000 0x8000 -80004500: 44f8 lw a4,76(s1) -80004502: 8000 0x8000 -80004504: 44f8 lw a4,76(s1) -80004506: 8000 0x8000 -80004508: 4500 lw s0,8(a0) -8000450a: 8000 0x8000 -8000450c: 4500 lw s0,8(a0) -8000450e: 8000 0x8000 -80004510: 4508 lw a0,8(a0) -80004512: 8000 0x8000 -80004514: 4508 lw a0,8(a0) -80004516: 8000 0x8000 -80004518: 4510 lw a2,8(a0) -8000451a: 8000 0x8000 -8000451c: 4510 lw a2,8(a0) -8000451e: 8000 0x8000 -80004520: 4518 lw a4,8(a0) -80004522: 8000 0x8000 -80004524: 4518 lw a4,8(a0) -80004526: 8000 0x8000 -80004528: 4520 lw s0,72(a0) -8000452a: 8000 0x8000 -8000452c: 4520 lw s0,72(a0) -8000452e: 8000 0x8000 -80004530: 4528 lw a0,72(a0) -80004532: 8000 0x8000 -80004534: 4528 lw a0,72(a0) -80004536: 8000 0x8000 -80004538: 4530 lw a2,72(a0) -8000453a: 8000 0x8000 -8000453c: 4530 lw a2,72(a0) -8000453e: 8000 0x8000 -80004540: 4538 lw a4,72(a0) -80004542: 8000 0x8000 -80004544: 4538 lw a4,72(a0) -80004546: 8000 0x8000 -80004548: 4540 lw s0,12(a0) -8000454a: 8000 0x8000 -8000454c: 4540 lw s0,12(a0) -8000454e: 8000 0x8000 -80004550: 4548 lw a0,12(a0) -80004552: 8000 0x8000 -80004554: 4548 lw a0,12(a0) -80004556: 8000 0x8000 -80004558: 4550 lw a2,12(a0) -8000455a: 8000 0x8000 -8000455c: 4550 lw a2,12(a0) -8000455e: 8000 0x8000 -80004560: 4558 lw a4,12(a0) -80004562: 8000 0x8000 -80004564: 4558 lw a4,12(a0) -80004566: 8000 0x8000 -80004568: 4560 lw s0,76(a0) -8000456a: 8000 0x8000 -8000456c: 4560 lw s0,76(a0) -8000456e: 8000 0x8000 -80004570: 4568 lw a0,76(a0) -80004572: 8000 0x8000 -80004574: 4568 lw a0,76(a0) -80004576: 8000 0x8000 -80004578: 4570 lw a2,76(a0) -8000457a: 8000 0x8000 -8000457c: 4570 lw a2,76(a0) -8000457e: 8000 0x8000 -80004580: 4578 lw a4,76(a0) -80004582: 8000 0x8000 -80004584: 4578 lw a4,76(a0) -80004586: 8000 0x8000 -80004588: 4580 lw s0,8(a1) -8000458a: 8000 0x8000 -8000458c: 4580 lw s0,8(a1) -8000458e: 8000 0x8000 -80004590: 4588 lw a0,8(a1) -80004592: 8000 0x8000 -80004594: 4588 lw a0,8(a1) -80004596: 8000 0x8000 -80004598: 4590 lw a2,8(a1) -8000459a: 8000 0x8000 -8000459c: 4590 lw a2,8(a1) -8000459e: 8000 0x8000 -800045a0: 4598 lw a4,8(a1) -800045a2: 8000 0x8000 -800045a4: 4598 lw a4,8(a1) -800045a6: 8000 0x8000 -800045a8: 45a0 lw s0,72(a1) -800045aa: 8000 0x8000 -800045ac: 45a0 lw s0,72(a1) -800045ae: 8000 0x8000 -800045b0: 45a8 lw a0,72(a1) -800045b2: 8000 0x8000 -800045b4: 45a8 lw a0,72(a1) -800045b6: 8000 0x8000 -800045b8: 45b0 lw a2,72(a1) -800045ba: 8000 0x8000 -800045bc: 45b0 lw a2,72(a1) -800045be: 8000 0x8000 -800045c0: 45b8 lw a4,72(a1) -800045c2: 8000 0x8000 -800045c4: 45b8 lw a4,72(a1) -800045c6: 8000 0x8000 -800045c8: 45c0 lw s0,12(a1) -800045ca: 8000 0x8000 -800045cc: 45c0 lw s0,12(a1) -800045ce: 8000 0x8000 -800045d0: 45c8 lw a0,12(a1) -800045d2: 8000 0x8000 -800045d4: 45c8 lw a0,12(a1) -800045d6: 8000 0x8000 -800045d8: 45d0 lw a2,12(a1) -800045da: 8000 0x8000 -800045dc: 45d0 lw a2,12(a1) -800045de: 8000 0x8000 -800045e0: 45d8 lw a4,12(a1) -800045e2: 8000 0x8000 -800045e4: 45d8 lw a4,12(a1) -800045e6: 8000 0x8000 -800045e8: 45e0 lw s0,76(a1) -800045ea: 8000 0x8000 -800045ec: 45e0 lw s0,76(a1) -800045ee: 8000 0x8000 -800045f0: 45e8 lw a0,76(a1) -800045f2: 8000 0x8000 -800045f4: 45e8 lw a0,76(a1) -800045f6: 8000 0x8000 -800045f8: 45f0 lw a2,76(a1) -800045fa: 8000 0x8000 -800045fc: 45f0 lw a2,76(a1) -800045fe: 8000 0x8000 -80004600: 45f8 lw a4,76(a1) -80004602: 8000 0x8000 -80004604: 45f8 lw a4,76(a1) -80004606: 8000 0x8000 -80004608: 4600 lw s0,8(a2) -8000460a: 8000 0x8000 -8000460c: 4600 lw s0,8(a2) -8000460e: 8000 0x8000 -80004610: 4608 lw a0,8(a2) -80004612: 8000 0x8000 -80004614: 4608 lw a0,8(a2) -80004616: 8000 0x8000 -80004618: 4610 lw a2,8(a2) -8000461a: 8000 0x8000 -8000461c: 4610 lw a2,8(a2) -8000461e: 8000 0x8000 -80004620: 4618 lw a4,8(a2) -80004622: 8000 0x8000 -80004624: 4618 lw a4,8(a2) -80004626: 8000 0x8000 -80004628: 4620 lw s0,72(a2) -8000462a: 8000 0x8000 -8000462c: 4620 lw s0,72(a2) -8000462e: 8000 0x8000 -80004630: 4628 lw a0,72(a2) -80004632: 8000 0x8000 -80004634: 4628 lw a0,72(a2) -80004636: 8000 0x8000 -80004638: 4630 lw a2,72(a2) -8000463a: 8000 0x8000 -8000463c: 4630 lw a2,72(a2) -8000463e: 8000 0x8000 -80004640: 4638 lw a4,72(a2) -80004642: 8000 0x8000 -80004644: 4638 lw a4,72(a2) -80004646: 8000 0x8000 -80004648: 4640 lw s0,12(a2) -8000464a: 8000 0x8000 -8000464c: 4640 lw s0,12(a2) -8000464e: 8000 0x8000 -80004650: 4648 lw a0,12(a2) -80004652: 8000 0x8000 -80004654: 4648 lw a0,12(a2) -80004656: 8000 0x8000 -80004658: 4650 lw a2,12(a2) -8000465a: 8000 0x8000 -8000465c: 4650 lw a2,12(a2) -8000465e: 8000 0x8000 -80004660: 4658 lw a4,12(a2) -80004662: 8000 0x8000 -80004664: 4658 lw a4,12(a2) -80004666: 8000 0x8000 -80004668: 4660 lw s0,76(a2) -8000466a: 8000 0x8000 -8000466c: 4660 lw s0,76(a2) -8000466e: 8000 0x8000 -80004670: 4668 lw a0,76(a2) -80004672: 8000 0x8000 -80004674: 4668 lw a0,76(a2) -80004676: 8000 0x8000 -80004678: 4670 lw a2,76(a2) -8000467a: 8000 0x8000 -8000467c: 4670 lw a2,76(a2) -8000467e: 8000 0x8000 -80004680: 4678 lw a4,76(a2) -80004682: 8000 0x8000 -80004684: 4678 lw a4,76(a2) -80004686: 8000 0x8000 -80004688: 4680 lw s0,8(a3) -8000468a: 8000 0x8000 -8000468c: 4680 lw s0,8(a3) -8000468e: 8000 0x8000 -80004690: 4688 lw a0,8(a3) -80004692: 8000 0x8000 -80004694: 4688 lw a0,8(a3) -80004696: 8000 0x8000 -80004698: 4690 lw a2,8(a3) -8000469a: 8000 0x8000 -8000469c: 4690 lw a2,8(a3) -8000469e: 8000 0x8000 -800046a0: 4698 lw a4,8(a3) -800046a2: 8000 0x8000 -800046a4: 4698 lw a4,8(a3) -800046a6: 8000 0x8000 -800046a8: 46a0 lw s0,72(a3) -800046aa: 8000 0x8000 -800046ac: 46a0 lw s0,72(a3) -800046ae: 8000 0x8000 -800046b0: 46a8 lw a0,72(a3) -800046b2: 8000 0x8000 -800046b4: 46a8 lw a0,72(a3) -800046b6: 8000 0x8000 -800046b8: 46b0 lw a2,72(a3) -800046ba: 8000 0x8000 -800046bc: 46b0 lw a2,72(a3) -800046be: 8000 0x8000 -800046c0: 46b8 lw a4,72(a3) -800046c2: 8000 0x8000 -800046c4: 46b8 lw a4,72(a3) -800046c6: 8000 0x8000 -800046c8: 46c0 lw s0,12(a3) -800046ca: 8000 0x8000 -800046cc: 46c0 lw s0,12(a3) -800046ce: 8000 0x8000 -800046d0: 46c8 lw a0,12(a3) -800046d2: 8000 0x8000 -800046d4: 46c8 lw a0,12(a3) -800046d6: 8000 0x8000 -800046d8: 46d0 lw a2,12(a3) -800046da: 8000 0x8000 -800046dc: 46d0 lw a2,12(a3) -800046de: 8000 0x8000 -800046e0: 46d8 lw a4,12(a3) -800046e2: 8000 0x8000 -800046e4: 46d8 lw a4,12(a3) -800046e6: 8000 0x8000 -800046e8: 46e0 lw s0,76(a3) -800046ea: 8000 0x8000 -800046ec: 46e0 lw s0,76(a3) -800046ee: 8000 0x8000 -800046f0: 46e8 lw a0,76(a3) -800046f2: 8000 0x8000 -800046f4: 46e8 lw a0,76(a3) -800046f6: 8000 0x8000 -800046f8: 46f0 lw a2,76(a3) -800046fa: 8000 0x8000 -800046fc: 46f0 lw a2,76(a3) -800046fe: 8000 0x8000 -80004700: 46f8 lw a4,76(a3) -80004702: 8000 0x8000 -80004704: 46f8 lw a4,76(a3) -80004706: 8000 0x8000 -80004708: 4700 lw s0,8(a4) -8000470a: 8000 0x8000 -8000470c: 4700 lw s0,8(a4) -8000470e: 8000 0x8000 -80004710: 4708 lw a0,8(a4) -80004712: 8000 0x8000 -80004714: 4708 lw a0,8(a4) -80004716: 8000 0x8000 -80004718: 4710 lw a2,8(a4) -8000471a: 8000 0x8000 -8000471c: 4710 lw a2,8(a4) -8000471e: 8000 0x8000 -80004720: 4718 lw a4,8(a4) -80004722: 8000 0x8000 -80004724: 4718 lw a4,8(a4) -80004726: 8000 0x8000 -80004728: 4720 lw s0,72(a4) -8000472a: 8000 0x8000 -8000472c: 4720 lw s0,72(a4) -8000472e: 8000 0x8000 -80004730: 4728 lw a0,72(a4) -80004732: 8000 0x8000 -80004734: 4728 lw a0,72(a4) -80004736: 8000 0x8000 -80004738: 4730 lw a2,72(a4) -8000473a: 8000 0x8000 -8000473c: 4730 lw a2,72(a4) -8000473e: 8000 0x8000 -80004740: 4738 lw a4,72(a4) -80004742: 8000 0x8000 -80004744: 4738 lw a4,72(a4) -80004746: 8000 0x8000 -80004748: 4740 lw s0,12(a4) -8000474a: 8000 0x8000 -8000474c: 4740 lw s0,12(a4) -8000474e: 8000 0x8000 -80004750: 4748 lw a0,12(a4) -80004752: 8000 0x8000 -80004754: 4748 lw a0,12(a4) -80004756: 8000 0x8000 -80004758: 4750 lw a2,12(a4) -8000475a: 8000 0x8000 -8000475c: 4750 lw a2,12(a4) -8000475e: 8000 0x8000 -80004760: 4758 lw a4,12(a4) -80004762: 8000 0x8000 -80004764: 4758 lw a4,12(a4) -80004766: 8000 0x8000 -80004768: 4760 lw s0,76(a4) -8000476a: 8000 0x8000 -8000476c: 4760 lw s0,76(a4) -8000476e: 8000 0x8000 -80004770: 4768 lw a0,76(a4) -80004772: 8000 0x8000 -80004774: 4768 lw a0,76(a4) -80004776: 8000 0x8000 -80004778: 4770 lw a2,76(a4) -8000477a: 8000 0x8000 -8000477c: 4770 lw a2,76(a4) -8000477e: 8000 0x8000 -80004780: 4778 lw a4,76(a4) -80004782: 8000 0x8000 -80004784: 4778 lw a4,76(a4) -80004786: 8000 0x8000 -80004788: 4780 lw s0,8(a5) -8000478a: 8000 0x8000 -8000478c: 4780 lw s0,8(a5) -8000478e: 8000 0x8000 -80004790: 4788 lw a0,8(a5) -80004792: 8000 0x8000 -80004794: 4788 lw a0,8(a5) -80004796: 8000 0x8000 -80004798: 4790 lw a2,8(a5) -8000479a: 8000 0x8000 -8000479c: 4790 lw a2,8(a5) -8000479e: 8000 0x8000 -800047a0: 4798 lw a4,8(a5) -800047a2: 8000 0x8000 -800047a4: 4798 lw a4,8(a5) -800047a6: 8000 0x8000 -800047a8: 47a0 lw s0,72(a5) -800047aa: 8000 0x8000 -800047ac: 47a0 lw s0,72(a5) -800047ae: 8000 0x8000 -800047b0: 47a8 lw a0,72(a5) -800047b2: 8000 0x8000 -800047b4: 47a8 lw a0,72(a5) -800047b6: 8000 0x8000 -800047b8: 47b0 lw a2,72(a5) -800047ba: 8000 0x8000 -800047bc: 47b0 lw a2,72(a5) -800047be: 8000 0x8000 -800047c0: 47b8 lw a4,72(a5) -800047c2: 8000 0x8000 -800047c4: 47b8 lw a4,72(a5) -800047c6: 8000 0x8000 -800047c8: 47c0 lw s0,12(a5) -800047ca: 8000 0x8000 -800047cc: 47c0 lw s0,12(a5) -800047ce: 8000 0x8000 -800047d0: 47c8 lw a0,12(a5) -800047d2: 8000 0x8000 -800047d4: 47c8 lw a0,12(a5) -800047d6: 8000 0x8000 -800047d8: 47d0 lw a2,12(a5) -800047da: 8000 0x8000 -800047dc: 47d0 lw a2,12(a5) -800047de: 8000 0x8000 -800047e0: 47d8 lw a4,12(a5) -800047e2: 8000 0x8000 -800047e4: 47d8 lw a4,12(a5) -800047e6: 8000 0x8000 -800047e8: 47e0 lw s0,76(a5) -800047ea: 8000 0x8000 -800047ec: 47e0 lw s0,76(a5) -800047ee: 8000 0x8000 -800047f0: 47e8 lw a0,76(a5) -800047f2: 8000 0x8000 -800047f4: 47e8 lw a0,76(a5) -800047f6: 8000 0x8000 -800047f8: 47f0 lw a2,76(a5) -800047fa: 8000 0x8000 -800047fc: 47f0 lw a2,76(a5) -800047fe: 8000 0x8000 -80004800: 47f8 lw a4,76(a5) -80004802: 8000 0x8000 -80004804: 47f8 lw a4,76(a5) -80004806: 8000 0x8000 -80004808: 4800 lw s0,16(s0) -8000480a: 8000 0x8000 -8000480c: 4800 lw s0,16(s0) -8000480e: 8000 0x8000 -80004810: 4808 lw a0,16(s0) -80004812: 8000 0x8000 -80004814: 4808 lw a0,16(s0) -80004816: 8000 0x8000 -80004818: 4810 lw a2,16(s0) -8000481a: 8000 0x8000 -8000481c: 4810 lw a2,16(s0) -8000481e: 8000 0x8000 -80004820: 4818 lw a4,16(s0) -80004822: 8000 0x8000 -80004824: 4818 lw a4,16(s0) -80004826: 8000 0x8000 -80004828: 4820 lw s0,80(s0) -8000482a: 8000 0x8000 -8000482c: 4820 lw s0,80(s0) -8000482e: 8000 0x8000 -80004830: 4828 lw a0,80(s0) -80004832: 8000 0x8000 -80004834: 4828 lw a0,80(s0) -80004836: 8000 0x8000 -80004838: 4830 lw a2,80(s0) -8000483a: 8000 0x8000 -8000483c: 4830 lw a2,80(s0) -8000483e: 8000 0x8000 -80004840: 4838 lw a4,80(s0) -80004842: 8000 0x8000 -80004844: 4838 lw a4,80(s0) -80004846: 8000 0x8000 -80004848: 4840 lw s0,20(s0) -8000484a: 8000 0x8000 -8000484c: 4840 lw s0,20(s0) -8000484e: 8000 0x8000 -80004850: 4848 lw a0,20(s0) -80004852: 8000 0x8000 -80004854: 4848 lw a0,20(s0) -80004856: 8000 0x8000 -80004858: 4850 lw a2,20(s0) -8000485a: 8000 0x8000 -8000485c: 4850 lw a2,20(s0) -8000485e: 8000 0x8000 -80004860: 4858 lw a4,20(s0) -80004862: 8000 0x8000 -80004864: 4858 lw a4,20(s0) -80004866: 8000 0x8000 -80004868: 4860 lw s0,84(s0) -8000486a: 8000 0x8000 -8000486c: 4860 lw s0,84(s0) -8000486e: 8000 0x8000 -80004870: 4868 lw a0,84(s0) -80004872: 8000 0x8000 -80004874: 4868 lw a0,84(s0) -80004876: 8000 0x8000 -80004878: 4870 lw a2,84(s0) -8000487a: 8000 0x8000 -8000487c: 4870 lw a2,84(s0) -8000487e: 8000 0x8000 -80004880: 4878 lw a4,84(s0) -80004882: 8000 0x8000 -80004884: 4878 lw a4,84(s0) -80004886: 8000 0x8000 -80004888: 4880 lw s0,16(s1) -8000488a: 8000 0x8000 -8000488c: 4880 lw s0,16(s1) -8000488e: 8000 0x8000 -80004890: 4888 lw a0,16(s1) -80004892: 8000 0x8000 -80004894: 4888 lw a0,16(s1) -80004896: 8000 0x8000 -80004898: 4890 lw a2,16(s1) -8000489a: 8000 0x8000 -8000489c: 4890 lw a2,16(s1) -8000489e: 8000 0x8000 -800048a0: 4898 lw a4,16(s1) -800048a2: 8000 0x8000 -800048a4: 4898 lw a4,16(s1) -800048a6: 8000 0x8000 -800048a8: 48a0 lw s0,80(s1) -800048aa: 8000 0x8000 -800048ac: 48a0 lw s0,80(s1) -800048ae: 8000 0x8000 -800048b0: 48a8 lw a0,80(s1) -800048b2: 8000 0x8000 -800048b4: 48a8 lw a0,80(s1) -800048b6: 8000 0x8000 -800048b8: 48b0 lw a2,80(s1) -800048ba: 8000 0x8000 -800048bc: 48b0 lw a2,80(s1) -800048be: 8000 0x8000 -800048c0: 48b8 lw a4,80(s1) -800048c2: 8000 0x8000 -800048c4: 48b8 lw a4,80(s1) -800048c6: 8000 0x8000 -800048c8: 48c0 lw s0,20(s1) -800048ca: 8000 0x8000 -800048cc: 48c0 lw s0,20(s1) -800048ce: 8000 0x8000 - Disassembly of section .sdata: -800048d0 <_global_impure_ptr>: -800048d0: 40a0 lw s0,64(s1) -800048d2: 8000 0x8000 - -800048d4 <_impure_ptr>: -800048d4: 40a0 lw s0,64(s1) -800048d6: 8000 0x8000 - -800048d8 <__malloc_sbrk_base>: -800048d8: ffff 0xffff -800048da: ffff 0xffff - -800048dc <__malloc_trim_threshold>: -800048dc: 0000 unimp -800048de: 0002 c.slli64 zero +800014c8 <_global_impure_ptr>: +800014c8: 10a0 addi s0,sp,104 +800014ca: 8000 0x8000 Disassembly of section .sbss: -800048e0 <__malloc_max_total_mem>: -800048e0: 0000 unimp - ... - -800048e4 <__malloc_max_sbrked_mem>: -800048e4: 0000 unimp - ... - -800048e8 <__malloc_top_pad>: -800048e8: 0000 unimp - ... - -800048ec : -800048ec: 0000 unimp +800014cc : +800014cc: 0000 unimp ... Disassembly of section .bss: -800048f0 : +800014d0 : ... -80004930 <__malloc_current_mallinfo>: +80001510 : ... -80004958 : - ... - -80004968 : - ... - -80004978 : -80004978: 0000 unimp - ... - -8000497c : -8000497c: 0000 unimp - ... - -80004980 : -80004980: 0000 unimp - ... - -80004984 : -80004984: 0000 unimp - ... - -80004988 : -80004988: 0000 unimp - ... - -8000498c : -8000498c: 0000 unimp - ... - -80004990 : -80004990: 0000 unimp - ... - -80004994 : -80004994: 0000 unimp +80001520 : ... Disassembly of section .comment: @@ -5016,6 +1316,6 @@ Disassembly of section .riscv.attributes: 16: 6932 flw fs2,12(sp) 18: 7032 flw ft0,44(sp) 1a: 5f30 lw a2,120(a4) - 1c: 326d jal fffff9c6 <__BSS_END__+0x7fffb02e> + 1c: 326d jal fffff9c6 <__global_pointer$+0x7fffe1be> 1e: 3070 fld fa2,224(s0) ... diff --git a/runtime/tests/simple/vx_simple.elf b/runtime/tests/simple/vx_simple.elf index cba1ea909..c4ce71a28 100755 Binary files a/runtime/tests/simple/vx_simple.elf and b/runtime/tests/simple/vx_simple.elf differ diff --git a/runtime/tests/simple/vx_simple.hex b/runtime/tests/simple/vx_simple.hex index e7e3a97ab..ba10b4146 100644 --- a/runtime/tests/simple/vx_simple.hex +++ b/runtime/tests/simple/vx_simple.hex @@ -1,44 +1,44 @@ :0200000480007A :100000009705000093854569732560026B10B50064 -:10001000EF004068130510006B0005001385810D8B -:10002000138601193306A64093050000EF0010382F -:1000300017150000130545A8EF009023EF00502D81 -:08004000EF0080006F001024A6 +:10001000EF004068130510006B000500138541CC0C +:10002000138681D23306A64093050000EF00902886 +:10003000171500001305C598EF001014EF00D01D30 +:08004000EF0080006F00901436 :10004800130101F3130510002326110C2322910C30 :100058002324810C2320210D232E310B232C410B2B -:10006800232A510B2328610BEF00C0663745008017 -:10007800130585BEEF00006D930401021387040089 +:10006800232A510B2328610BEF00C0663715008047 +:10007800130585D4EF00006D930401021387040073 :1000880093070000930640022320F7009387170088 :1000980013074700E39AD7FE130400001307100064 -:1000A800B74900801309400283A7040093050400A0 -:1000B800138549C163868700EF00C07613070000E7 +:1000A800B71900801309400283A7040093050400D0 +:1000B800138549D763868700EF00C07613070000D1 :1000C8001304140093844400E31024FF631E0716EE -:1000D80037450080130585C4EF00C066EF00402651 -:1000E80037450080130585C5EF00C065130540003E +:1000D80037150080130585DAEF00C066EF0040266B +:1000E80037150080130585DBEF00C0651305400058 :1000F800EF00405EEF00402E13051000EF00805D1A -:10010800374500801305C5C6EF00C063EF00803A8D -:10011800374500801305C5C73704FFFFEF0080622D -:1001280093040000374B0080B74A0080374A0080AC -:10013800B749008013094401232094009305040063 -:1001480013050BC9EF00006E9385040013858AC957 -:10015800EF00406D938504001305CACAEF00806C58 -:100168001385C9CB13044400EF00C05D93841400C9 -:10017800E31424FD37450080130545CDEF00805C6E -:10018800B747008093878700370600801307400031 +:10010800371500801305C5DCEF00C063EF00803AA7 +:10011800371500801305C5DD3704FFFFEF00806247 +:1001280093040000371B0080B71A0080371A00803C +:10013800B719008013094401232094009305040093 +:1001480013050BDFEF00006E9385040013858ADF2B +:10015800EF00406D938504001305CAE0EF00806C42 +:100168001385C9E113044400EF00C05D93841400B3 +:10017800E31424FD37150080130545E3EF00805C88 +:10018800B717008093878700370600801307400061 :10019800138807049306C1001306862793054000B9 -:1001A800130540001389810E2326F100232801013D -:1001B800232CE100232EE100232A2101EF0080787F -:1001C80037450080130545CFEF00C0579304000062 -:1001D800374A0080B74A00809309400013040000A2 +:1001A80013054000138981CC2326F100232801017F +:1001B800232CE100232EE100232A2101EF004074C3 +:1001C80037150080130545E5EF00C057930400007C +:1001D800371A0080B71A0080930940001304000002 :1001E80083278101B387F402B38787009397270099 :1001F800B307F90003A5070013041400EF008058A3 -:1002080013054AC9EF000054E31C34FD938414001D -:1002180013850AC1EF000053E39284FC8320C10CCC +:1002080013054ADFEF000054E31C34FD9384140007 +:1002180013850AD7EF000053E39284FC8320C10CB6 :100228000324810C8324410C0329010C8329C10B6D :10023800032A810B832A410B032B010B13050000B2 -:100248001301010D6780000037450080130505C2C2 +:100248001301010D6780000037150080130505D8DC :10025800EF00404F6FF0DFE7930700006388070067 -:1002680037150080130545AB6F001000678000004C +:10026800371500801305C59B6F00807067800000FC :10027800130101FF2326110023248100232291006A :1002880093040500EF00004713040500EF008047C2 :1002980083A7C40083A6040003A744003304F40220 @@ -46,66 +46,66 @@ :1002B800131524003386A600B306A70083A60600FC :1002C80003270600032481003385A700B307D7005E :1002D8002320F5001301010167800000130101FFCD -:1002E80023261100EF0000411317250093870115FD +:1002E80023261100EF00004113172500938781D0C2 :1002F800B387E70023A0A700631805008320C10087 :1003080013010101678000008320C100130500006C :10031800130101016F00003C130101FF23261100A6 :10032800EF00403E8320C100131725009387018802 :10033800B387E70023A0A70013010101678000002D -:1003480037450080130101FF130505D3232611004B +:1003480037150080130101FF130505E92326110065 :100358002324810023229100EF00C03E13054000B2 :10036800EF004037EF00003A138401881317250087 :10037800930705003307E400130510002320F70056 -:10038800EF00403503250400B7440080EF00803FAC -:10039800138504C1EF00003B03254400EF00803EB5 -:1003A800138504C1EF00003A03258400EF00803D67 -:1003B800138504C1EF0000390325C400EF00803C19 -:1003C800032481008320C100138504C183244100D4 +:10038800EF00403503250400B7140080EF00803FDC +:10039800138504D7EF00003B03254400EF00803E9F +:1003A800138504D7EF00003A03258400EF00803D51 +:1003B800138504D7EF0000390325C400EF00803C03 +:1003C800032481008320C100138504D783244100BE :1003D800130101016F000037130101FF23261100EB :1003E8002324810023229100EF00C031130405006B :1003F80013352500EF00002F9307100063F88708D6 -:1004080013353400EF00002E930720009384011663 +:1004080013353400EF00002E93072000938481D128 :100418006308F40613142400338484009307D0007F :100428002320F400EF00802CEF00402C03A50400EB -:1004380037440080EF000035130504C1EF00803019 -:1004480003A54400EF000034130504C1EF00802F1A -:1004580003A58400EF000033130504C1EF00802ECC -:1004680003A5C400EF000032130504C10324810072 +:1004380037140080EF000035130504D7EF00803033 +:1004480003A54400EF000034130504D7EF00802F04 +:1004580003A58400EF000033130504D7EF00802EB6 +:1004680003A5C400EF000032130504D7032481005C :100478008320C10083244100130101016F00802CF7 :100488009307C00023A4F4006FF0DFF913451400AC -:10049800EF00402593840116631804009307A00019 +:10049800EF004025938481D1631804009307A000DE :1004A80023A0F4006FF01FF89307B00023A2F40014 :1004B8006FF05FF7B7050080130101FF9385452EA4 :1004C80013054000232611002324810023229100D4 -:1004D800EF00C01FEF0000221384011593172500B9 +:1004D800EF00C01FEF000022138481D0931725007E :1004E800B307F40023A0A700631C05040325040038 -:1004F800B7440080EF000029138504C1EF00802471 -:1005080003254400EF000028138504C1EF00802371 -:1005180003258400EF000027138504C1EF00802223 +:1004F800B7140080EF000029138504D7EF0080248B +:1005080003254400EF000028138504D7EF0080235B +:1005180003258400EF000027138504D7EF0080220D :100528000325C400EF000026032481008320C100B6 -:10053800138504C183244100130101016F00802049 -:1005480013050000EF0000196FF05FFA37450080CF -:10055800130101FF130505D323261100232481006D +:10053800138504D783244100130101016F00802033 +:1005480013050000EF0000196FF05FFA37150080FF +:10055800130101FF130505E9232611002324810057 :1005680023229100EF00001E13054000EF008016C3 :10057800EF0040199384018813172500930705009D :100588003387E400130510002320F700EF008014E0 -:1005980003A5040037440080EF00C01E130504C102 -:1005A800EF00401A03A54400EF00C01D130504C165 -:1005B800EF00401903A58400EF00C01C130504C117 -:1005C800EF00401803A5C40093840115EF00801BB9 -:1005D800130504C1EF00001737450080130585C5D2 +:1005980003A5040037140080EF00C01E130504D71C +:1005A800EF00401A03A54400EF00C01D130504D74F +:1005B800EF00401903A58400EF00C01C130504D701 +:1005C800EF00401803A5C400938481D0EF00801B7E +:1005D800130504D7EF00001737150080130585DBD6 :1005E800EF00401613054000EF00C00EEFF0DFDE0D -:1005F80013051000EF00000E37450080130505D4E1 +:1005F80013051000EF00000E37150080130505EAFB :10060800EF004014B70500809385452E1305400080 :10061800EF00C00BEF00000E93172500B387F4001E :1006280023A0A700631A050403A50400EF008015A2 -:10063800130504C1EF00001103A54400EF00801466 -:10064800130504C1EF00001003A58400EF00801318 -:10065800130504C1EF00000F03A5C400EF008012CA -:10066800130504C1032481008320C10083244100B1 +:10063800130504D7EF00001103A54400EF00801450 +:10064800130504D7EF00001003A58400EF00801302 +:10065800130504D7EF00000F03A5C400EF008012B4 +:10066800130504D7032481008320C100832441009B :10067800130101016F00000D13050000EF00800554 :100688006FF09FFA130500006B00050073255002F8 -:100698006B000500974100009381C116F32540F1D6 +:100698006B000500971100009381C116F32540F106 :1006A8009395A500732600021316260037F1FF6FF5 :1006B8003301B1403301C100F326100263860600FE :1006C800130500006B000500678000006B10B50083 @@ -122,1018 +122,204 @@ :10077800678000009382018983A2020023A0B2004F :1007880067800000130101FF232291002326110036 :1007980023248100232021019307F00093040500FE -:1007A80063FCA70437490080930600001304000285 -:1007B8001309C9D81304C4FFB3D7840093F7F7000B +:1007A80063FCA704371900809306000013040002B5 +:1007B8001309C9EE1304C4FFB3D7840093F7F700F5 :1007C800139727003307E90063940700638806003E :1007D80003250700EFF01FF793061000E31C04FC45 :1007E8008320C100032481008324410003290100E0 -:1007F8001301010167800000B747008093142500AA -:100808009387C7D803248100B384970003A5040005 +:1007F8001301010167800000B717008093142500DA +:100808009387C7EE03248100B384970003A50400EF :100818008320C10083244100032901001301010141 :100828006FF05FF2130101FF2324810023261100DA :10083800232291002320210113840500EFF09FF06B -:100848009307F00063F0870637490080930600009D -:10085800930400021309C9D89384C4FFB3579400C2 +:100848009307F00063F087063719008093060000CD +:10085800930400021309C9EE9384C4FFB3579400AC :1008680093F7F700139727003307E900639407000D :100878006388060003250700EFF0DFEC93061000FD :10088800E39C04FC032481008320C10083244100ED -:100898000329010037450080130505C11301010133 -:1008A8006FF05FEAB74700809387C7D81314240016 +:100898000329010037150080130505D7130101014D +:1008A8006FF05FEAB71700809387C7EE1314240030 :1008B8003384870003250400EFF0DFE86FF09FFC26 -:1008C80003A58118130101FF23261100EFF09FE013 -:1008D80003A5411783A78117E7800700EFF09FE181 -:1008E8008320C10013351500130101016FF09FDE4D -:1008F80003A5C117130101FF23261100232481003A -:10090800EFF05FDDEFF01FE013040500EFF01FDFED -:1009180083A541189306050003A5011883A70117AD -:100928001306040013070000E7800700EFF09FDCC0 -:10093800032481008320C100133515001301010130 -:100948006FF05FD9130101FF232481002322910056 -:10095800232021012326110023ACC11623AAD11676 -:1009680023A4B1189307100063DAA700B715008015 -:100978009385858CEFF09FD583A581181385050095 -:10098800EFF05FD503A5411783A78117E78007001C -:10099800EFF05FD6032481008320C1008324410047 -:1009A8000329010013351500130101016FF09FD2CF -:1009B80083268500130710006362D70A9307050092 -:1009C80003250500130101FE83A64700232C81009F -:1009D800232A91002328210123263101232E1100E7 -:1009E80023AEA11623A2F11823A8B11623A0C1187B -:1009F800636AD704EFF01FCEEFF0DFD013040500D1 -:100A0800EFF0DFCF83A5411883A7011793060500F0 -:100A180003A501181306040013070000E780070068 -:100A2800EFF05FCD032481018320C10183244101BC -:100A3800032901018329C10013351500130101029F -:100A48006FF05FC9B7150080138506009385858F01 -:100A5800EFF0DFC703A5C1176FF0DFF93745008056 -:100A68001305C5DC6F00C02E930505009306000032 -:100A780013060000130500006F000037130101FF83 -:100A88009305000023248100232611001304050088 -:100A9800EF00003F03A5810C8327C503638407008B -:100AA800E780070013050400EFF0DFBD130101FF25 -:100AB80023248100B7470080374400801304440092 -:100AC80093874700B387874023229100232611008C -:100AD80093D42740638004029387C7FF3384870039 -:100AE800832704009384F4FF1304C4FFE7800700FE -:100AF800E39804FE8320C10003248100832441007D -:100B08001301010167800000130101FF2324810004 -:100B180023202101374400803749008093070400CF -:100B2800130909003309F9402326110023229100F3 -:100B380013592940630009021304040093040000B8 -:100B4800832704009384140013044400E7800700FB -:100B5800E31899FE37440080374900809307040062 -:100B6800130949003309F940135929406300090260 -:100B780013040400930400008327040093841400E2 -:100B880013044400E7800700E31899FE8320C1009E -:100B9800032481008324410003290100130101017A -:100BA800678000001303F00013070500637EC3028B -:100BB8009377F7006390070A63920508937606FF18 -:100BC8001376F600B386E6002320B7002322B70089 -:100BD8002324B7002326B70013070701E366D7FECF -:100BE8006314060067800000B306C340939626008E -:100BF80097020000B38656006780C6002307B70037 -:100C0800A306B7002306B700A305B7002305B7005E -:100C1800A304B7002304B700A303B7002303B70056 -:100C2800A302B7002302B700A301B7002301B7004E -:100C3800A300B7002300B7006780000093F5F50F05 -:100C480093968500B3E5D50093960501B3E5D500E5 -:100C58006FF0DFF69396270097020000B3865600E0 -:100C680093820000E78006FA93800200938707FFCB -:100C78003307F7403306F600E378C3F66FF0DFF387 -:100C8800130101FC232C81021304050013850500C0 -:100C9800232A9102232E110293840500EF00000CF1 -:100CA800B7470080938707C12324F10293071000F8 -:100CB8002326F102032784039307010293061500F4 -:100CC800232AF10093072000232091022322A10266 -:100CD800232ED100232CF10083258400630007060E -:100CE8008397C500139727016342070203A74506A8 -:100CF800B7260000B3E7D700B7E6FFFF9386F6FFF5 -:100D08003377D7002396F50023A2E50613064101A1 -:100D180013050400EF00805E8320C10303248103D0 -:100D28003335A0003305A040137555FF83244103D4 -:100D38001305A500130101046780000013050400D2 -:100D48002326B100EF0080578325C1006FF05FF9BB -:100D58009305050003A5C10C6FF09FF2937735004A -:100D680013070500639C0704B7867F7F9386F6F711 -:100D78009305F0FF0326070013074700B377D60053 -:100D8800B387D700B3E7C700B3E7D700E384B7FE5C -:100D98008346C7FF0346D7FF8347E7FF3307A740CC -:100DA80063800604630A06023335F0003305E50064 -:100DB8001305E5FF67800000E38806FA834707000C -:100DC8001307170093763700E39807FE3307A74009 -:100DD8001305F7FF678000001305D7FF6780000041 -:100DE8001305C7FF6780000003A7810C83278714BA -:100DF800638C070403A747001308F001634EE80655 -:100E08001318270063060502338307012324C30848 -:100E180083A88718130610003316E600B3E8C80045 -:100E280023A417192324D310930620006304D502A2 -:100E38001307170023A2E700B387070123A4B7000D -:100E480013050000678000009307C7142324F714D4 -:100E58006FF05FFA83A6C7181307170023A2E700ED -:100E680033E6C60023A6C718B387070123A4B70033 -:100E780013050000678000001305F0FF678000007D -:100E8800130101FD232C410103AA810C2320210316 -:100E98002326110203298A14232481022322910282 -:100EA800232E3101232A51012328610123267101B0 -:100EB8002324810163000904130B0500938B0500AB -:100EC800930A10009309F0FF832449001384F4FF68 -:100ED8006342040293942400B304990063840B04CE -:100EE80083A74410638077051304F4FF9384C4FF39 -:100EF800E31634FF8320C1020324810283244102C4 -:100F0800032901028329C101032A8101832A41019E -:100F1800032B0101832BC100032C81001301010362 -:100F2800678000008327490083A644009387F7FF62 -:100F3800638E870423A20400E38806FA83278918AE -:100F480033978A00032C4900B377F70063920702AE -:100F5800E78006000327490083278A146314870162 -:100F6800E304F9F8E38807F8138907006FF0DFF561 -:100F78008327C91883A544083377F700631C070043 -:100F880013050B00E78006006FF0DFFC23228900C1 -:100F98006FF09FFA13850500E78006006FF09FFB4E -:100FA8001305000067800000B7350080938505D0E1 -:100FB8006F009009130101FEB7170080232E11005E -:100FC800232C8100232A9100232821012326310183 -:100FD80023244101232251012320610103244500D8 -:100FE800938707FB232EF5021307C52E93073000BE -:100FF8002324E52E2322F52E2320052E93074000D7 -:10100800130905002326F400130680009305000049 -:10101800232204062320040023220400232404009E -:1010280023280400232A0400232C04001305C405E4 -:10103800EFF05FB7373B008083248900B73A008020 -:10104800373A0080B7390080130B4B98938A8A9EF1 -:10105800130A0AA7938989ADB707010023206403FF -:10106800232254032324440323263403232E8400F9 -:101078009387970023A6F4001306800093050000C9 -:1010880023A2040623A0040023A2040023A404002E -:1010980023A8040023AA040023AC04001385C40574 -:1010A800EFF05FB00324C900B707020023A0640370 -:1010B80023A2540323A4440323A6340323AE940099 -:1010C800938727012326F400232204062320040003 -:1010D800232204002324040023280400232A0400D4 -:1010E800232C04001305C405130680009305000093 -:1010F800EFF05FAB8320C101232064032322540354 -:101108002324440323263403232E8400032481014B -:1011180093071000232CF9028324410103290101BC -:101128008329C100032A8100832A4100032B01007F -:1011380013010102678000001305000067800000AA -:10114800130101FF23229100130680069384F5FF03 -:10115800B384C402232021011389050023248100BC -:101168002326110093854407EF00407913040500F6 -:10117800630005021305C50023200400232224016F -:101188002324A4001386840693050000EFF09FA192 -:101198008320C10013050400032481008324410037 -:1011A800032901001301010167800000130101FEFA -:1011B8002328210103A9810C23263101232E1100A4 -:1011C80083278903232C8100232A91009309050092 -:1011D8006386070A1309092E9304F0FF8327490041 -:1011E800032489009387F7FF63D807006F0000087E -:1011F80013048406638C97060317C4009387F7FFCC -:10120800E31807FEB707FFFF93871700232204069A -:101218002320040023220400232404002326F400AE -:1012280023280400232A0400232C0400130680002A -:10123800930500001305C405EFF0DF962328040288 -:10124800232A040223220404232404048320C10142 -:1012580013050400032481018324410103290101AA -:101268008329C100130101026780000003240900DB -:10127800630C0400130904006FF05FF613050900FE -:10128800EFF05FD36FF01FF5930540001385090059 -:10129800EFF01FEB2320A90013040500E31C05FC55 -:1012A8009307C00023A0F9006FF05FFA03A5810C33 -:1012B800B7350080938505D06F00005983278503D3 -:1012C80063840700678000006FF0DFCE678000004E -:1012D80067800000678000006780000003A5C10CDC -:1012E800B7150080938585FA6F00C04B03A5C10C24 -:1012F800B7150080938505146F00C04A83278600C0 -:10130800638E073283D7C500130101FD23248102B0 -:10131800232C4101232A5101232611022322910261 -:1013280023202103232E3101232861012326710163 -:1013380023248101232291012320A10113F787008F -:10134800130A0600930A05001384050063060708BC -:1013580003A705016302070813F7270083240A007F -:10136800630C0708832744028325C401370B0080D8 -:101378009309000013090000134B0BC013860900E2 -:1013880013850A00630209049306090063742B019C -:1013980093060B00E78007006358A02883278A007C -:1013A800B389A9003309A9403385A7402324AA009B -:1013B800630A0520832744028325C4011386090094 -:1013C80013850A00E31209FC83A9040003A9440059 -:1013D800938484006FF09FFA9305040013850A0034 -:1013E800EF100076631C053A8357C40083240A0073 -:1013F80013F72700E31807F613F7170063140724F9 -:10140800832C840003250400370B0080934BEBFFEB -:10141800130C000013090000134BFBFF630E090EA9 -:1014280013F70720630C0724138D0C006362992FB0 -:1014380013F70748630A0708832944018325040131 -:101448001307190093961900B386360193D9F6014C -:10145800330DB540B389D90093D919403307A70193 -:101468001386090063F6E9009309070013060700CD -:1014780093F707406384072E9305060013850A0037 -:10148800EF00C047930C0500630205308325040173 -:1014980013060D00EF00504D8357C40093F7F7B7BC -:1014A80093E707082316F4003385AC01B387A941F5 -:1014B800232894012320A400232A3401930C090033 -:1014C8002324F400130D090013060D0093050C00E6 -:1014D800EF00505B03278400832704009309090069 -:1014E800B30C9741B387A701232494012320F40068 -:1014F8001309000003268A00330C3C01B309364166 -:1015080023243A016380090C832C840003250400FA -:101518008357C400E31609F003AC040003A9440090 -:10152800938484006FF09FEF83A9440003AC040008 -:1015380093848400E38A09FE138609009305A000BA -:1015480013050C00EF001035630405121305150090 -:10155800330B854193070B00938B090063F4370124 -:10156800938B070003250400832704018326440185 -:1015780063F8A700032984003389260163427909A7 -:1015880063C8DB1A832744028325C40113060C00B1 -:1015980013850A00E7800700130905006356A008B1 -:1015A800330B2B4113051000630A0B1603268A0020 -:1015B800330C2C01B38929413309264123242A01FC -:1015C800631A0908130500008320C102032481025D -:1015D80083244102032901028329C101032A8101CD -:1015E800832A4101032B0101832BC100032C8100B5 -:1015F800832C4100032D01001301010367800000C3 -:1016080093050C0013060900EF00D0478327040058 -:101618009305040013850A00B38727012320F400EB -:10162800EF101025E30E05F68317C40093E70704AF -:101638002316F4001305F0FF6FF01FF913050000DF -:1016480067800000130B000013050000130C000056 -:1016580093090000E38A09ECE31E05EE13860900EE -:101668009305A00013050C00EF00D022E31005EE4F -:1016780093871900138B07006FF01FEE832704016F -:1016880063E2A70483274401636EF9029306090005 -:1016980063F42B0193060B00B3C6F602032744023A -:1016A8008325C40113060C0013850A00B386F602CD -:1016B800E700070093090500E358A0F6330939410C -:1016C8006FF05FE393890C00637499019309090033 -:1016D8001386090093050C00EF00D03A8327840095 -:1016E80003270400B3873741330737012324F40065 -:1016F8002320E400E39407FC9305040013850A0003 -:10170800EF101017E31205F2330939416FF09FDE2D -:10171800930C0900130D09006FF01FDB93050400FB -:1017280013850A00EF10D014E30205E86FF0DFEF2D -:1017380013860B0093050C00EF00D0348327840038 -:101748000326040013890B00B3877741330676011B -:101758002324F4002320C4006FF09FE413850A00BB -:10176800EF00D044930C0500E31005D48325040151 -:1017780013850A00EF10D02A8317C4001307C0008E -:1017880023A0EA0093F7F7F76FF05FEA1307C000AA -:101798008317C40023A0EA006FF05FE91305F0FF88 -:1017A8006FF09FE2130101FE232821012326310156 -:1017B800232441012322510123206101232E1100FA -:1017C800232C8100232A9100138B0500930A052EF0 -:1017D800130A0000930910001309F0FF83A44A00BC -:1017E80003A48A009384F4FF63C604028357C400E9 -:1017F8009384F4FF63FCF9008317E40013050400E5 -:1018080063862701E7000B00336AAA0013048406E5 -:10181800E39E24FD83AA0A00E3920AFC8320C10107 -:101828000324810183244101032901018329C10083 -:10183800832A4100032B010013050A00032A8100B3 -:101848001301010267800000130101FD2320210319 -:10185800232E3101232C4101232A51012328610120 -:1018680023267101232611022324810223229102B7 -:10187800930A0500938B0500130B052E130A00002D -:10188800930910001309F0FF83244B0003248B00F5 -:101898009384F4FF63C804028357C4009384F4FF5D -:1018A80063FEF9008317E4009305040013850A001A -:1018B80063862701E7800B00336AAA0013048406B5 -:1018C800E39C24FD032B0B00E3100BFC8320C102D7 -:1018D8000324810283244102032901028329C101CF -:1018E800832A4101032B0101832BC10013050A0040 -:1018F800032A81011301010367800000130101FD20 -:10190800232E31012326110223248102232291024E -:1019180023202103232C4101232A5101232861017B -:101928002326710123248101232291019387B50085 -:1019380013076001930905006364F7069307000124 -:1019480063E2B71EEF00102693040001130620007F -:1019580093078001138901CCB307F90003A447005A -:10196800138787FF6308E420832744008326C40085 -:101978000326840093F7C7FFB307F40003A74700C3 -:101988002326D60023A4C600136717001385090071 -:1019980023A2E700EF005021130584006F004019CF -:1019A80093F487FF63C0071863EEB416EF00901F27 -:1019B8009307701F63FA974493D794006384071AB8 -:1019C800130740006360F73C93D7640013869703BE -:1019D8001385870393163600138901CCB306D90003 -:1019E80003A44600938686FF638686029305F0006B -:1019F8006F000001635207320324C400638C860021 -:101A08008327440093F7C7FF33879740E3D4E5FE65 -:101A180013060500032409019308890063081417B5 -:101A2800032544009306F0001375C5FFB3079540DE -:101A380063C2F640232A19012328190163DC073CF5 -:101A48009307F01F63E0A72E937785FF938787009E -:101A580083254900B307F90083A6070013555500ED -:101A6800130710003317A7003367B700938587FF64 -:101A78002326B4002324D4002322E90023A08700CE -:101A880023A686009357264093051000B395F500CA -:101A98006368B710B3F7E5006394070293951500E0 -:101AA8001376C6FFB3F7E50013064600639A0700EE -:101AB80093951500B3F7E50013064600E38A07FE81 -:101AC8001308F000131336003303690013050300ED -:101AD8008327C500130E06006308F52C03A74700EB -:101AE8001384070083A7C7001377C7FFB30697407F -:101AF8006348D82CE3C206FE3307E4008326470078 -:101B0800032684001385090093E616002322D700D4 -:101B18002326F60023A4C700EF001009130584004C -:101B28006F0000019307C00023A0F900130500000F -:101B38008320C10203248102832441020329010274 -:101B48008329C101032A8101832A4101032B010151 -:101B5800832BC100032C8100832C41001301010356 -:101B68006780000093060020130600041305F003A5 -:101B78006FF09FE603A4C70013062600E39687DEEE -:101B88000324090193088900E31C14E90327490089 -:101B98009357264093051000B395F500E37CB7EE04 -:101BA80003248900832A440013FBCAFF63689B004F -:101BB800B3079B401307F000634CF71283AA010E8A -:101BC80003A7010D9307F0FF330A6401B38A540198 -:101BD8006304F734B71700009387F700B38AFA0055 -:101BE800B7F7FFFFB3FAFA0093850A0013850900D7 -:101BF800EF0010539307F0FF930B05006306F528D9 -:101C080063624529138C811283250C00B385BA00C1 -:101C18002320BC0093870500630EAA3883A6010D14 -:101C28001307F0FF6386E63A338A4B41B307FA009D -:101C38002320FC0093FC7B0063820C30B717000064 -:101C4800B38B9B4193858700938B8B00B38595411C -:101C5800B38A5B019387F7FFB385554133FAF500E3 -:101C680093050A0013850900EF00904B9307F0FFD6 -:101C7800630AF53A33057541B30A450183250C001B -:101C88002324790193EA1A00B305BA002320BC0083 -:101C980023A25B01630224359306F00063F26635E4 -:101CA8000327440093074BFF93F787FF1377170029 -:101CB8003367F7002322E400130650003307F400CB -:101CC8002322C7002324C70063E8F63683AA4B0003 -:101CD80013840B0003A7C10D6374B70023AEB10CC6 -:101CE80003A7810D6376B71A23ACB10C6F00401AB5 -:101CF80013E714002322E400B3049400232499007A -:101D080093E717001385090023A2F400EF00C069C8 -:101D1800130584006FF0DFE18326C40003268400E6 -:101D28006FF09FC593579500130740006372F7142F -:101D380013074001636AF7229386C7059385B705A1 -:101D480093963600B306D90083A70600938686FFCC -:101D58006388F61C03A747001377C7FF6376E5007F -:101D680083A78700E398F6FE83A6C70003274900E8 -:101D78002326D4002324F40023A4860023A6870066 -:101D88006FF05FD0130740016376F7121307400521 -:101D9800636AF71E93D7C4001386F7061385E70610 -:101DA800931636006FF05FC3130E1E0093773E0044 -:101DB80013058500638E07108327C5006FF0DFD1F8 -:101DC8000326840093E514002322B4002326F6009A -:101DD80023A4C700B3049400232A99002328990058 -:101DE80093E7160023A6140123A4140123A2F400E8 -:101DF8003307E400138509002320D700EF00C05AF9 -:101E0800130584006FF0DFD213D634009387840063 -:101E18006FF05FB43307A4008327470013850900D8 -:101E280093E717002322F700EF00005813058400FA -:101E38006FF01FD013E714002322E400B3049400CA -:101E4800232A99002328990013E7170023A61401D1 -:101E580023A4140123A2E4003305A4002320F500E1 -:101E680013850900EF004054130584006FF05FCC20 -:101E78009357650093869703938587039396360057 -:101E88006FF05FEC630E241103248900832A440059 -:101E980093FACAFFB3879A4063E69A001307F000E3 -:101EA800E348F7E413850900EF000050130500002C -:101EB8006FF01FC81386C7051385B705931636003C -:101EC8006FF09FB1832783001306F6FF6390671CAA -:101ED80093773600130383FFE39607FE0327490031 -:101EE80093C7F5FFB3F7E7002322F9009395150090 -:101EF800E3E8B7CAE38605CA33F7F500631A0700B3 -:101F08009395150033F7F500130E4E00E30A07FE0C -:101F180013060E006FF01FBB938A0A016FF0DFCC27 -:101F28000325490093D52540130710003317B70040 -:101F38003367A7002322E9006FF09FE3B3855B01B5 -:101F4800B305B0409395450113DA450193050A009E -:101F580013850900EF00D01C9307F0FFE31CF5D0B0 -:101F6800130A00006FF09FD1130740056360F7085C -:101F78009357C5009386F7069385E7069396360030 -:101F88006FF05FDC130740156360F70893D7F40020 -:101F98001386870713857707931636006FF0DFA33C -:101FA800138C811283270C00B387FA002320FC00CE -:101FB8006FF0DFC613174A01E31207C6032489002E -:101FC800B30A5B0193EA1A00232254016FF09FD0F1 -:101FD80023A8710D6FF01FC613840B006FF09FCFFD -:101FE8009307100023A2FB006FF0DFEB13074015E7 -:101FF8006362F7069357F5009386870793857707FB -:10200800939636006FF01FD4130740556362F706A6 -:1020180093D724011386D7071385C707931636006D -:102028006FF09F9B938C8CFFB38A9A01B38A7A4195 -:10203800130A00006FF09FC49305840013850900FC -:10204800EF10001E0324890083250C00832A440016 -:102058006FF05FC8130740556364F7029357250173 -:102068009386D7079385C707939636006FF09FCD61 -:102078009306803F1306F0071305E0076FF0DF951E -:102088009306803F9305E0076FF0DFCB8327490075 -:102098006FF0DFE59377350093F6F50F638A070253 -:1020A8009307F6FF630E06021306F0FF6F00800128 -:1020B8001305150013773500630E07009387F7FFA4 -:1020C8006380C70203470500E314D7FE678000005A -:1020D80093070600130730006366F702639607004C -:1020E8001305000067800000B307F5006F00C0000B -:1020F80013051500E386A7FE03470500E31AD7FE7C -:102108006780000037070100939885001307F7FFE1 -:10211800B3F8E80093F5F50FB3E5B8009398050117 -:10212800B3E8B8003708FFFEB78580801308F8EFDA -:1021380093850508130330000327050033C7E8001B -:10214800330607011347F7FF3377E6003377B70005 -:10215800E31C07F89387C7FF13054500E36EF3FCFC -:10216800E39407F86FF0DFF7B3C7A50093F73700DC -:10217800B308C500639207069307300063FEC704DF -:1021880093773500130705006398070613F6C8FF11 -:10219800930706FE636CF708637CC7029386050005 -:1021A8009307070003A80600938747009386460015 -:1021B80023AE07FFE3E8C7FE9307F6FFB387E740C0 -:1021C80093F7C7FF938747003307F700B385F500F8 -:1021D800636817016780000013070500E37C15FF9B -:1021E80083C705001307170093851500A30FF7FE93 -:1021F800E36817FF6780000083C605001307170010 -:1022080093773700A30FD7FE93851500E38007F86F -:1022180083C605001307170093773700A30FD7FE6F -:1022280093851500E39A07FC6FF05FF683A64500D7 -:1022380083A2050083AF850003AFC50083AE050107 -:1022480003AE450103A3850103A8C5012322D700D6 -:1022580083A60502232057002324F7012326E7013C -:102268002328D701232AC701232C6700232E07011F -:102278002320D7021307470293854502E368F7FA3C -:102288006FF09FF163F6A502B387C5006372F5028C -:102298003307C500630A060E83C6F7FF9387F7FF67 -:1022A8001307F7FF2300D700E398F5FE67800000C7 -:1022B8009307F00063E8C702930705009306F6FF4B -:1022C800630C060C93861600B386D70003C7050077 -:1022D8009387170093851500A38FE7FEE398D7FE31 -:1022E80067800000B3E7A50093F737006390070AFB -:1022F800930806FF93F808FF93880801330815012F -:1023080013870500930705008326070013070701B5 -:102318009387070123A8D7FE832647FF23AAD7FE62 -:10232800832687FF23ACD7FE8326C7FF23AED7FEBD -:10233800E31CF8FC1377C600B38515011378F60083 -:10234800630E07041387050093880700130E3000F7 -:102358000323070013074700B306E84023A06800DB -:10236800B386D50093884800E364DEFE1307C8FFF0 -:102378001377C7FF1307470013763600B387E700C4 -:10238800B385E5006FF09FF3678000009306F6FFC2 -:10239800930705006FF01FF367800000130608001D -:1023A8006FF0DFF16780000067800000130101FD16 -:1023B80023202103232611022324810223229102B0 -:1023C800232E3101232C4101232A510123286101A5 -:1023D8002326710123248101130906006382052243 -:1023E8001384050093090500EFF0DFFB9304B9009F -:1023F8009307600163FC970E93F484FF138704002E -:1024080063CC040E63EA240F8327C4FF930A84FF76 -:1024180013FAC7FF338B4A01635AEA18938B01CC2E -:1024280003A68B0083264B00630E662313F6E6FF94 -:102438003306CB0003264600137616006314061AEB -:1024480093F6C6FF3306DA00635EE63293F71700A9 -:1024580063940702032C84FF338C8A4183274C0042 -:1024680093F7C7FFB386D700B38B460163DAEB3423 -:10247800B30BFA0063D2EB0C93050900138509002E -:10248800EFF0CFC713090500630C05048327C4FFC9 -:10249800130785FF93F7E7FFB387FA006382E730F6 -:1024A8001306CAFF9307400263E6C73013073001DB -:1024B80083260400636CC7269307050013070400EE -:1024C80023A0D7008326470023A2D700032787002D -:1024D80023A4E7009305040013850900EF00505476 -:1024E80013850900EFF05FEC6F00C0019304000151 -:1024F80013070001E3FA24F19307C00023A0F900B1 -:10250800130900008320C1020324810283244102AD -:102518008329C101032A8101832A4101032B010177 -:10252800832BC100032C8100130509000329010234 -:1025380013010103678000008327CC0003278C0068 -:102548001306CAFF930640022326F70023A4E700D8 -:1025580013098C00330B7C0163E4C62E930530010C -:10256800032704009307090063F2C5022324EC0043 -:10257800032744009307B0012326EC0063E2C73029 -:102588000327840093070C011304840023A0E700A9 -:1025980003274400138A0B00930A0C0023A2E700C8 -:1025A800032784001304090023A4E70083A74A0033 -:1025B80033079A409306F00093F7170063ECE6069A -:1025C800B367FA0023A2FA0083274B0093E71700AA -:1025D8002322FB0013850900EFF01FDD1309040017 -:1025E8006FF05FF293F71700E39807E8032C84FF76 -:1025F800338C8A4183274C0093F7C7FF6FF05FE75E -:10260800032481028320C102832441020329010299 -:102618008329C101032A8101832A4101032B010176 -:10262800832BC100032C81009305060013010103CD -:102638006FF0CFACB3E7970023A2FA00B3859A00F6 -:102648001367170023A2E50083274B0093858500B5 -:102658001385090093E717002322FB00EF00503C85 -:102668006FF05FF793F6C6FF3306DA00938504012F -:102678006350B60E93F71700E39007E0032C84FF2E -:10268800338C8A4183274C0093F7C7FFB386D70062 -:10269800338B4601E34EBBDC8327CC0003278C0039 -:1026A8001306CAFF930640022326F70023A4E70077 -:1026B80013098C0063EEC62093053001032704003C -:1026C8009307090063F2C5022324EC0003274400A2 -:1026D8009307B0012326EC0063E4C7200327840096 -:1026E80093070C011304840023A0E7000327440088 -:1026F80023A2E7000327840023A4E70033079C00F4 -:10270800B3079B4023A4EB0093E717002322F700AD -:1027180083274C001385090093F71700B3E497004B -:1027280023229C00EFF05FC86FF0DFDD2320D50087 -:10273800832644001307B0012322D5006360C71223 -:102748008326840013078400930785006FF05FD702 -:10275800B38A9A00B307964023A45B0193E7170056 -:1027680023A2FA008327C4FF138509001309040074 -:1027780093F71700B3E49700232E94FEEFF0DFC21F -:102788006FF05FD88327CB0003278B00130A06005E -:10279800338BCA002326F70023A4E7006FF01FE15C -:1027A8008327C5FF93F7C7FF330AFA00338B4A0123 -:1027B8006FF0DFDF93050400EFF0DFAC6FF09FD11F -:1027C8008327CB0003278B001306CAFF930640021A -:1027D8002326F70023A4E70003278C008327CC00D7 -:1027E80013098C00330B7C012326F70023A4E70090 -:1027F80063E8C60493063001032704009307090021 -:10280800E3F6C6D82324EC00032744009307B0015D -:102818002326EC0003278400E3F6C7D62328EC0020 -:102828000327C40093074002232AEC00032704016E -:102838006304F60693078C01130404016FF01FD597 -:102848009305040013050900EFF0DFA31304090042 -:10285800138A0B00930A0C006FF05FD503278400DE -:102868002324E5000327C4002326E500832604016A -:102878006302F60413070401930705016FF05FC4B0 -:10288800832784002328FC008327C400232AFC0014 -:1028980003270401E310D6FA232CEC000327440194 -:1028A80093070C0213048401232EEC000327040071 -:1028B8006FF0DFCD2328D500832644011307840158 -:1028C80093078501232AD500832684016FF05FBF13 -:1028D8009305040013050900EFF0DF9A6FF01FE27B -:1028E800832784002328FC008327C400232AFC00B4 -:1028F800032704016308D60093078C01130404011D -:102908006FF09FDE232CEC000327440193070C0291 -:1029180013048401232EEC00032704006FF0DFDC8E -:10292800130101FF232481002322910013040500D1 -:10293800138505002326110023A60118EF10C010E7 -:102948009307F0FF630CF5008320C1000324810086 -:1029580083244100130101016780000083A7C11887 -:10296800E38407FE8320C1002320F40003248100B0 -:10297800832441001301010167800000130101FF56 -:1029880023248100138405008395E5002326110084 -:10299800EF00905E63400502832704058320C10091 -:1029A800B387A7002328F40403248100130101013D -:1029B800678000008357C40037F7FFFF1307F7FF4E -:1029C800B3F7E7008320C1002316F4000324810035 -:1029D80013010101678000001305000067800000F3 -:1029E8008397C500130101FE232C8100232A91003F -:1029F8002328210123263101232E110013F7071064 -:102A080013840500930405008395E5001309060067 -:102A180093890600631E070237F7FFFF1307F7FFC6 -:102A2800B3F7E7002316F400032481018320C101D2 -:102A380093860900130609008329C10003290101AF -:102A48001385040083244101130101026F00C008AB -:102A58009306200013060000EF00902C8317C40093 -:102A68008315E4006FF05FFB130101FF232481004D -:102A7800138405008395E50023261100EF00502AF2 -:102A88009307F0FF6304F5028357C400371700006B -:102A98008320C100B3E7E7002328A4042316F40029 -:102AA8000324810013010101678000008357C400DB -:102AB80037F7FFFF1307F7FFB3F7E7008320C100DD -:102AC8002316F4000324810013010101678000002C -:102AD8008395E5006F00801C130101FF1387050033 -:102AE8002324810023229100930506001304050086 -:102AF80013860600130507002326110023A60118D4 -:102B0800EF00507E9307F0FF630CF5008320C100AF -:102B18000324810083244100130101016780000020 -:102B280083A7C118E38407FE8320C1002320F40093 -:102B38000324810083244100130101016780000000 -:102B480083A7C10C130101FF2324810023229100D4 -:102B580023261100930405001384050063860700EB -:102B680003A787036300070E0317C4009317070121 -:102B78009376870093D707016380060483260401B0 -:102B88006380060613F6170063040608032644014B -:102B980023240400130500003306C040232CC4007E -:102BA800638606088320C100032481008324410032 -:102BB800130101016780000093F607016384060C86 -:102BC80093F7470063960708832604011367870075 -:102BD800931707012316E40093D70701E39406FA35 -:102BE80013F6072893050020E30EB6F893050400B2 -:102BF80013850400EF0050260317C4008326040140 -:102C08009317070193D7070113F61700E31006F887 -:102C180013F627009305000063140600832544017A -:102C28002324B40013050000E39E06F693F7070873 -:102C3800E38A07F6136707042316E4001305F0FF79 -:102C48006FF05FF613850700EFE04FE76FF0DFF1F5 -:102C580083250403638E0500930704046388F50045 -:102C680013850400EF00C05B0317C4002328040287 -:102C7800832604011377B7FD232204002320D40000 -:102C88006FF0DFF49307900023A0F40013670704A4 -:102C98002316E4001305F0FF6FF0DFF0130101FFC6 -:102CA80023248100232291001304050013850500C5 -:102CB8002326110023A60118EF00903E9307F0FF8A -:102CC800630CF5008320C1000324810083244100A4 -:102CD800130101016780000083A7C118E38407FE80 -:102CE8008320C1002320F4000324810083244100B1 -:102CF8001301010167800000130101FF2326110061 -:102D080023248100232291002320210163800502CE -:102D180013840500930405006306050083278503D3 -:102D2800638C070A8317C400639207028320C100DB -:102D380003248100130900008324410013050900BE -:102D480003290100130101016780000093050400B5 -:102D580013850400EF00000C8327C4021309050043 -:102D6800638A07008325C40113850400E7800700F0 -:102D7800634C05068357C40093F70708639E07064C -:102D880083250403638C0500930704046386F50018 -:102D980013850400EF00C048232804028325440457 -:102DA8006388050013850400EF008047232204048C -:102DB800EFE0CFD123160400EFE08FD18320C100CC -:102DC800032481008324410013050900032901001D -:102DD8001301010167800000EFE04FCE8317C400A4 -:102DE800E38607F46FF09FF68357C4001309F0FFDA -:102DF80093F70708E38607F8832504011385040081 -:102E0800EF0000426FF0DFF79305050003A5C10C42 -:102E18006FF09FEE8397C500130101FE232C8100FC -:102E280023263101232E1100232A91002328210172 -:102E380093F687001384050093090500639A06102A -:102E4800371700001307078083A64500B3E7E7009C -:102E58002396F5006354D01803278402630A070CED -:102E680083A409009396070123A00900139637014C -:102E78008325C40193D606016348061693061000FD -:102E88001306000013850900E70007009307F0FF09 -:102E9800630CF5188356C400032784028325C401F4 -:102EA80093F64600638E06008326440083270403B6 -:102EB8003305D540638607008327C4033305F540EF -:102EC800130605009306000013850900E7000700B4 -:102ED8009307F0FF631EF51003A709008317C400CA -:102EE800630807169306D0016306D70093066001AE -:102EF8006314D70C8326040137F7FFFF1307F77F06 -:102F0800B3F7E7002316F400232204002320D4009B -:102F18008325040323A09900638C05009307040408 -:102F28006386F50013850900EF00802F232804022B -:102F3800130500008320C10103248101832441017A -:102F4800032901018329C1001301010267800000E0 -:102F580003A90501E30E09FC83A4050013970701E3 -:102F6800135707011377370023A02501B3842441A1 -:102F7800930700006314070083A745012324F40086 -:102F8800634890006FF0DFFA3309A900E35290FA22 -:102F9800832744028325C40193860400130609008D -:102FA80013850900E7800700B384A440E34EA0FC22 -:102FB8008357C4001305F0FF93E707048320C1017A -:102FC8002316F4000324810183244101032901010C -:102FD8008329C100130101026780000003A7C5030C -:102FE800E34CE0E66FF0DFF4032504056FF05FEBD8 -:102FF8008357C40037F7FFFF1307F77FB3F7E700DE -:10300800832604019397070193D707412316F400F9 -:10301800232204002320D40013973701E35A07EE34 -:103028002328A4046FF0DFEE83A70900E38407E6F2 -:103038001307D0016388E702130760016384E7027E -:103048008357C40093E707042316F4006FF09FEE3C -:1030580037F7FFFF1307F77F83260401B3F7E7006D -:103068006FF0DFFA23A09900130500006FF09FECC2 -:10307800130101FE232C8100232E110013040500E7 -:103088006306050083278503638007028397C500CD -:10309800639607028320C101032481011305000000 -:1030A80013010102678000002326B100EFE00FA1A1 -:1030B8008325C1008397C500E38E07FC1305040030 -:1030C800032481018320C101130101026FF09FD401 -:1030D800930505006306050003A5C10C6FF05FF9B1 -:1030E80003A5810CB7350080938585076FE0CFF580 -:1030F800130101FE23263101232C8100232A91008C -:103108002328210123244101232E1100138A0500BD -:1031180013090500938901CCEFF0CFA803A7890014 -:10312800B71700001384F7FE832447003304444193 -:1031380093F4C4FF330494001354C4001304F4FF3D -:103148001314C400634EF40093050000130509002E -:10315800EFF00FFD83A78900B38797006308F50296 -:1031680013050900EFF04FA48320C1010324810156 -:1031780083244101032901018329C100032A810015 -:10318800130500001301010267800000B3058040A9 -:1031980013050900EFF0CFF89307F0FF6308F50473 -:1031A8009387811203A7070083A68900B38484400C -:1031B80093E41400330487401305090023A2960002 -:1031C80023A08700EFF04F9E8320C10103248101D3 -:1031D80083244101032901018329C100032A8100B5 -:1031E8001305100013010102678000009305000019 -:1031F80013050900EFF0CFF203A789009306F0004A -:10320800B307E540E3DEF6F483A6010D93E7170064 -:103218002322F7003305D54023A4A1126FF05FF4F1 -:1032280063840512130101FF2324810023229100E6 -:10323800138405009304050023261100EFF08F96F0 -:103248000328C4FF130784FF9377E8FF3306F700CA -:10325800938501CC8326460003A5850093F6C6FF17 -:103268006306C51A2322D600137818003305D60042 -:10327800631E0808032384FF0328450033076740BB -:1032880083288700138581CCB387670013781800DB -:10329800638EA8120323C70023A668002324130102 -:1032A800630E081C93E617002322D7002320F6009C -:1032B8009306F01F63E6F60A93F687FF9386860067 -:1032C80003A54500B386D50003A6060013D857000A -:1032D80093071000B3970701B3E7A700138586FF8C -:1032E8002326A7002324C70023A2F50023A0E60075 -:1032F8002326E600032481008320C10013850400EF -:1033080083244100130101016FF00F8A0325450052 -:1033180013751500631C0502B387D700138581CC8C -:103328008326860093E817003308F7006384A616FF -:103338000326C60023A6C6002324D600232217018D -:103348002320F8006FF0DFF66780000093E617008F -:10335800232ED4FE2320F6009306F01FE3FEF6F496 -:1033680093D69700130640006368D60E93D667007D -:1033780013889603138686031318380033880501CB -:1033880083260800130888FF6304D81203A64600A2 -:103398001376C6FF63F6C70083A68600E318D8FE37 -:1033A80003A8C600232607012324D700032481008D -:1033B8008320C1002324E8001385040083244100EE -:1033C80023A6E600130101016FE01FFE6312081433 -:1033D8008325C60003268600B387F60003248100F0 -:1033E8002326B60023A4C50093E617008320C10056 -:1033F8002322D700138504003307F70083244100F4 -:103408002320F700130101016FE01FFA1378180059 -:10341800B387D70063100802032584FF3307A7404A -:103428008326C70003268700B387A7002326D60074 -:1034380023A4C60013E6170083A6410D2322C70064 -:1034480023A4E500E3E8D7EA83A5010E1385040069 -:10345800EFF01FCA6FF01FEA130640016374D6022B -:10346800130640056364D60693D6C7001388F6068C -:103478001386E606131838006FF05FF0B387D7009D -:103488006FF01FEA1388C6051386B60513183800AF -:103498006FF0DFEE23AAE50023A8E5002326A700A6 -:1034A8002324A700232217012320F8006FF09FE4AC -:1034B80003A5450013562640930710003396C7000E -:1034C8003366A60023A2C5006FF0DFED1306401592 -:1034D800636CD60093D6F7001388860713867607A1 -:1034E800131838006FF09FE913064055636CD60037 -:1034F80093D627011388D6071386C60713183800F2 -:103508006FF0DFE71308803F1306E0076FF01FE74F -:1035180093E617002322D7002320F6006FF09FDDE3 -:10352800130101FF13870500232481002322910042 -:10353800930506001304050013860600130507000B -:103548002326110023A60118EF0000469307F0FF79 -:10355800630CF5008320C10003248100832441000B -:10356800130101016780000083A7C118E38407FEE7 -:103578008320C1002320F400032481008324410018 -:103588001301010167800000130101F9232481065A -:10359800138405008395E500232291062320210743 -:1035A80023261106930406001389060063CA05043E -:1035B80013068100EF00C022634405040327C100FD -:1035C800B7F700008320C106B3F7E70037E7FFFF2E -:1035D800B387E7000324810693B717002320F90077 -:1035E8009307004023A0F400371500008324410608 -:1035F80003290106130505801301010767800000F0 -:103608008357C4002320090093F70708638407023F -:103618008320C106032481069307000423A0F40035 -:10362800032901068324410613050000130101073D -:10363800678000008320C1060324810693070040A9 -:1036480023A0F40003290106832441061305000082 -:10365800130101076780000083D7C500130101FE2D -:10366800232C8100232E1100232A910023282101D5 -:1036780093F72700138405006388070293873504AE -:1036880023A0F50023A8F5009307100023AAF5004E -:103698008320C101032481018324410103290101FD -:1036A80013010102678000009306C1001306810020 -:1036B80093040500EFF05FED8325810013090500F1 -:1036C80013850400EFE08FA38317C4006308050483 -:1036D80037170080130707FB23AEE4020327810096 -:1036E8008326C10093E707082316F4002320A400CB -:1036F8002328A400232AE40063980604B3E72701DB -:103708008320C1012316F40003248101832441018D -:1037180003290101130101026780000013F7072044 -:10372800E31807F693F7C7FF93E727001307340456 -:103738002316F400930710002320E4002328E40054 -:10374800232AF4006FF0DFF48315E40013850400E6 -:10375800EF00400F631605008317C4006FF01FFACF -:103768000357C4001377C7FF1367170093170701A0 -:1037780093D707416FF09FF8130101FF13870500E6 -:1037880023248100232291009305060013040500D9 -:1037980013860600130507002326110023A6011827 -:1037A800EF0080259307F0FF630CF5008320C1002C -:1037B8000324810083244100130101016780000074 -:1037C80083A7C118E38407FE8320C1002320F400E7 -:1037D8000324810083244100130101016780000054 -:1037E800130101FF13870500232481002322910080 -:1037F800130405009305060013050700232611008E -:1038080023A60118EF00400F9307F0FF630CF500A3 -:103818008320C10003248100832441001301010196 -:103828006780000083A7C118E38407FE8320C100D6 -:103838002320F400032481008324410013010101A3 -:1038480067800000130101FF2324810023229100D7 -:1038580013040500138505002326110023A601186B -:10386800EF0080109307F0FF630CF5008320C10080 -:1038780003248100832441001301010167800000B3 -:1038880083A7C118E38407FE8320C1002320F40026 -:103898000324810083244100130101016780000093 -:1038A800130101FF23261100232481009305000042 -:1038B800130600009306000013070000930700009A -:1038C800930890037300000013040500634C05007F -:1038D8008320C100130504000324810013010101A2 -:1038E8006780000033048040EF00002F232085000C -:1038F8001304F0FF6FF0DFFD130101F72322910895 -:1039080023261108938405002324810893050100C8 -:103918001306000093060000130700009307000039 -:1039280093080005730000001304050063440502B2 -:103938001385040093050100EF00C01F8320C10810 -:103948001305040003248108832441081301010995 -:103958006780000033048040EF00002823208500A2 -:103968001304F0FF6FF0DFFC130101F993058100E8 -:1039780023261106EFF05FF89307F0FF630EF500BA -:103988000325C1008320C1061355D5001375150002 -:1039980013010107678000008320C106130500009A -:1039A8001301010767800000130101FF232611009E -:1039B80023248100930600001307000093070000EA -:1039C8009308E0037300000013040500634C05002E -:1039D8008320C100130504000324810013010101A1 -:1039E8006780000033048040EF00001F232085001B -:1039F8001304F0FF6FF0DFFD130101FF2326110010 -:103A08002324810093060000130700009307000099 -:103A18009308F0037300000013040500634C0500CD -:103A28008320C10013050400032481001301010150 -:103A38006780000033048040EF00001A23208500CF -:103A48001304F0FF6FF0DFFD83A7410E130101FFA0 -:103A580023261100130805006398070213050000C8 -:103A680093050000130600009306000013070000EA -:103A78009308600D730000001307F0FF930705001B -:103A88006304E50423A2A10E3305F80093050000A2 -:103A980013060000930600001307000093070000B8 -:103AA8009308600D7300000083A7410E3308F800E7 -:103AB800631C05018320C10023A2A10E1385070002 -:103AC8001301010167800000EF0000118320C1008D -:103AD8009307C0002320F5001305F0FF130101012F -:103AE80067800000130101FF2326110023248100B1 -:103AF80093060000130700009307000093080004D2 -:103B08007300000013040500634C05008320C10006 -:103B180013050400032481001301010167800000DC -:103B280033048040EF00400B232085001304F0FF8E -:103B38006FF0DFFD130101FF83A3450183A2850117 -:103B480083AFC50103AF050283AE050303AE0504C9 -:103B580003A3850303A8850483A8C50403A68505D4 -:103B6800232681002324910003A4050183A4850052 -:103B78002322210103A9050083A6C50503A78506FD -:103B880083A7C5062310250123119500232285004C -:103B980023147500231555002316F5012317E50195 -:103BA8002328D5012326C50523246504232C0501D4 -:103BB800232E15012324C5022326D5020324C10080 -:103BC800232CE502232EF5028324810003294100DA -:103BD800130101016780000003A5C10C6780000084 -:103BE8004C657427732073746172742E2E2E2028EE -:103BF80054686973206D696768742074616B652007 -:103C080061207768696C65290A00000054322046F3 -:103C180061696C206F6E200057722D3E7265616479 -:103C280020616E642072657065617428577229205E -:103C3800746573747320706173736564210A00007E -:103C480053696D706C65204D61696E0A0000000053 -:103C5800746573745F646976657267656E63650A17 -:103C680000000000746573745F77737061776E0A83 -:103C780000000000536861726564204D656D6F72C5 -:103C88007920746573740A007074723A2000000019 -:103C98004F726967696E616C2056616C75653A2070 -:103CA80000000000526561642056616C75653A2019 -:103CB800000000002D2D2D2D2D2D2D2D2D2D2D2DE0 -:103CC8002D2D2D2D2D2D2D0A0000000076785F73E7 -:103CD8007061776E5F7761727073206D61745F6178 -:103CE80064645F6B65726E656C0A00005761697485 -:103CF800696E6720746F20656E73757265206F74C6 -:103D08006865722077617270732061726520646FD4 -:103D18006E652E2E2E202854616B657320612077E6 -:103D280068696C65290A000074657374696E675F59 -:103D3800746D630A00000000746573745F737061CA -:103D4800776E0A00300000003100000032000000E9 -:103D58003300000034000000350000003600000089 -:103D68003700000038000000390000006100000042 -:103D780062000000630000006400000065000000AD -:103D8800660000004C3D0080503D0080543D00809E -:103D9800583D00805C3D0080603D0080643D0080AF -:103DA800683D00806C3D0080703D0080743D00805F -:103DB800783D00807C3D0080803D0080843D00800F -:103DC800883D00804552524F523A20706F636C5FB5 -:103DD800737061776E20646F65736E2774207375D6 -:103DE80070706F7274205A2064696D656E73696FA4 -:073DF8006E207965742100C3 -:0440000060020080DA -:104008000500000005000000050000000500000094 -:104018000600000006000000060000000600000080 -:10402800070000000700000007000000070000006C -:104038000800000008000000080000000800000058 -:104048000100000001000000010000000100000064 -:104058000100000001000000010000000100000054 -:104068000100000001000000010000000100000044 -:104078000100000001000000010000000100000034 -:104088000500000005000000050000000500000014 -:10409800FCFFFFFF00000000000000008C430080D0 -:1040A800F44300805C440080000000000000000031 -:1040B80000000000000000000000000000000000F8 -:1040C80000000000000000000000000000000000E8 -:1040D80000000000000000000000000000000000D8 -:1040E80000000000000000000000000000000000C8 -:1040F80000000000000000000000000000000000B8 -:1041080000000000000000000000000000000000A7 -:104118000000000000000000000000000000000097 -:104128000000000000000000000000000000000087 -:104138000000000000000000000000000000000077 -:1041480001000000000000000E33CDAB34126DE614 -:10415800ECDE05000B00000000000000000000007D -:104168000000000000000000000000000000000047 -:104178000000000000000000000000000000000037 -:104188000000000000000000000000000000000027 -:104198000000000000000000000000000000000017 -:1041A8000000000000000000000000000000000007 -:1041B80000000000000000000000000000000000F7 -:1041C80000000000000000000000000000000000E7 -:1041D80000000000000000000000000000000000D7 -:1041E80000000000000000000000000000000000C7 -:1041F80000000000000000000000000000000000B7 -:1042080000000000000000000000000000000000A6 -:104218000000000000000000000000000000000096 -:104228000000000000000000000000000000000086 -:104238000000000000000000000000000000000076 -:104248000000000000000000000000000000000066 -:104258000000000000000000000000000000000056 -:104268000000000000000000000000000000000046 -:104278000000000000000000000000000000000036 -:104288000000000000000000000000000000000026 -:104298000000000000000000000000000000000016 -:1042A8000000000000000000000000000000000006 -:1042B80000000000000000000000000000000000F6 -:1042C80000000000000000000000000000000000E6 -:1042D80000000000000000000000000000000000D6 -:1042E80000000000000000000000000000000000C6 -:1042F80000000000000000000000000000000000B6 -:1043080000000000000000000000000000000000A5 -:104318000000000000000000000000000000000095 -:104328000000000000000000000000000000000085 -:104338000000000000000000000000000000000075 -:104348000000000000000000000000000000000065 -:104358000000000000000000000000000000000055 -:104368000000000000000000000000000000000045 -:104378000000000000000000000000000000000035 -:104388000000000000000000000000000000000025 -:104398000000000000000000000000000000000015 -:1043A8000000000000000000000000000000000005 -:1043B80000000000000000000000000000000000F5 -:1043C80000000000000000000000000000000000E5 -:1043D80000000000000000000000000000000000D5 -:1043E80000000000000000000000000000000000C5 -:1043F80000000000000000000000000000000000B5 -:1044080000000000000000000000000000000000A4 -:104418000000000000000000000000000000000094 -:104428000000000000000000000000000000000084 -:104438000000000000000000000000000000000074 -:104448000000000000000000000000000000000064 -:104458000000000000000000000000000000000054 -:104468000000000000000000000000000000000044 -:104478000000000000000000000000000000000034 -:104488000000000000000000000000000000000024 -:104498000000000000000000000000000000000014 -:1044A8000000000000000000000000000000000004 -:1044B80000000000000000000000000000000000F4 -:1044C8000000000000000000C8440080C8440080CC -:1044D800D0440080D0440080D8440080D844008074 -:1044E800E0440080E0440080E8440080E844008024 -:1044F800F0440080F0440080F8440080F8440080D4 -:10450800004500800045008008450080084500807F -:10451800104500801045008018450080184500802F -:1045280020450080204500802845008028450080DF -:10453800304500803045008038450080384500808F -:10454800404500804045008048450080484500803F -:1045580050450080504500805845008058450080EF -:10456800604500806045008068450080684500809F -:10457800704500807045008078450080784500804F -:1045880080450080804500808845008088450080FF -:1045980090450080904500809845008098450080AF -:1045A800A0450080A0450080A8450080A84500805F -:1045B800B0450080B0450080B8450080B84500800F -:1045C800C0450080C0450080C8450080C8450080BF -:1045D800D0450080D0450080D8450080D84500806F -:1045E800E0450080E0450080E8450080E84500801F -:1045F800F0450080F0450080F8450080F8450080CF -:10460800004600800046008008460080084600807A -:10461800104600801046008018460080184600802A -:1046280020460080204600802846008028460080DA -:10463800304600803046008038460080384600808A -:10464800404600804046008048460080484600803A -:1046580050460080504600805846008058460080EA -:10466800604600806046008068460080684600809A -:10467800704600807046008078460080784600804A -:1046880080460080804600808846008088460080FA -:1046980090460080904600809846008098460080AA -:1046A800A0460080A0460080A8460080A84600805A -:1046B800B0460080B0460080B8460080B84600800A -:1046C800C0460080C0460080C8460080C8460080BA -:1046D800D0460080D0460080D8460080D84600806A -:1046E800E0460080E0460080E8460080E84600801A -:1046F800F0460080F0460080F8460080F8460080CA -:104708000047008000470080084700800847008075 -:104718001047008010470080184700801847008025 -:1047280020470080204700802847008028470080D5 -:104738003047008030470080384700803847008085 -:104748004047008040470080484700804847008035 -:1047580050470080504700805847008058470080E5 -:104768006047008060470080684700806847008095 -:104778007047008070470080784700807847008045 -:1047880080470080804700808847008088470080F5 -:1047980090470080904700809847008098470080A5 -:1047A800A0470080A0470080A8470080A847008055 -:1047B800B0470080B0470080B8470080B847008005 -:1047C800C0470080C0470080C8470080C8470080B5 -:1047D800D0470080D0470080D8470080D847008065 -:1047E800E0470080E0470080E8470080E847008015 -:1047F800F0470080F0470080F8470080F8470080C5 -:104808000048008000480080084800800848008070 -:104818001048008010480080184800801848008020 -:1048280020480080204800802848008028480080D0 -:104838003048008030480080384800803848008080 -:104848004048008040480080484800804848008030 -:1048580050480080504800805848008058480080E0 -:104868006048008060480080684800806848008090 -:104878007048008070480080784800807848008040 -:1048880080480080804800808848008088480080F0 -:1048980090480080904800809848008098480080A0 -:1048A800A0480080A0480080A8480080A848008050 -:1048B800B0480080B0480080B8480080B848008000 -:0848C800C0480080C0480080D8 -:1048D000A0400080A0400080FFFFFFFF000002001A +:1008C800130101FF2324810083A741CC23261100B3 +:1008D80003A58700EFF01FE083A741CC03A54700DD +:1008E80083A70700E7800700EFF0DFE0032481001B +:1008F8008320C10013351500130101016FF09FDD3E +:10090800130101FE93074100232C810023A2F1CC9F +:10091800232E11002322C1002324D1002326B10055 +:100928009307100063DCA700B71500809385858CBA +:10093800EFF0DFD983A741CC83A587001385050095 +:10094800EFF05FD983A741CC03A5470083A7070031 +:10095800E7800700EFF01FDA13351500EFF09FD797 +:100968008320C10103248101130101026780000073 +:100978009305050093060000130600001305000008 +:100988006F008020130101FF9305000023248100DC +:100998002326110013040500EF00802803A501CCCD +:1009A8008327C50363840700E78007001305040055 +:1009B800EFF05FCD130101FF23248100B7170080FA +:1009C800371400801304440093874700B387874097 +:1009D800232291002326110093D427406380040228 +:1009E8009387C7FF33848700832704009384F4FF29 +:1009F8001304C4FFE7800700E39804FE8320C100C6 +:100A08000324810083244100130101016780000051 +:100A1800130101FF232481002320210137140080C2 +:100A28003719008093070400130909003309F940B6 +:100A3800232611002322910013592940630009023B +:100A48001304040093040000832704009384140013 +:100A580013044400E7800700E31899FE3714008068 +:100A68003719008093070400130949003309F94036 +:100A78001359294063000902130404009304000079 +:100A8800832704009384140013044400E7800700BC +:100A9800E31899FE8320C1000324810083244100C8 +:100AA8000329010013010101678000001303F0000E +:100AB80013070500637EC3029377F7006390070A64 +:100AC80063920508937606FF1376F600B386E60070 +:100AD8002320B7002322B7002324B7002326B7001A +:100AE80013070701E366D7FE63140600678000005A +:100AF800B306C3409396260097020000B3865600BB +:100B08006780C6002307B700A306B7002306B7000F +:100B1800A305B7002305B700A304B7002304B70053 +:100B2800A303B7002303B700A302B7002302B7004B +:100B3800A301B7002301B700A300B7002300B70043 +:100B48006780000093F5F50F93968500B3E5D5000F +:100B580093960501B3E5D5006FF0DFF6939627006D +:100B680097020000B386560093820000E78006FAD9 +:100B780093800200938707FF3307F7403306F60098 +:100B8800E378C3F66FF0DFF303A701CC832787145C +:100B9800638C070403A747001308F001634EE806B7 +:100BA8001318270063060502338307012324C308AB +:100BB80083A88718130610003316E600B3E8C800A8 +:100BC80023A417192324D310930620006304D50205 +:100BD8001307170023A2E700B387070123A4B70070 +:100BE80013050000678000009307C7142324F71437 +:100BF8006FF05FFA83A6C7181307170023A2E70050 +:100C080033E6C60023A6C718B387070123A4B70095 +:100C180013050000678000001305F0FF67800000DF +:100C2800130101FD232C410103AA01CC2320210338 +:100C38002326110203298A142324810223229102E4 +:100C4800232E3101232A5101232861012326710112 +:100C58002324810163000904130B0500938B05000D +:100C6800930A10009309F0FF832449001384F4FFCA +:100C78006342040293942400B304990063840B0430 +:100C880083A74410638077051304F4FF9384C4FF9B +:100C9800E31634FF8320C102032481028324410226 +:100CA800032901028329C101032A8101832A410101 +:100CB800032B0101832BC100032C810013010103C5 +:100CC800678000008327490083A644009387F7FFC5 +:100CD800638E870423A20400E38806FA8327891811 +:100CE80033978A00032C4900B377F7006392070211 +:100CF800E78006000327490083278A1463148701C5 +:100D0800E304F9F8E38807F8138907006FF0DFF5C3 +:100D18008327C91883A544083377F700631C0700A5 +:100D280013050B00E78006006FF0DFFC2322890023 +:100D38006FF09FFA13850500E78006006FF09FFBB0 +:100D48004C657427732073746172742E2E2E2028BC +:100D580054686973206D696768742074616B6520D5 +:100D680061207768696C65290A00000054322046C2 +:100D780061696C206F6E200057722D3E7265616448 +:100D880020616E642072657065617428577229202D +:100D9800746573747320706173736564210A00004D +:100DA80053696D706C65204D61696E0A0000000022 +:100DB800746573745F646976657267656E63650AE6 +:100DC80000000000746573745F77737061776E0A52 +:100DD80000000000536861726564204D656D6F7294 +:100DE8007920746573740A007074723A20000000E8 +:100DF8004F726967696E616C2056616C75653A203F +:100E080000000000526561642056616C75653A20E7 +:100E1800000000002D2D2D2D2D2D2D2D2D2D2D2DAE +:100E28002D2D2D2D2D2D2D0A0000000076785F73B5 +:100E38007061776E5F7761727073206D61745F6146 +:100E480064645F6B65726E656C0A00005761697453 +:100E5800696E6720746F20656E73757265206F7494 +:100E68006865722077617270732061726520646FA3 +:100E78006E652E2E2E202854616B657320612077B5 +:100E880068696C65290A000074657374696E675F28 +:100E9800746D630A00000000746573745F73706199 +:100EA800776E0A00300000003100000032000000B8 +:100EB8003300000034000000350000003600000058 +:100EC8003700000038000000390000006100000011 +:100ED800620000006300000064000000650000007C +:100EE80066000000AC0E0080B00E0080B40E0080DA +:100EF800B80E0080BC0E0080C00E0080C40E0080BA +:100F0800C80E0080CC0E0080D00E0080D40E008069 +:100F1800D80E0080DC0E0080E00E0080E40E008019 +:040F2800E80E00804F +:04100000600200800A +:1010080005000000050000000500000005000000C4 +:1010180006000000060000000600000006000000B0 +:10102800070000000700000007000000070000009C +:101038000800000008000000080000000800000088 +:101048000100000001000000010000000100000094 +:101058000100000001000000010000000100000084 +:101068000100000001000000010000000100000074 +:101078000100000001000000010000000100000064 +:101088000500000005000000050000000500000044 +:10109800FCFFFFFF00000000000000008C13008030 +:1010A800F41300805C1400800000000000000000C1 +:1010B8000000000000000000000000000000000028 +:1010C8000000000000000000000000000000000018 +:1010D8000000000000000000000000000000000008 +:1010E80000000000000000000000000000000000F8 +:1010F80000000000000000000000000000000000E8 +:1011080000000000000000000000000000000000D7 +:1011180000000000000000000000000000000000C7 +:1011280000000000000000000000000000000000B7 +:1011380000000000000000000000000000000000A7 +:1011480001000000000000000E33CDAB34126DE644 +:10115800ECDE05000B0000000000000000000000AD +:101168000000000000000000000000000000000077 +:101178000000000000000000000000000000000067 +:101188000000000000000000000000000000000057 +:101198000000000000000000000000000000000047 +:1011A8000000000000000000000000000000000037 +:1011B8000000000000000000000000000000000027 +:1011C8000000000000000000000000000000000017 +:1011D8000000000000000000000000000000000007 +:1011E80000000000000000000000000000000000F7 +:1011F80000000000000000000000000000000000E7 +:1012080000000000000000000000000000000000D6 +:1012180000000000000000000000000000000000C6 +:1012280000000000000000000000000000000000B6 +:1012380000000000000000000000000000000000A6 +:101248000000000000000000000000000000000096 +:101258000000000000000000000000000000000086 +:101268000000000000000000000000000000000076 +:101278000000000000000000000000000000000066 +:101288000000000000000000000000000000000056 +:101298000000000000000000000000000000000046 +:1012A8000000000000000000000000000000000036 +:1012B8000000000000000000000000000000000026 +:1012C8000000000000000000000000000000000016 +:1012D8000000000000000000000000000000000006 +:1012E80000000000000000000000000000000000F6 +:1012F80000000000000000000000000000000000E6 +:1013080000000000000000000000000000000000D5 +:1013180000000000000000000000000000000000C5 +:1013280000000000000000000000000000000000B5 +:1013380000000000000000000000000000000000A5 +:101348000000000000000000000000000000000095 +:101358000000000000000000000000000000000085 +:101368000000000000000000000000000000000075 +:101378000000000000000000000000000000000065 +:101388000000000000000000000000000000000055 +:101398000000000000000000000000000000000045 +:1013A8000000000000000000000000000000000035 +:1013B8000000000000000000000000000000000025 +:1013C8000000000000000000000000000000000015 +:1013D8000000000000000000000000000000000005 +:1013E80000000000000000000000000000000000F5 +:1013F80000000000000000000000000000000000E5 +:1014080000000000000000000000000000000000D4 +:1014180000000000000000000000000000000000C4 +:1014280000000000000000000000000000000000B4 +:1014380000000000000000000000000000000000A4 +:101448000000000000000000000000000000000094 +:101458000000000000000000000000000000000084 +:101468000000000000000000000000000000000074 +:101478000000000000000000000000000000000064 +:101488000000000000000000000000000000000054 +:101498000000000000000000000000000000000044 +:1014A8000000000000000000000000000000000034 +:1014B8000000000000000000000000000000000024 +:0414C800A0100080F0 :040000058000000077 :00000001FF