mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-23 21:39:10 -04:00
Merge branch 'master' into graphics
This commit is contained in:
commit
7b921387bc
61 changed files with 723 additions and 860462 deletions
|
@ -8,7 +8,8 @@ make -s
|
|||
|
||||
coverage()
|
||||
{
|
||||
# coverage tests
|
||||
echo "begin coverage tests..."
|
||||
|
||||
make -C tests/runtime run-rtlsim
|
||||
make -C tests/riscv/isa run-rtlsim
|
||||
make -C tests/regression run-vlsim
|
||||
|
@ -17,10 +18,14 @@ make -C tests/runtime run-simx
|
|||
make -C tests/riscv/isa run-simx
|
||||
make -C tests/regression run-simx
|
||||
make -C tests/opencl run-simx
|
||||
|
||||
echo "coverage tests done!"
|
||||
}
|
||||
|
||||
cluster()
|
||||
{
|
||||
echo "begin clustering tests..."
|
||||
|
||||
# warp/threads configurations
|
||||
./ci/travis_run.py ./ci/blackbox.sh --driver=rtlsim --cores=1 --warps=2 --threads=8 --app=demo
|
||||
./ci/travis_run.py ./ci/blackbox.sh --driver=rtlsim --cores=1 --warps=8 --threads=2 --app=demo
|
||||
|
@ -33,26 +38,33 @@ cluster()
|
|||
./ci/travis_run.py ./ci/blackbox.sh --driver=rtlsim --cores=2 --l2cache --app=demo --args="-n1"
|
||||
./ci/travis_run.py ./ci/blackbox.sh --driver=rtlsim --cores=2 --clusters=2 --l3cache --app=demo --args="-n1"
|
||||
./ci/travis_run.py ./ci/blackbox.sh --driver=rtlsim --cores=2 --clusters=2 --l2cache --l3cache --app=io_addr --args="-n1"
|
||||
|
||||
echo "clustering tests done!"
|
||||
}
|
||||
|
||||
debug()
|
||||
{
|
||||
# debugging
|
||||
echo "begin debugging tests..."
|
||||
|
||||
./ci/travis_run.py ./ci/blackbox.sh --driver=vlsim --cores=1 --perf --app=demo --args="-n1"
|
||||
./ci/travis_run.py ./ci/blackbox.sh --driver=vlsim --cores=1 --debug --app=demo --args="-n1"
|
||||
./ci/travis_run.py ./ci/blackbox.sh --driver=vlsim --cores=1 --scope --app=basic --args="-t0 -n1"
|
||||
|
||||
echo "debugging tests done!"
|
||||
}
|
||||
|
||||
config()
|
||||
{
|
||||
echo "begin configuration tests..."
|
||||
|
||||
# disabling M extension
|
||||
CONFIGS=-DEXT_M_DISABLE make -C hw/simulate
|
||||
CONFIGS=-DEXT_M_DISABLE ./ci/blackbox.sh --driver=rtlsim --cores=1 --app=no_mf_ext
|
||||
|
||||
# disabling F extension
|
||||
CONFIGS=-DEXT_F_DISABLE make -C hw/simulate
|
||||
CONFIGS=-DEXT_F_DISABLE ./ci/blackbox.sh --driver=rtlsim --cores=1 --app=no_mf_ext
|
||||
|
||||
# disable shared memory
|
||||
CONFIGS=-DSM_ENABLE=0 make -C hw/simulate
|
||||
CONFIGS=-DSM_ENABLE=0 ./ci/blackbox.sh --driver=rtlsim --cores=1 --app=no_smem
|
||||
|
||||
# disabling tex extension
|
||||
CONFIGS=-DEXT_TEX_DISABLE make -C hw/simulate
|
||||
|
@ -89,12 +101,17 @@ CONFIGS="-DVERILATOR_RESET_VALUE=1" ./ci/blackbox.sh --driver=vlsim --cores=4 --
|
|||
|
||||
# test long memory latency
|
||||
CONFIGS="-DMEM_LATENCY=100 -DMEM_RQ_SIZE=4 -DMEM_STALLS_MODULO=4" ./ci/blackbox.sh --driver=vlsim --cores=1 --app=demo
|
||||
|
||||
echo "configuration tests done!"
|
||||
}
|
||||
|
||||
stress()
|
||||
{
|
||||
# test pipeline stress
|
||||
echo "begin stress tests..."
|
||||
|
||||
./ci/travis_run.py ./ci/blackbox.sh --driver=rtlsim --cores=2 --l2cache --clusters=2 --l3cache --app=sgemm --args="-n256"
|
||||
|
||||
echo "stress tests done!"
|
||||
}
|
||||
|
||||
usage()
|
||||
|
|
|
@ -337,9 +337,10 @@
|
|||
// SM Configurable Knobs //////////////////////////////////////////////////////
|
||||
|
||||
// per thread stack size
|
||||
`ifndef STACK_SIZE
|
||||
`define STACK_SIZE 1024
|
||||
`ifndef STACK_LOG2_SIZE
|
||||
`define STACK_LOG2_SIZE 10
|
||||
`endif
|
||||
`define STACK_SIZE (1 << `STACK_LOG2_SIZE)
|
||||
|
||||
// Size of cache in bytes
|
||||
`ifndef SMEM_SIZE
|
||||
|
|
|
@ -91,8 +91,8 @@ module VX_ibuffer #(
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
reg [`NUM_WARPS-1:0] valid_table, valid_table_n;
|
||||
reg [`NUM_WARPS-1:0] schedule_table, schedule_table_n;
|
||||
reg [`NW_BITS-1:0] deq_wid, deq_wid_n;
|
||||
reg [`NW_BITS-1:0] deq_wid_rr, deq_wid_rr_n;
|
||||
reg deq_valid, deq_valid_n;
|
||||
reg [DATAW-1:0] deq_instr, deq_instr_n;
|
||||
reg [NWARPSW-1:0] num_warps;
|
||||
|
@ -108,34 +108,34 @@ module VX_ibuffer #(
|
|||
end
|
||||
end
|
||||
|
||||
// round-robin warp scheduling
|
||||
VX_rr_arbiter #(
|
||||
.NUM_REQS (`NUM_WARPS)
|
||||
) rr_arbiter (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.enable (ibuffer_if.ready),
|
||||
.requests (valid_table_n),
|
||||
.grant_index (deq_wid_rr_n),
|
||||
`UNUSED_PIN (grant_onehot),
|
||||
`UNUSED_PIN (grant_valid)
|
||||
);
|
||||
|
||||
// schedule the next instruction to issue
|
||||
always @(*) begin
|
||||
deq_valid_n = enq_fire;
|
||||
deq_wid_n = decode_if.wid;
|
||||
deq_instr_n = q_data_in;
|
||||
if (num_warps > 1) begin
|
||||
deq_valid_n = 1;
|
||||
for (integer i = `NUM_WARPS-1; i >= 0; --i) begin
|
||||
if (schedule_table[i]) begin
|
||||
deq_wid_n = `NW_BITS'(i);
|
||||
deq_instr_n = q_data_out[i];
|
||||
end
|
||||
end
|
||||
deq_wid_n = deq_wid_rr;
|
||||
deq_instr_n = q_data_out[deq_wid_rr];
|
||||
end else if (1 == num_warps && !(deq_fire && q_alm_empty[deq_wid])) begin
|
||||
deq_valid_n = 1;
|
||||
deq_wid_n = deq_wid;
|
||||
deq_instr_n = deq_fire ? q_data_prev[deq_wid] : q_data_out[deq_wid];
|
||||
end
|
||||
end
|
||||
|
||||
// do round-robin scheduling with multiple active warps
|
||||
always @(*) begin
|
||||
if ($countones(schedule_table) <= 1) begin
|
||||
schedule_table_n = valid_table_n;
|
||||
end else begin
|
||||
schedule_table_n = schedule_table;
|
||||
deq_valid_n = enq_fire;
|
||||
deq_wid_n = decode_if.wid;
|
||||
deq_instr_n = q_data_in;
|
||||
end
|
||||
schedule_table_n[deq_wid_n] = 0;
|
||||
end
|
||||
|
||||
wire warp_added = enq_fire && q_empty[decode_if.wid];
|
||||
|
@ -143,14 +143,14 @@ module VX_ibuffer #(
|
|||
|
||||
always @(posedge clk) begin
|
||||
if (reset) begin
|
||||
valid_table <= 0;
|
||||
deq_valid <= 0;
|
||||
num_warps <= 0;
|
||||
schedule_table <= 0;
|
||||
valid_table <= 0;
|
||||
deq_valid <= 0;
|
||||
num_warps <= 0;
|
||||
deq_wid_rr <= 0;
|
||||
end else begin
|
||||
valid_table <= valid_table_n;
|
||||
deq_valid <= deq_valid_n;
|
||||
schedule_table <= schedule_table_n;
|
||||
valid_table <= valid_table_n;
|
||||
deq_valid <= deq_valid_n;
|
||||
deq_wid_rr <= deq_wid_rr_n;
|
||||
|
||||
if (warp_added && !warp_removed) begin
|
||||
num_warps <= num_warps + NWARPSW'(1);
|
||||
|
|
|
@ -38,7 +38,8 @@ module VX_instr_demux (
|
|||
wire alu_req_valid = ibuffer_if.valid && (ibuffer_if.ex_type == `EX_ALU);
|
||||
|
||||
VX_skid_buffer #(
|
||||
.DATAW (`NW_BITS + `NUM_THREADS + 32 + 32 + `ALU_BITS + `MOD_BITS + 32 + 1 + 1 + `NR_BITS + 1 + `NT_BITS + (2 * `NUM_THREADS * 32))
|
||||
.DATAW (`NW_BITS + `NUM_THREADS + 32 + 32 + `ALU_BITS + `MOD_BITS + 32 + 1 + 1 + `NR_BITS + 1 + `NT_BITS + (2 * `NUM_THREADS * 32)),
|
||||
.OUTPUT_REG (1)
|
||||
) alu_buffer (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
@ -56,7 +57,8 @@ module VX_instr_demux (
|
|||
wire lsu_is_fence = `LSU_IS_FENCE(ibuffer_if.op_mod);
|
||||
|
||||
VX_skid_buffer #(
|
||||
.DATAW (`NW_BITS + `NUM_THREADS + 32 + `LSU_BITS + 1 + 32 + `NR_BITS + 1 + (2 * `NUM_THREADS * 32))
|
||||
.DATAW (`NW_BITS + `NUM_THREADS + 32 + `LSU_BITS + 1 + 32 + `NR_BITS + 1 + (2 * `NUM_THREADS * 32)),
|
||||
.OUTPUT_REG (1)
|
||||
) lsu_buffer (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
@ -73,7 +75,8 @@ module VX_instr_demux (
|
|||
wire csr_req_valid = ibuffer_if.valid && (ibuffer_if.ex_type == `EX_CSR);
|
||||
|
||||
VX_skid_buffer #(
|
||||
.DATAW (`NW_BITS + `NUM_THREADS + 32 + `CSR_BITS + `CSR_ADDR_BITS + `NR_BITS + 1 + 1 + `NR_BITS + 32)
|
||||
.DATAW (`NW_BITS + `NUM_THREADS + 32 + `CSR_BITS + `CSR_ADDR_BITS + `NR_BITS + 1 + 1 + `NR_BITS + 32),
|
||||
.OUTPUT_REG (1)
|
||||
) csr_buffer (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
@ -91,7 +94,8 @@ module VX_instr_demux (
|
|||
wire fpu_req_valid = ibuffer_if.valid && (ibuffer_if.ex_type == `EX_FPU);
|
||||
|
||||
VX_skid_buffer #(
|
||||
.DATAW (`NW_BITS + `NUM_THREADS + 32 + `FPU_BITS + `MOD_BITS + `NR_BITS + 1 + (3 * `NUM_THREADS * 32))
|
||||
.DATAW (`NW_BITS + `NUM_THREADS + 32 + `FPU_BITS + `MOD_BITS + `NR_BITS + 1 + (3 * `NUM_THREADS * 32)),
|
||||
.OUTPUT_REG (1)
|
||||
) fpu_buffer (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
@ -112,7 +116,8 @@ module VX_instr_demux (
|
|||
wire gpu_req_valid = ibuffer_if.valid && (ibuffer_if.ex_type == `EX_GPU);
|
||||
|
||||
VX_skid_buffer #(
|
||||
.DATAW (`NW_BITS + `NUM_THREADS + 32 + 32 + `GPU_BITS + `MOD_BITS + `NR_BITS + 1 + (3 * `NUM_THREADS * 32)) //update number of bits
|
||||
.DATAW (`NW_BITS + `NUM_THREADS + 32 + 32 + `GPU_BITS + `MOD_BITS + `NR_BITS + 1 + (3 * `NUM_THREADS * 32)),
|
||||
.OUTPUT_REG (1)
|
||||
) gpu_buffer (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
|
|
@ -339,17 +339,17 @@ module VX_lsu_unit #(
|
|||
if (dcache_req_if.rw[0]) begin
|
||||
$write("%t: D$%0d Wr Req: wid=%0d, PC=%0h, tmask=%b, addr=", $time, CORE_ID, req_wid, req_pc, dcache_req_fire);
|
||||
`PRINT_ARRAY1D(req_addr, `NUM_THREADS);
|
||||
$write(", tag=%0h, byteen=%0h, type=", req_tag, dcache_req_if.byteen);
|
||||
`PRINT_ARRAY1D(req_addr_type, `NUM_THREADS);
|
||||
$write(", data=");
|
||||
`PRINT_ARRAY1D(dcache_req_if.data, `NUM_THREADS);
|
||||
$write("\n");
|
||||
$write(", tag=%0h, byteen=%0h, type=", req_tag, dcache_req_if.byteen);
|
||||
`PRINT_ARRAY1D(req_addr_type, `NUM_THREADS);
|
||||
$write(", data=");
|
||||
`PRINT_ARRAY1D(dcache_req_if.data, `NUM_THREADS);
|
||||
$write("\n");
|
||||
end else begin
|
||||
$write("%t: D$%0d Rd Req: wid=%0d, PC=%0h, tmask=%b, addr=", $time, CORE_ID, req_wid, req_pc, dcache_req_fire);
|
||||
$write("%t: D$%0d Rd Req: wid=%0d, PC=%0h, tmask=%b, addr=", $time, CORE_ID, req_wid, req_pc, dcache_req_fire);
|
||||
`PRINT_ARRAY1D(req_addr, `NUM_THREADS);
|
||||
$write(", tag=%0h, byteen=%0h, type=", req_tag, dcache_req_if.byteen);
|
||||
`PRINT_ARRAY1D(req_addr_type, `NUM_THREADS);
|
||||
$write(", rd=%0d, is_dup=%b\n", req_rd, req_is_dup);
|
||||
$write(", tag=%0h, byteen=%0h, type=", req_tag, dcache_req_if.byteen);
|
||||
`PRINT_ARRAY1D(req_addr_type, `NUM_THREADS);
|
||||
$write(", rd=%0d, is_dup=%b\n", req_rd, req_is_dup);
|
||||
end
|
||||
end
|
||||
if (dcache_rsp_fire) begin
|
||||
|
|
|
@ -287,13 +287,14 @@ module VX_mem_unit # (
|
|||
assign dcache_req_tmp_if.byteen = dcache_req_if.byteen;
|
||||
assign dcache_req_tmp_if.data = dcache_req_if.data;
|
||||
assign dcache_req_tmp_if.tag = dcache_req_if.tag;
|
||||
assign dcache_req_tmp_if.ready = dcache_req_if.ready;
|
||||
assign dcache_req_if.ready = dcache_req_tmp_if.ready;
|
||||
|
||||
// D-cache to core reponse
|
||||
assign dcache_rsp_if.valid = dcache_rsp_tmp_if.valid;
|
||||
assign dcache_rsp_if.tmask = dcache_rsp_tmp_if.tmask;
|
||||
assign dcache_rsp_if.tag = dcache_rsp_tmp_if.tag;
|
||||
assign dcache_rsp_if.data = dcache_rsp_tmp_if.data;
|
||||
assign dcache_rsp_if.ready = dcache_rsp_tmp_if.ready;
|
||||
assign dcache_rsp_tmp_if.ready = dcache_rsp_if.ready;
|
||||
end
|
||||
|
||||
wire [`DMEM_TAG_WIDTH-1:0] icache_mem_req_tag = `DMEM_TAG_WIDTH'(icache_mem_req_if.tag);
|
||||
|
|
23
hw/rtl/cache/VX_cache.v
vendored
23
hw/rtl/cache/VX_cache.v
vendored
|
@ -92,7 +92,7 @@ module VX_cache #(
|
|||
`STATIC_ASSERT(NUM_PORTS <= NUM_BANKS, ("invalid value"))
|
||||
|
||||
localparam CORE_TAG_X_WIDTH = CORE_TAG_WIDTH - NC_ENABLE;
|
||||
localparam CORE_TAG_ID_X_BITS = CORE_TAG_ID_BITS - NC_ENABLE;
|
||||
localparam CORE_TAG_ID_X_BITS = (CORE_TAG_ID_BITS != 0) ? (CORE_TAG_ID_BITS - NC_ENABLE) : CORE_TAG_ID_BITS;
|
||||
|
||||
`ifdef PERF_ENABLE
|
||||
wire [NUM_BANKS-1:0] perf_read_miss_per_bank;
|
||||
|
@ -125,13 +125,13 @@ module VX_cache #(
|
|||
wire [CACHE_LINE_SIZE-1:0] mem_req_byteen_nc;
|
||||
wire [`MEM_ADDR_WIDTH-1:0] mem_req_addr_nc;
|
||||
wire [`CACHE_LINE_WIDTH-1:0] mem_req_data_nc;
|
||||
wire [MEM_TAG_WIDTH-1:0] mem_req_tag_nc;
|
||||
wire [`MEM_ADDR_WIDTH-1:0] mem_req_tag_nc;
|
||||
wire mem_req_ready_nc;
|
||||
|
||||
// Memory response
|
||||
wire mem_rsp_valid_nc;
|
||||
wire [`CACHE_LINE_WIDTH-1:0] mem_rsp_data_nc;
|
||||
wire [MEM_TAG_WIDTH-1:0] mem_rsp_tag_nc;
|
||||
wire [`MEM_ADDR_WIDTH-1:0] mem_rsp_tag_nc;
|
||||
wire mem_rsp_ready_nc;
|
||||
|
||||
if (NC_ENABLE) begin
|
||||
|
@ -146,7 +146,8 @@ module VX_cache #(
|
|||
|
||||
.MEM_ADDR_WIDTH (`MEM_ADDR_WIDTH),
|
||||
.MEM_DATA_SIZE (CACHE_LINE_SIZE),
|
||||
.MEM_TAG_WIDTH (MEM_TAG_WIDTH)
|
||||
.MEM_TAG_IN_WIDTH (`MEM_ADDR_WIDTH),
|
||||
.MEM_TAG_OUT_WIDTH (MEM_TAG_WIDTH)
|
||||
) nc_bypass (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
@ -245,12 +246,9 @@ module VX_cache #(
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
wire [`CACHE_LINE_WIDTH-1:0] mem_rsp_data_qual;
|
||||
wire [`MEM_ADDR_WIDTH-1:0] mem_rsp_tag_nc_a, mem_rsp_tag_qual;
|
||||
wire [`MEM_ADDR_WIDTH-1:0] mem_rsp_tag_qual;
|
||||
|
||||
wire mrsq_out_valid, mrsq_out_ready;
|
||||
|
||||
// trim out non-cacheable flags
|
||||
assign mem_rsp_tag_nc_a = mem_rsp_tag_nc[NC_ENABLE +: `MEM_ADDR_WIDTH];
|
||||
|
||||
VX_elastic_buffer #(
|
||||
.DATAW (`MEM_ADDR_WIDTH + `CACHE_LINE_WIDTH),
|
||||
|
@ -261,7 +259,7 @@ module VX_cache #(
|
|||
.reset (reset),
|
||||
.ready_in (mem_rsp_ready_nc),
|
||||
.valid_in (mem_rsp_valid_nc),
|
||||
.data_in ({mem_rsp_tag_nc_a, mem_rsp_data_nc}),
|
||||
.data_in ({mem_rsp_tag_nc, mem_rsp_data_nc}),
|
||||
.data_out ({mem_rsp_tag_qual, mem_rsp_data_qual}),
|
||||
.ready_out (mrsq_out_ready),
|
||||
.valid_out (mrsq_out_valid)
|
||||
|
@ -545,12 +543,7 @@ module VX_cache #(
|
|||
.ready_out (mem_req_ready_nc)
|
||||
);
|
||||
|
||||
// build memory tag adding non-cacheable flag
|
||||
if (NC_ENABLE) begin
|
||||
assign mem_req_tag_nc = MEM_TAG_WIDTH'({mem_req_addr_nc, 1'b0});
|
||||
end else begin
|
||||
assign mem_req_tag_nc = MEM_TAG_WIDTH'(mem_req_addr_nc);
|
||||
end
|
||||
assign mem_req_tag_nc = mem_req_addr_nc;
|
||||
|
||||
`ifdef PERF_ENABLE
|
||||
// per cycle: core_reads, core_writes
|
||||
|
|
2
hw/rtl/cache/VX_cache_define.vh
vendored
2
hw/rtl/cache/VX_cache_define.vh
vendored
|
@ -69,4 +69,4 @@
|
|||
|
||||
`define TO_FULL_ADDR(x) {x, (32-$bits(x))'(0)}
|
||||
|
||||
`endif
|
||||
`endif
|
47
hw/rtl/cache/VX_nc_bypass.v
vendored
47
hw/rtl/cache/VX_nc_bypass.v
vendored
|
@ -11,7 +11,8 @@ module VX_nc_bypass #(
|
|||
|
||||
parameter MEM_ADDR_WIDTH = 1,
|
||||
parameter MEM_DATA_SIZE = 1,
|
||||
parameter MEM_TAG_WIDTH = 1,
|
||||
parameter MEM_TAG_IN_WIDTH = 1,
|
||||
parameter MEM_TAG_OUT_WIDTH = 1,
|
||||
|
||||
localparam CORE_DATA_WIDTH = CORE_DATA_SIZE * 8,
|
||||
localparam MEM_DATA_WIDTH = MEM_DATA_SIZE * 8,
|
||||
|
@ -58,7 +59,7 @@ module VX_nc_bypass #(
|
|||
input wire [MEM_ADDR_WIDTH-1:0] mem_req_addr_in,
|
||||
input wire [MEM_DATA_SIZE-1:0] mem_req_byteen_in,
|
||||
input wire [MEM_DATA_WIDTH-1:0] mem_req_data_in,
|
||||
input wire [MEM_TAG_WIDTH-1:0] mem_req_tag_in,
|
||||
input wire [MEM_TAG_IN_WIDTH-1:0] mem_req_tag_in,
|
||||
output wire mem_req_ready_in,
|
||||
|
||||
// Memory request out
|
||||
|
@ -67,19 +68,19 @@ module VX_nc_bypass #(
|
|||
output wire [MEM_ADDR_WIDTH-1:0] mem_req_addr_out,
|
||||
output wire [MEM_DATA_SIZE-1:0] mem_req_byteen_out,
|
||||
output wire [MEM_DATA_WIDTH-1:0] mem_req_data_out,
|
||||
output wire [MEM_TAG_WIDTH-1:0] mem_req_tag_out,
|
||||
output wire [MEM_TAG_OUT_WIDTH-1:0] mem_req_tag_out,
|
||||
input wire mem_req_ready_out,
|
||||
|
||||
// Memory response in
|
||||
input wire mem_rsp_valid_in,
|
||||
input wire [MEM_DATA_WIDTH-1:0] mem_rsp_data_in,
|
||||
input wire [MEM_TAG_WIDTH-1:0] mem_rsp_tag_in,
|
||||
input wire [MEM_TAG_OUT_WIDTH-1:0] mem_rsp_tag_in,
|
||||
output wire mem_rsp_ready_in,
|
||||
|
||||
// Memory response out
|
||||
output wire mem_rsp_valid_out,
|
||||
output wire [MEM_DATA_WIDTH-1:0] mem_rsp_data_out,
|
||||
output wire [MEM_TAG_WIDTH-1:0] mem_rsp_tag_out,
|
||||
output wire [MEM_TAG_IN_WIDTH-1:0] mem_rsp_tag_out,
|
||||
input wire mem_rsp_ready_out
|
||||
);
|
||||
`STATIC_ASSERT((NUM_RSP_TAGS == 1 || NUM_RSP_TAGS == NUM_REQS), ("invalid paramter"))
|
||||
|
@ -129,7 +130,7 @@ module VX_nc_bypass #(
|
|||
.N (CORE_TAG_IN_WIDTH),
|
||||
.S (1),
|
||||
.POS (NC_TAG_BIT)
|
||||
) bits_remove (
|
||||
) core_req_tag_remove (
|
||||
.data_in (core_req_tag_in[i]),
|
||||
.data_out (core_req_tag_out[i])
|
||||
);
|
||||
|
@ -150,6 +151,18 @@ module VX_nc_bypass #(
|
|||
assign mem_req_valid_out = mem_req_valid_in || core_req_nc_valid;
|
||||
assign mem_req_ready_in = mem_req_ready_out;
|
||||
|
||||
wire [(MEM_TAG_IN_WIDTH+1)-1:0] mem_req_tag_in_nc;
|
||||
|
||||
VX_bits_insert #(
|
||||
.N (MEM_TAG_IN_WIDTH),
|
||||
.S (1),
|
||||
.POS (NC_TAG_BIT)
|
||||
) mem_req_tag_insert (
|
||||
.data_in (mem_req_tag_in),
|
||||
.sel_in ('0),
|
||||
.data_out (mem_req_tag_in_nc)
|
||||
);
|
||||
|
||||
if (NUM_REQS > 1) begin
|
||||
|
||||
wire [CORE_TAG_IN_WIDTH-1:0] core_req_tag_in_sel;
|
||||
|
@ -188,10 +201,10 @@ module VX_nc_bypass #(
|
|||
mem_req_byteen_in_r[req_addr_idx * CORE_DATA_SIZE +: CORE_DATA_SIZE] = core_req_byteen_in_sel;
|
||||
end
|
||||
assign mem_req_byteen_out = mem_req_valid_in ? mem_req_byteen_in : mem_req_byteen_in_r;
|
||||
assign mem_req_tag_out = mem_req_valid_in ? mem_req_tag_in : MEM_TAG_WIDTH'({core_req_nc_tid, req_addr_idx, core_req_tag_in_sel});
|
||||
assign mem_req_tag_out = mem_req_valid_in ? MEM_TAG_OUT_WIDTH'(mem_req_tag_in_nc) : MEM_TAG_OUT_WIDTH'({core_req_nc_tid, req_addr_idx, core_req_tag_in_sel});
|
||||
end else begin
|
||||
assign mem_req_byteen_out = mem_req_valid_in ? mem_req_byteen_in : core_req_byteen_in_sel;
|
||||
assign mem_req_tag_out = mem_req_valid_in ? mem_req_tag_in : MEM_TAG_WIDTH'({core_req_nc_tid, core_req_tag_in_sel});
|
||||
assign mem_req_tag_out = mem_req_valid_in ? MEM_TAG_OUT_WIDTH'(mem_req_tag_in_nc) : MEM_TAG_OUT_WIDTH'({core_req_nc_tid, core_req_tag_in_sel});
|
||||
end
|
||||
end else begin
|
||||
`UNUSED_VAR (core_req_nc_tid)
|
||||
|
@ -212,10 +225,10 @@ module VX_nc_bypass #(
|
|||
mem_req_byteen_in_r[req_addr_idx * CORE_DATA_SIZE +: CORE_DATA_SIZE] = core_req_byteen_in;
|
||||
end
|
||||
assign mem_req_byteen_out = mem_req_valid_in ? mem_req_byteen_in : mem_req_byteen_in_r;
|
||||
assign mem_req_tag_out = mem_req_valid_in ? mem_req_tag_in : MEM_TAG_WIDTH'({req_addr_idx, core_req_tag_in});
|
||||
assign mem_req_tag_out = mem_req_valid_in ? MEM_TAG_OUT_WIDTH'(mem_req_tag_in_nc) : MEM_TAG_OUT_WIDTH'({req_addr_idx, core_req_tag_in});
|
||||
end else begin
|
||||
assign mem_req_byteen_out = mem_req_valid_in ? mem_req_byteen_in : core_req_byteen_in;
|
||||
assign mem_req_tag_out = mem_req_valid_in ? mem_req_tag_in : MEM_TAG_WIDTH'(core_req_tag_in);
|
||||
assign mem_req_tag_out = mem_req_valid_in ? MEM_TAG_OUT_WIDTH'(mem_req_tag_in_nc) : MEM_TAG_OUT_WIDTH'(core_req_tag_in);
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -230,7 +243,7 @@ module VX_nc_bypass #(
|
|||
.N (CORE_TAG_OUT_WIDTH),
|
||||
.S (1),
|
||||
.POS (NC_TAG_BIT)
|
||||
) bits_remove (
|
||||
) core_rsp_tag_insert (
|
||||
.data_in (core_rsp_tag_in[i]),
|
||||
.sel_in ('0),
|
||||
.data_out (core_rsp_tag_out_unqual[i])
|
||||
|
@ -298,7 +311,15 @@ module VX_nc_bypass #(
|
|||
|
||||
assign mem_rsp_valid_out = mem_rsp_valid_in && ~mem_rsp_tag_in[NC_TAG_BIT];
|
||||
assign mem_rsp_data_out = mem_rsp_data_in;
|
||||
assign mem_rsp_tag_out = mem_rsp_tag_in;
|
||||
|
||||
VX_bits_remove #(
|
||||
.N (MEM_TAG_IN_WIDTH+1),
|
||||
.S (1),
|
||||
.POS (NC_TAG_BIT)
|
||||
) mem_rsp_tag_remove (
|
||||
.data_in (mem_rsp_tag_in[(MEM_TAG_IN_WIDTH+1)-1:0]),
|
||||
.data_out (mem_rsp_tag_out)
|
||||
);
|
||||
|
||||
if (NUM_RSP_TAGS > 1) begin
|
||||
wire [CORE_REQ_TIDW-1:0] rsp_tid = mem_rsp_tag_in[(CORE_TAG_IN_WIDTH + D) +: CORE_REQ_TIDW];
|
||||
|
@ -307,4 +328,4 @@ module VX_nc_bypass #(
|
|||
assign mem_rsp_ready_in = is_mem_rsp_nc ? (~core_rsp_valid_in && core_rsp_ready_out) : mem_rsp_ready_out;
|
||||
end
|
||||
|
||||
endmodule
|
||||
endmodule
|
|
@ -241,7 +241,7 @@ def expand_text(text, params):
|
|||
|
||||
while True:
|
||||
if iter > 65536:
|
||||
raise Exception("Macro recursion!")
|
||||
raise Exception("Macro recursion!")
|
||||
has_func = False
|
||||
while True:
|
||||
params_updated = False
|
||||
|
|
|
@ -70,14 +70,13 @@ vx_set_sp:
|
|||
|
||||
# allocate stack region for a threads on the processor
|
||||
# set stack pointer
|
||||
la sp, __stack_top # load stack base address
|
||||
la a1, __stack_size # stack size
|
||||
li sp, SMEM_BASE_ADDR # load stack base address
|
||||
#if SM_ENABLE
|
||||
csrr a2, CSR_LTID # get lobal thread id
|
||||
csrr a2, CSR_LTID # get local thread id
|
||||
#else
|
||||
csrr a2, CSR_GTID # get global thread id
|
||||
#endif
|
||||
mul a1, a1, a2
|
||||
slli a1, a2, STACK_LOG2_SIZE
|
||||
sub sp, sp, a1 # sub thread block
|
||||
|
||||
# disable active warps except warp0
|
||||
|
|
|
@ -18,6 +18,16 @@ run-simx:
|
|||
$(MAKE) -C printf run-simx
|
||||
#$(MAKE) -C psort run-simx
|
||||
|
||||
run-rtlsim:
|
||||
$(MAKE) -C vecadd run-rtlsim
|
||||
$(MAKE) -C sgemm run-rtlsim
|
||||
$(MAKE) -C saxpy run-rtlsim
|
||||
$(MAKE) -C sfilter run-rtlsim
|
||||
$(MAKE) -C nearn run-rtlsim
|
||||
$(MAKE) -C guassian run-rtlsim
|
||||
$(MAKE) -C printf run-rtlsim
|
||||
#$(MAKE) -C psort run-rtlsim
|
||||
|
||||
run-vlsim:
|
||||
$(MAKE) -C vecadd run-vlsim
|
||||
$(MAKE) -C sgemm run-vlsim
|
||||
|
|
|
@ -6,8 +6,11 @@ all:
|
|||
$(MAKE) -C io_addr
|
||||
$(MAKE) -C printf
|
||||
$(MAKE) -C diverge
|
||||
$(MAKE) -C sort
|
||||
$(MAKE) -C fence
|
||||
$(MAKE) -C tex
|
||||
$(MAKE) -C no_mf_ext
|
||||
$(MAKE) -C no_smem
|
||||
|
||||
run-simx:
|
||||
$(MAKE) -C basic run-simx
|
||||
|
@ -17,8 +20,24 @@ run-simx:
|
|||
$(MAKE) -C io_addr run-simx
|
||||
$(MAKE) -C printf run-simx
|
||||
$(MAKE) -C diverge run-simx
|
||||
#$(MAKE) -C sort run-simx
|
||||
$(MAKE) -C fence run-simx
|
||||
#$(MAKE) -C tex run-simx
|
||||
$(MAKE) -C no_mf_ext run-simx
|
||||
$(MAKE) -C no_smem run-simx
|
||||
|
||||
run-rtlsim:
|
||||
$(MAKE) -C basic run-rtlsim
|
||||
$(MAKE) -C demo run-rtlsim
|
||||
$(MAKE) -C dogfood run-rtlsim
|
||||
$(MAKE) -C mstress run-rtlsim
|
||||
$(MAKE) -C io_addr run-rtlsim
|
||||
$(MAKE) -C printf run-rtlsim
|
||||
$(MAKE) -C diverge run-rtlsim
|
||||
#$(MAKE) -C sort run-rtlsim
|
||||
$(MAKE) -C fence run-rtlsim
|
||||
$(MAKE) -C no_mf_ext run-rtlsim
|
||||
$(MAKE) -C no_smem run-rtlsim
|
||||
|
||||
run-vlsim:
|
||||
$(MAKE) -C basic run-vlsim
|
||||
|
@ -28,8 +47,11 @@ run-vlsim:
|
|||
$(MAKE) -C io_addr run-vlsim
|
||||
$(MAKE) -C printf run-vlsim
|
||||
$(MAKE) -C diverge run-vlsim
|
||||
#$(MAKE) -C sort run-vlsim
|
||||
$(MAKE) -C fence run-vlsim
|
||||
$(MAKE) -C tex run-vlsim
|
||||
$(MAKE) -C no_mf_ext run-vlsim
|
||||
$(MAKE) -C no_smem run-vlsim
|
||||
|
||||
clean:
|
||||
$(MAKE) -C basic clean
|
||||
|
@ -39,8 +61,11 @@ clean:
|
|||
$(MAKE) -C io_addr clean
|
||||
$(MAKE) -C printf clean
|
||||
$(MAKE) -C diverge clean
|
||||
$(MAKE) -C sort clean
|
||||
$(MAKE) -C fence clean
|
||||
$(MAKE) -C tex clean
|
||||
$(MAKE) -C no_mf_ext clean
|
||||
$(MAKE) -C no_smem clean
|
||||
|
||||
clean-all:
|
||||
$(MAKE) -C basic clean-all
|
||||
|
@ -50,6 +75,9 @@ clean-all:
|
|||
$(MAKE) -C io_addr clean-all
|
||||
$(MAKE) -C printf clean-all
|
||||
$(MAKE) -C diverge clean-all
|
||||
$(MAKE) -C sort clean-all
|
||||
$(MAKE) -C fence clean-all
|
||||
$(MAKE) -C tex clean-all
|
||||
$(MAKE) -C no_mf_ext clean-all
|
||||
$(MAKE) -C no_smem clean-all
|
||||
|
||||
|
|
Binary file not shown.
|
@ -1,546 +0,0 @@
|
|||
|
||||
kernel.elf: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .init:
|
||||
|
||||
80000000 <_start>:
|
||||
80000000: 00000597 auipc a1,0x0
|
||||
80000004: 0c058593 addi a1,a1,192 # 800000c0 <vx_set_sp>
|
||||
80000008: fc102573 csrr a0,0xfc1
|
||||
8000000c: 00b5106b 0xb5106b
|
||||
80000010: 0b0000ef jal ra,800000c0 <vx_set_sp>
|
||||
80000014: 00100513 li a0,1
|
||||
80000018: 0005006b 0x5006b
|
||||
8000001c: 00002517 auipc a0,0x2
|
||||
80000020: b0050513 addi a0,a0,-1280 # 80001b1c <__BSS_END__>
|
||||
80000024: 00002617 auipc a2,0x2
|
||||
80000028: af860613 addi a2,a2,-1288 # 80001b1c <__BSS_END__>
|
||||
8000002c: 40a60633 sub a2,a2,a0
|
||||
80000030: 00000593 li a1,0
|
||||
80000034: 41c000ef jal ra,80000450 <memset>
|
||||
80000038: 00000517 auipc a0,0x0
|
||||
8000003c: 32050513 addi a0,a0,800 # 80000358 <__libc_fini_array>
|
||||
80000040: 2d0000ef jal ra,80000310 <atexit>
|
||||
80000044: 370000ef jal ra,800003b4 <__libc_init_array>
|
||||
80000048: 008000ef jal ra,80000050 <main>
|
||||
8000004c: 2d80006f j 80000324 <exit>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
80000050 <main>:
|
||||
80000050: 7ffff7b7 lui a5,0x7ffff
|
||||
80000054: 0007a703 lw a4,0(a5) # 7ffff000 <__stack_size+0x7fffec00>
|
||||
80000058: 0047a683 lw a3,4(a5)
|
||||
8000005c: 0087a583 lw a1,8(a5)
|
||||
80000060: cc5027f3 csrr a5,0xcc5
|
||||
80000064: 02e787b3 mul a5,a5,a4
|
||||
80000068: 02070863 beqz a4,80000098 <main+0x48>
|
||||
8000006c: 00f70733 add a4,a4,a5
|
||||
80000070: 00271713 slli a4,a4,0x2
|
||||
80000074: 00279793 slli a5,a5,0x2
|
||||
80000078: 00d787b3 add a5,a5,a3
|
||||
8000007c: 00d70733 add a4,a4,a3
|
||||
80000080: 40d585b3 sub a1,a1,a3
|
||||
80000084: 0007a603 lw a2,0(a5)
|
||||
80000088: 00f586b3 add a3,a1,a5
|
||||
8000008c: 00478793 addi a5,a5,4
|
||||
80000090: 00c6a023 sw a2,0(a3)
|
||||
80000094: fef718e3 bne a4,a5,80000084 <main+0x34>
|
||||
80000098: 00008067 ret
|
||||
|
||||
8000009c <register_fini>:
|
||||
8000009c: 00000793 li a5,0
|
||||
800000a0: 00078863 beqz a5,800000b0 <register_fini+0x14>
|
||||
800000a4: 80000537 lui a0,0x80000
|
||||
800000a8: 35850513 addi a0,a0,856 # 80000358 <__stack_top+0x81000358>
|
||||
800000ac: 2640006f j 80000310 <atexit>
|
||||
800000b0: 00008067 ret
|
||||
|
||||
800000b4 <_exit>:
|
||||
800000b4: 048000ef jal ra,800000fc <vx_perf_dump>
|
||||
800000b8: 00000513 li a0,0
|
||||
800000bc: 0005006b 0x5006b
|
||||
|
||||
800000c0 <vx_set_sp>:
|
||||
800000c0: fc002573 csrr a0,0xfc0
|
||||
800000c4: 0005006b 0x5006b
|
||||
800000c8: 00002197 auipc gp,0x2
|
||||
800000cc: e2818193 addi gp,gp,-472 # 80001ef0 <__global_pointer>
|
||||
800000d0: 7f000117 auipc sp,0x7f000
|
||||
800000d4: f3010113 addi sp,sp,-208 # ff000000 <__stack_top>
|
||||
800000d8: 40000593 li a1,1024
|
||||
800000dc: cc102673 csrr a2,0xcc1
|
||||
800000e0: 02c585b3 mul a1,a1,a2
|
||||
800000e4: 40b10133 sub sp,sp,a1
|
||||
800000e8: cc3026f3 csrr a3,0xcc3
|
||||
800000ec: 00068663 beqz a3,800000f8 <RETURN>
|
||||
800000f0: 00000513 li a0,0
|
||||
800000f4: 0005006b 0x5006b
|
||||
|
||||
800000f8 <RETURN>:
|
||||
800000f8: 00008067 ret
|
||||
|
||||
800000fc <vx_perf_dump>:
|
||||
800000fc: cc5027f3 csrr a5,0xcc5
|
||||
80000100: 00ff0737 lui a4,0xff0
|
||||
80000104: 00e787b3 add a5,a5,a4
|
||||
80000108: 00879793 slli a5,a5,0x8
|
||||
8000010c: b0002773 csrr a4,mcycle
|
||||
80000110: 00e7a023 sw a4,0(a5)
|
||||
80000114: b0102773 csrr a4,0xb01
|
||||
80000118: 00e7a223 sw a4,4(a5)
|
||||
8000011c: b0202773 csrr a4,minstret
|
||||
80000120: 00e7a423 sw a4,8(a5)
|
||||
80000124: b0302773 csrr a4,mhpmcounter3
|
||||
80000128: 00e7a623 sw a4,12(a5)
|
||||
8000012c: b0402773 csrr a4,mhpmcounter4
|
||||
80000130: 00e7a823 sw a4,16(a5)
|
||||
80000134: b0502773 csrr a4,mhpmcounter5
|
||||
80000138: 00e7aa23 sw a4,20(a5)
|
||||
8000013c: b0602773 csrr a4,mhpmcounter6
|
||||
80000140: 00e7ac23 sw a4,24(a5)
|
||||
80000144: b0702773 csrr a4,mhpmcounter7
|
||||
80000148: 00e7ae23 sw a4,28(a5)
|
||||
8000014c: b0802773 csrr a4,mhpmcounter8
|
||||
80000150: 02e7a023 sw a4,32(a5)
|
||||
80000154: b0902773 csrr a4,mhpmcounter9
|
||||
80000158: 02e7a223 sw a4,36(a5)
|
||||
8000015c: b0a02773 csrr a4,mhpmcounter10
|
||||
80000160: 02e7a423 sw a4,40(a5)
|
||||
80000164: b0b02773 csrr a4,mhpmcounter11
|
||||
80000168: 02e7a623 sw a4,44(a5)
|
||||
8000016c: b0c02773 csrr a4,mhpmcounter12
|
||||
80000170: 02e7a823 sw a4,48(a5)
|
||||
80000174: b0d02773 csrr a4,mhpmcounter13
|
||||
80000178: 02e7aa23 sw a4,52(a5)
|
||||
8000017c: b0e02773 csrr a4,mhpmcounter14
|
||||
80000180: 02e7ac23 sw a4,56(a5)
|
||||
80000184: b0f02773 csrr a4,mhpmcounter15
|
||||
80000188: 02e7ae23 sw a4,60(a5)
|
||||
8000018c: b1002773 csrr a4,mhpmcounter16
|
||||
80000190: 04e7a023 sw a4,64(a5)
|
||||
80000194: b1102773 csrr a4,mhpmcounter17
|
||||
80000198: 04e7a223 sw a4,68(a5)
|
||||
8000019c: b1202773 csrr a4,mhpmcounter18
|
||||
800001a0: 04e7a423 sw a4,72(a5)
|
||||
800001a4: b1302773 csrr a4,mhpmcounter19
|
||||
800001a8: 04e7a623 sw a4,76(a5)
|
||||
800001ac: b1402773 csrr a4,mhpmcounter20
|
||||
800001b0: 04e7a823 sw a4,80(a5)
|
||||
800001b4: b1502773 csrr a4,mhpmcounter21
|
||||
800001b8: 04e7aa23 sw a4,84(a5)
|
||||
800001bc: b1602773 csrr a4,mhpmcounter22
|
||||
800001c0: 04e7ac23 sw a4,88(a5)
|
||||
800001c4: b1702773 csrr a4,mhpmcounter23
|
||||
800001c8: 04e7ae23 sw a4,92(a5)
|
||||
800001cc: b1802773 csrr a4,mhpmcounter24
|
||||
800001d0: 06e7a023 sw a4,96(a5)
|
||||
800001d4: b1902773 csrr a4,mhpmcounter25
|
||||
800001d8: 06e7a223 sw a4,100(a5)
|
||||
800001dc: b1a02773 csrr a4,mhpmcounter26
|
||||
800001e0: 06e7a423 sw a4,104(a5)
|
||||
800001e4: b1b02773 csrr a4,mhpmcounter27
|
||||
800001e8: 06e7a623 sw a4,108(a5)
|
||||
800001ec: b1c02773 csrr a4,mhpmcounter28
|
||||
800001f0: 06e7a823 sw a4,112(a5)
|
||||
800001f4: b1d02773 csrr a4,mhpmcounter29
|
||||
800001f8: 06e7aa23 sw a4,116(a5)
|
||||
800001fc: b1e02773 csrr a4,mhpmcounter30
|
||||
80000200: 06e7ac23 sw a4,120(a5)
|
||||
80000204: b1f02773 csrr a4,mhpmcounter31
|
||||
80000208: 06e7ae23 sw a4,124(a5)
|
||||
8000020c: b8002773 csrr a4,mcycleh
|
||||
80000210: 08e7a023 sw a4,128(a5)
|
||||
80000214: b8102773 csrr a4,0xb81
|
||||
80000218: 08e7a223 sw a4,132(a5)
|
||||
8000021c: b8202773 csrr a4,minstreth
|
||||
80000220: 08e7a423 sw a4,136(a5)
|
||||
80000224: b8302773 csrr a4,mhpmcounter3h
|
||||
80000228: 08e7a623 sw a4,140(a5)
|
||||
8000022c: b8402773 csrr a4,mhpmcounter4h
|
||||
80000230: 08e7a823 sw a4,144(a5)
|
||||
80000234: b8502773 csrr a4,mhpmcounter5h
|
||||
80000238: 08e7aa23 sw a4,148(a5)
|
||||
8000023c: b8602773 csrr a4,mhpmcounter6h
|
||||
80000240: 08e7ac23 sw a4,152(a5)
|
||||
80000244: b8702773 csrr a4,mhpmcounter7h
|
||||
80000248: 08e7ae23 sw a4,156(a5)
|
||||
8000024c: b8802773 csrr a4,mhpmcounter8h
|
||||
80000250: 0ae7a023 sw a4,160(a5)
|
||||
80000254: b8902773 csrr a4,mhpmcounter9h
|
||||
80000258: 0ae7a223 sw a4,164(a5)
|
||||
8000025c: b8a02773 csrr a4,mhpmcounter10h
|
||||
80000260: 0ae7a423 sw a4,168(a5)
|
||||
80000264: b8b02773 csrr a4,mhpmcounter11h
|
||||
80000268: 0ae7a623 sw a4,172(a5)
|
||||
8000026c: b8c02773 csrr a4,mhpmcounter12h
|
||||
80000270: 0ae7a823 sw a4,176(a5)
|
||||
80000274: b8d02773 csrr a4,mhpmcounter13h
|
||||
80000278: 0ae7aa23 sw a4,180(a5)
|
||||
8000027c: b8e02773 csrr a4,mhpmcounter14h
|
||||
80000280: 0ae7ac23 sw a4,184(a5)
|
||||
80000284: b8f02773 csrr a4,mhpmcounter15h
|
||||
80000288: 0ae7ae23 sw a4,188(a5)
|
||||
8000028c: b9002773 csrr a4,mhpmcounter16h
|
||||
80000290: 0ce7a023 sw a4,192(a5)
|
||||
80000294: b9102773 csrr a4,mhpmcounter17h
|
||||
80000298: 0ce7a223 sw a4,196(a5)
|
||||
8000029c: b9202773 csrr a4,mhpmcounter18h
|
||||
800002a0: 0ce7a423 sw a4,200(a5)
|
||||
800002a4: b9302773 csrr a4,mhpmcounter19h
|
||||
800002a8: 0ce7a623 sw a4,204(a5)
|
||||
800002ac: b9402773 csrr a4,mhpmcounter20h
|
||||
800002b0: 0ce7a823 sw a4,208(a5)
|
||||
800002b4: b9502773 csrr a4,mhpmcounter21h
|
||||
800002b8: 0ce7aa23 sw a4,212(a5)
|
||||
800002bc: b9602773 csrr a4,mhpmcounter22h
|
||||
800002c0: 0ce7ac23 sw a4,216(a5)
|
||||
800002c4: b9702773 csrr a4,mhpmcounter23h
|
||||
800002c8: 0ce7ae23 sw a4,220(a5)
|
||||
800002cc: b9802773 csrr a4,mhpmcounter24h
|
||||
800002d0: 0ee7a023 sw a4,224(a5)
|
||||
800002d4: b9902773 csrr a4,mhpmcounter25h
|
||||
800002d8: 0ee7a223 sw a4,228(a5)
|
||||
800002dc: b9a02773 csrr a4,mhpmcounter26h
|
||||
800002e0: 0ee7a423 sw a4,232(a5)
|
||||
800002e4: b9b02773 csrr a4,mhpmcounter27h
|
||||
800002e8: 0ee7a623 sw a4,236(a5)
|
||||
800002ec: b9c02773 csrr a4,mhpmcounter28h
|
||||
800002f0: 0ee7a823 sw a4,240(a5)
|
||||
800002f4: b9d02773 csrr a4,mhpmcounter29h
|
||||
800002f8: 0ee7aa23 sw a4,244(a5)
|
||||
800002fc: b9e02773 csrr a4,mhpmcounter30h
|
||||
80000300: 0ee7ac23 sw a4,248(a5)
|
||||
80000304: b9f02773 csrr a4,mhpmcounter31h
|
||||
80000308: 0ee7ae23 sw a4,252(a5)
|
||||
8000030c: 00008067 ret
|
||||
|
||||
80000310 <atexit>:
|
||||
80000310: 00050593 mv a1,a0
|
||||
80000314: 00000693 li a3,0
|
||||
80000318: 00000613 li a2,0
|
||||
8000031c: 00000513 li a0,0
|
||||
80000320: 20c0006f j 8000052c <__register_exitproc>
|
||||
|
||||
80000324 <exit>:
|
||||
80000324: ff010113 addi sp,sp,-16
|
||||
80000328: 00000593 li a1,0
|
||||
8000032c: 00812423 sw s0,8(sp)
|
||||
80000330: 00112623 sw ra,12(sp)
|
||||
80000334: 00050413 mv s0,a0
|
||||
80000338: 290000ef jal ra,800005c8 <__call_exitprocs>
|
||||
8000033c: 800027b7 lui a5,0x80002
|
||||
80000340: b187a503 lw a0,-1256(a5) # 80001b18 <__stack_top+0x81001b18>
|
||||
80000344: 03c52783 lw a5,60(a0)
|
||||
80000348: 00078463 beqz a5,80000350 <exit+0x2c>
|
||||
8000034c: 000780e7 jalr a5
|
||||
80000350: 00040513 mv a0,s0
|
||||
80000354: d61ff0ef jal ra,800000b4 <_exit>
|
||||
|
||||
80000358 <__libc_fini_array>:
|
||||
80000358: ff010113 addi sp,sp,-16
|
||||
8000035c: 00812423 sw s0,8(sp)
|
||||
80000360: 800017b7 lui a5,0x80001
|
||||
80000364: 80001437 lui s0,0x80001
|
||||
80000368: 6f040413 addi s0,s0,1776 # 800016f0 <__stack_top+0x810016f0>
|
||||
8000036c: 6f078793 addi a5,a5,1776 # 800016f0 <__stack_top+0x810016f0>
|
||||
80000370: 408787b3 sub a5,a5,s0
|
||||
80000374: 00912223 sw s1,4(sp)
|
||||
80000378: 00112623 sw ra,12(sp)
|
||||
8000037c: 4027d493 srai s1,a5,0x2
|
||||
80000380: 02048063 beqz s1,800003a0 <__libc_fini_array+0x48>
|
||||
80000384: ffc78793 addi a5,a5,-4
|
||||
80000388: 00878433 add s0,a5,s0
|
||||
8000038c: 00042783 lw a5,0(s0)
|
||||
80000390: fff48493 addi s1,s1,-1
|
||||
80000394: ffc40413 addi s0,s0,-4
|
||||
80000398: 000780e7 jalr a5
|
||||
8000039c: fe0498e3 bnez s1,8000038c <__libc_fini_array+0x34>
|
||||
800003a0: 00c12083 lw ra,12(sp)
|
||||
800003a4: 00812403 lw s0,8(sp)
|
||||
800003a8: 00412483 lw s1,4(sp)
|
||||
800003ac: 01010113 addi sp,sp,16
|
||||
800003b0: 00008067 ret
|
||||
|
||||
800003b4 <__libc_init_array>:
|
||||
800003b4: ff010113 addi sp,sp,-16
|
||||
800003b8: 00812423 sw s0,8(sp)
|
||||
800003bc: 01212023 sw s2,0(sp)
|
||||
800003c0: 80001437 lui s0,0x80001
|
||||
800003c4: 80001937 lui s2,0x80001
|
||||
800003c8: 6ec40793 addi a5,s0,1772 # 800016ec <__stack_top+0x810016ec>
|
||||
800003cc: 6ec90913 addi s2,s2,1772 # 800016ec <__stack_top+0x810016ec>
|
||||
800003d0: 40f90933 sub s2,s2,a5
|
||||
800003d4: 00112623 sw ra,12(sp)
|
||||
800003d8: 00912223 sw s1,4(sp)
|
||||
800003dc: 40295913 srai s2,s2,0x2
|
||||
800003e0: 02090063 beqz s2,80000400 <__libc_init_array+0x4c>
|
||||
800003e4: 6ec40413 addi s0,s0,1772
|
||||
800003e8: 00000493 li s1,0
|
||||
800003ec: 00042783 lw a5,0(s0)
|
||||
800003f0: 00148493 addi s1,s1,1
|
||||
800003f4: 00440413 addi s0,s0,4
|
||||
800003f8: 000780e7 jalr a5
|
||||
800003fc: fe9918e3 bne s2,s1,800003ec <__libc_init_array+0x38>
|
||||
80000400: 80001437 lui s0,0x80001
|
||||
80000404: 80001937 lui s2,0x80001
|
||||
80000408: 6ec40793 addi a5,s0,1772 # 800016ec <__stack_top+0x810016ec>
|
||||
8000040c: 6f090913 addi s2,s2,1776 # 800016f0 <__stack_top+0x810016f0>
|
||||
80000410: 40f90933 sub s2,s2,a5
|
||||
80000414: 40295913 srai s2,s2,0x2
|
||||
80000418: 02090063 beqz s2,80000438 <__libc_init_array+0x84>
|
||||
8000041c: 6ec40413 addi s0,s0,1772
|
||||
80000420: 00000493 li s1,0
|
||||
80000424: 00042783 lw a5,0(s0)
|
||||
80000428: 00148493 addi s1,s1,1
|
||||
8000042c: 00440413 addi s0,s0,4
|
||||
80000430: 000780e7 jalr a5
|
||||
80000434: fe9918e3 bne s2,s1,80000424 <__libc_init_array+0x70>
|
||||
80000438: 00c12083 lw ra,12(sp)
|
||||
8000043c: 00812403 lw s0,8(sp)
|
||||
80000440: 00412483 lw s1,4(sp)
|
||||
80000444: 00012903 lw s2,0(sp)
|
||||
80000448: 01010113 addi sp,sp,16
|
||||
8000044c: 00008067 ret
|
||||
|
||||
80000450 <memset>:
|
||||
80000450: 00f00313 li t1,15
|
||||
80000454: 00050713 mv a4,a0
|
||||
80000458: 02c37e63 bgeu t1,a2,80000494 <memset+0x44>
|
||||
8000045c: 00f77793 andi a5,a4,15
|
||||
80000460: 0a079063 bnez a5,80000500 <memset+0xb0>
|
||||
80000464: 08059263 bnez a1,800004e8 <memset+0x98>
|
||||
80000468: ff067693 andi a3,a2,-16
|
||||
8000046c: 00f67613 andi a2,a2,15
|
||||
80000470: 00e686b3 add a3,a3,a4
|
||||
80000474: 00b72023 sw a1,0(a4) # ff0000 <__stack_size+0xfefc00>
|
||||
80000478: 00b72223 sw a1,4(a4)
|
||||
8000047c: 00b72423 sw a1,8(a4)
|
||||
80000480: 00b72623 sw a1,12(a4)
|
||||
80000484: 01070713 addi a4,a4,16
|
||||
80000488: fed766e3 bltu a4,a3,80000474 <memset+0x24>
|
||||
8000048c: 00061463 bnez a2,80000494 <memset+0x44>
|
||||
80000490: 00008067 ret
|
||||
80000494: 40c306b3 sub a3,t1,a2
|
||||
80000498: 00269693 slli a3,a3,0x2
|
||||
8000049c: 00000297 auipc t0,0x0
|
||||
800004a0: 005686b3 add a3,a3,t0
|
||||
800004a4: 00c68067 jr 12(a3)
|
||||
800004a8: 00b70723 sb a1,14(a4)
|
||||
800004ac: 00b706a3 sb a1,13(a4)
|
||||
800004b0: 00b70623 sb a1,12(a4)
|
||||
800004b4: 00b705a3 sb a1,11(a4)
|
||||
800004b8: 00b70523 sb a1,10(a4)
|
||||
800004bc: 00b704a3 sb a1,9(a4)
|
||||
800004c0: 00b70423 sb a1,8(a4)
|
||||
800004c4: 00b703a3 sb a1,7(a4)
|
||||
800004c8: 00b70323 sb a1,6(a4)
|
||||
800004cc: 00b702a3 sb a1,5(a4)
|
||||
800004d0: 00b70223 sb a1,4(a4)
|
||||
800004d4: 00b701a3 sb a1,3(a4)
|
||||
800004d8: 00b70123 sb a1,2(a4)
|
||||
800004dc: 00b700a3 sb a1,1(a4)
|
||||
800004e0: 00b70023 sb a1,0(a4)
|
||||
800004e4: 00008067 ret
|
||||
800004e8: 0ff5f593 andi a1,a1,255
|
||||
800004ec: 00859693 slli a3,a1,0x8
|
||||
800004f0: 00d5e5b3 or a1,a1,a3
|
||||
800004f4: 01059693 slli a3,a1,0x10
|
||||
800004f8: 00d5e5b3 or a1,a1,a3
|
||||
800004fc: f6dff06f j 80000468 <memset+0x18>
|
||||
80000500: 00279693 slli a3,a5,0x2
|
||||
80000504: 00000297 auipc t0,0x0
|
||||
80000508: 005686b3 add a3,a3,t0
|
||||
8000050c: 00008293 mv t0,ra
|
||||
80000510: fa0680e7 jalr -96(a3)
|
||||
80000514: 00028093 mv ra,t0
|
||||
80000518: ff078793 addi a5,a5,-16
|
||||
8000051c: 40f70733 sub a4,a4,a5
|
||||
80000520: 00f60633 add a2,a2,a5
|
||||
80000524: f6c378e3 bgeu t1,a2,80000494 <memset+0x44>
|
||||
80000528: f3dff06f j 80000464 <memset+0x14>
|
||||
|
||||
8000052c <__register_exitproc>:
|
||||
8000052c: 800027b7 lui a5,0x80002
|
||||
80000530: b187a703 lw a4,-1256(a5) # 80001b18 <__stack_top+0x81001b18>
|
||||
80000534: 14872783 lw a5,328(a4)
|
||||
80000538: 04078c63 beqz a5,80000590 <__register_exitproc+0x64>
|
||||
8000053c: 0047a703 lw a4,4(a5)
|
||||
80000540: 01f00813 li a6,31
|
||||
80000544: 06e84e63 blt a6,a4,800005c0 <__register_exitproc+0x94>
|
||||
80000548: 00271813 slli a6,a4,0x2
|
||||
8000054c: 02050663 beqz a0,80000578 <__register_exitproc+0x4c>
|
||||
80000550: 01078333 add t1,a5,a6
|
||||
80000554: 08c32423 sw a2,136(t1)
|
||||
80000558: 1887a883 lw a7,392(a5)
|
||||
8000055c: 00100613 li a2,1
|
||||
80000560: 00e61633 sll a2,a2,a4
|
||||
80000564: 00c8e8b3 or a7,a7,a2
|
||||
80000568: 1917a423 sw a7,392(a5)
|
||||
8000056c: 10d32423 sw a3,264(t1)
|
||||
80000570: 00200693 li a3,2
|
||||
80000574: 02d50463 beq a0,a3,8000059c <__register_exitproc+0x70>
|
||||
80000578: 00170713 addi a4,a4,1
|
||||
8000057c: 00e7a223 sw a4,4(a5)
|
||||
80000580: 010787b3 add a5,a5,a6
|
||||
80000584: 00b7a423 sw a1,8(a5)
|
||||
80000588: 00000513 li a0,0
|
||||
8000058c: 00008067 ret
|
||||
80000590: 14c70793 addi a5,a4,332
|
||||
80000594: 14f72423 sw a5,328(a4)
|
||||
80000598: fa5ff06f j 8000053c <__register_exitproc+0x10>
|
||||
8000059c: 18c7a683 lw a3,396(a5)
|
||||
800005a0: 00170713 addi a4,a4,1
|
||||
800005a4: 00e7a223 sw a4,4(a5)
|
||||
800005a8: 00c6e633 or a2,a3,a2
|
||||
800005ac: 18c7a623 sw a2,396(a5)
|
||||
800005b0: 010787b3 add a5,a5,a6
|
||||
800005b4: 00b7a423 sw a1,8(a5)
|
||||
800005b8: 00000513 li a0,0
|
||||
800005bc: 00008067 ret
|
||||
800005c0: fff00513 li a0,-1
|
||||
800005c4: 00008067 ret
|
||||
|
||||
800005c8 <__call_exitprocs>:
|
||||
800005c8: fd010113 addi sp,sp,-48
|
||||
800005cc: 800027b7 lui a5,0x80002
|
||||
800005d0: 01412c23 sw s4,24(sp)
|
||||
800005d4: b187aa03 lw s4,-1256(a5) # 80001b18 <__stack_top+0x81001b18>
|
||||
800005d8: 03212023 sw s2,32(sp)
|
||||
800005dc: 02112623 sw ra,44(sp)
|
||||
800005e0: 148a2903 lw s2,328(s4)
|
||||
800005e4: 02812423 sw s0,40(sp)
|
||||
800005e8: 02912223 sw s1,36(sp)
|
||||
800005ec: 01312e23 sw s3,28(sp)
|
||||
800005f0: 01512a23 sw s5,20(sp)
|
||||
800005f4: 01612823 sw s6,16(sp)
|
||||
800005f8: 01712623 sw s7,12(sp)
|
||||
800005fc: 01812423 sw s8,8(sp)
|
||||
80000600: 04090063 beqz s2,80000640 <__call_exitprocs+0x78>
|
||||
80000604: 00050b13 mv s6,a0
|
||||
80000608: 00058b93 mv s7,a1
|
||||
8000060c: 00100a93 li s5,1
|
||||
80000610: fff00993 li s3,-1
|
||||
80000614: 00492483 lw s1,4(s2)
|
||||
80000618: fff48413 addi s0,s1,-1
|
||||
8000061c: 02044263 bltz s0,80000640 <__call_exitprocs+0x78>
|
||||
80000620: 00249493 slli s1,s1,0x2
|
||||
80000624: 009904b3 add s1,s2,s1
|
||||
80000628: 040b8463 beqz s7,80000670 <__call_exitprocs+0xa8>
|
||||
8000062c: 1044a783 lw a5,260(s1)
|
||||
80000630: 05778063 beq a5,s7,80000670 <__call_exitprocs+0xa8>
|
||||
80000634: fff40413 addi s0,s0,-1
|
||||
80000638: ffc48493 addi s1,s1,-4
|
||||
8000063c: ff3416e3 bne s0,s3,80000628 <__call_exitprocs+0x60>
|
||||
80000640: 02c12083 lw ra,44(sp)
|
||||
80000644: 02812403 lw s0,40(sp)
|
||||
80000648: 02412483 lw s1,36(sp)
|
||||
8000064c: 02012903 lw s2,32(sp)
|
||||
80000650: 01c12983 lw s3,28(sp)
|
||||
80000654: 01812a03 lw s4,24(sp)
|
||||
80000658: 01412a83 lw s5,20(sp)
|
||||
8000065c: 01012b03 lw s6,16(sp)
|
||||
80000660: 00c12b83 lw s7,12(sp)
|
||||
80000664: 00812c03 lw s8,8(sp)
|
||||
80000668: 03010113 addi sp,sp,48
|
||||
8000066c: 00008067 ret
|
||||
80000670: 00492783 lw a5,4(s2)
|
||||
80000674: 0044a683 lw a3,4(s1)
|
||||
80000678: fff78793 addi a5,a5,-1
|
||||
8000067c: 04878e63 beq a5,s0,800006d8 <__call_exitprocs+0x110>
|
||||
80000680: 0004a223 sw zero,4(s1)
|
||||
80000684: fa0688e3 beqz a3,80000634 <__call_exitprocs+0x6c>
|
||||
80000688: 18892783 lw a5,392(s2)
|
||||
8000068c: 008a9733 sll a4,s5,s0
|
||||
80000690: 00492c03 lw s8,4(s2)
|
||||
80000694: 00f777b3 and a5,a4,a5
|
||||
80000698: 02079263 bnez a5,800006bc <__call_exitprocs+0xf4>
|
||||
8000069c: 000680e7 jalr a3
|
||||
800006a0: 00492703 lw a4,4(s2)
|
||||
800006a4: 148a2783 lw a5,328(s4)
|
||||
800006a8: 01871463 bne a4,s8,800006b0 <__call_exitprocs+0xe8>
|
||||
800006ac: f92784e3 beq a5,s2,80000634 <__call_exitprocs+0x6c>
|
||||
800006b0: f80788e3 beqz a5,80000640 <__call_exitprocs+0x78>
|
||||
800006b4: 00078913 mv s2,a5
|
||||
800006b8: f5dff06f j 80000614 <__call_exitprocs+0x4c>
|
||||
800006bc: 18c92783 lw a5,396(s2)
|
||||
800006c0: 0844a583 lw a1,132(s1)
|
||||
800006c4: 00f77733 and a4,a4,a5
|
||||
800006c8: 00071c63 bnez a4,800006e0 <__call_exitprocs+0x118>
|
||||
800006cc: 000b0513 mv a0,s6
|
||||
800006d0: 000680e7 jalr a3
|
||||
800006d4: fcdff06f j 800006a0 <__call_exitprocs+0xd8>
|
||||
800006d8: 00892223 sw s0,4(s2)
|
||||
800006dc: fa9ff06f j 80000684 <__call_exitprocs+0xbc>
|
||||
800006e0: 00058513 mv a0,a1
|
||||
800006e4: 000680e7 jalr a3
|
||||
800006e8: fb9ff06f j 800006a0 <__call_exitprocs+0xd8>
|
||||
|
||||
Disassembly of section .init_array:
|
||||
|
||||
800016ec <__init_array_start>:
|
||||
800016ec: 009c addi a5,sp,64
|
||||
800016ee: 8000 0x8000
|
||||
|
||||
Disassembly of section .data:
|
||||
|
||||
800016f0 <impure_data>:
|
||||
800016f0: 0000 unimp
|
||||
800016f2: 0000 unimp
|
||||
800016f4: 19dc addi a5,sp,244
|
||||
800016f6: 8000 0x8000
|
||||
800016f8: 1a44 addi s1,sp,308
|
||||
800016fa: 8000 0x8000
|
||||
800016fc: 1aac addi a1,sp,376
|
||||
800016fe: 8000 0x8000
|
||||
...
|
||||
80001798: 0001 nop
|
||||
8000179a: 0000 unimp
|
||||
8000179c: 0000 unimp
|
||||
8000179e: 0000 unimp
|
||||
800017a0: 330e fld ft6,224(sp)
|
||||
800017a2: abcd j 80001d94 <__BSS_END__+0x278>
|
||||
800017a4: 1234 addi a3,sp,296
|
||||
800017a6: e66d bnez a2,80001890 <impure_data+0x1a0>
|
||||
800017a8: deec sw a1,124(a3)
|
||||
800017aa: 0005 c.nop 1
|
||||
800017ac: 0000000b 0xb
|
||||
...
|
||||
|
||||
Disassembly of section .sdata:
|
||||
|
||||
80001b18 <_global_impure_ptr>:
|
||||
80001b18: 16f0 addi a2,sp,876
|
||||
80001b1a: 8000 0x8000
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3120 fld fs0,96(a0)
|
||||
c: 2e30 fld fa2,88(a2)
|
||||
e: 2e32 fld ft8,264(sp)
|
||||
10: 0030 addi a2,sp,8
|
||||
|
||||
Disassembly of section .riscv.attributes:
|
||||
|
||||
00000000 <.riscv.attributes>:
|
||||
0: 2941 jal 490 <__stack_size+0x90>
|
||||
2: 0000 unimp
|
||||
4: 7200 flw fs0,32(a2)
|
||||
6: 7369 lui t1,0xffffa
|
||||
8: 01007663 bgeu zero,a6,14 <__stack_usage+0x14>
|
||||
c: 001f 0000 1004 0x10040000001f
|
||||
12: 7205 lui tp,0xfffe1
|
||||
14: 3376 fld ft6,376(sp)
|
||||
16: 6932 flw fs2,12(sp)
|
||||
18: 7032 flw ft0,44(sp)
|
||||
1a: 5f30 lw a2,120(a4)
|
||||
1c: 326d jal fffff9c6 <__stack_top+0xfff9c6>
|
||||
1e: 3070 fld fa2,224(s0)
|
||||
20: 665f 7032 0030 0x307032665f
|
||||
26: 0108 addi a0,sp,128
|
||||
28: 0b0a slli s6,s6,0x2
|
Binary file not shown.
Binary file not shown.
|
@ -1,696 +0,0 @@
|
|||
|
||||
kernel.elf: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .init:
|
||||
|
||||
80000000 <_start>:
|
||||
80000000: 00000597 auipc a1,0x0
|
||||
80000004: 0e458593 addi a1,a1,228 # 800000e4 <vx_set_sp>
|
||||
80000008: fc102573 csrr a0,0xfc1
|
||||
8000000c: 00b5106b 0xb5106b
|
||||
80000010: 0d4000ef jal ra,800000e4 <vx_set_sp>
|
||||
80000014: 00100513 li a0,1
|
||||
80000018: 0005006b 0x5006b
|
||||
8000001c: 00002517 auipc a0,0x2
|
||||
80000020: d3050513 addi a0,a0,-720 # 80001d4c <g_wspawn_args>
|
||||
80000024: 00002617 auipc a2,0x2
|
||||
80000028: da860613 addi a2,a2,-600 # 80001dcc <__BSS_END__>
|
||||
8000002c: 40a60633 sub a2,a2,a0
|
||||
80000030: 00000593 li a1,0
|
||||
80000034: 648000ef jal ra,8000067c <memset>
|
||||
80000038: 00000517 auipc a0,0x0
|
||||
8000003c: 54c50513 addi a0,a0,1356 # 80000584 <__libc_fini_array>
|
||||
80000040: 4fc000ef jal ra,8000053c <atexit>
|
||||
80000044: 59c000ef jal ra,800005e0 <__libc_init_array>
|
||||
80000048: 008000ef jal ra,80000050 <main>
|
||||
8000004c: 5040006f j 80000550 <exit>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
80000050 <main>:
|
||||
80000050: 7ffff7b7 lui a5,0x7ffff
|
||||
80000054: 0007a503 lw a0,0(a5) # 7ffff000 <__stack_size+0x7fffec00>
|
||||
80000058: 800005b7 lui a1,0x80000
|
||||
8000005c: 7ffff637 lui a2,0x7ffff
|
||||
80000060: 08058593 addi a1,a1,128 # 80000080 <__stack_top+0x81000080>
|
||||
80000064: 17c0006f j 800001e0 <vx_spawn_tasks>
|
||||
|
||||
80000068 <register_fini>:
|
||||
80000068: 00000793 li a5,0
|
||||
8000006c: 00078863 beqz a5,8000007c <register_fini+0x14>
|
||||
80000070: 80000537 lui a0,0x80000
|
||||
80000074: 58450513 addi a0,a0,1412 # 80000584 <__stack_top+0x81000584>
|
||||
80000078: 4c40006f j 8000053c <atexit>
|
||||
8000007c: 00008067 ret
|
||||
|
||||
80000080 <kernel_body>:
|
||||
80000080: 0045a683 lw a3,4(a1)
|
||||
80000084: 0085a603 lw a2,8(a1)
|
||||
80000088: 00c5a703 lw a4,12(a1)
|
||||
8000008c: 02d50533 mul a0,a0,a3
|
||||
80000090: 0105a803 lw a6,16(a1)
|
||||
80000094: 04068063 beqz a3,800000d4 <kernel_body+0x54>
|
||||
80000098: 00a686b3 add a3,a3,a0
|
||||
8000009c: 00269693 slli a3,a3,0x2
|
||||
800000a0: 00251513 slli a0,a0,0x2
|
||||
800000a4: 00c507b3 add a5,a0,a2
|
||||
800000a8: 00c686b3 add a3,a3,a2
|
||||
800000ac: 40c80833 sub a6,a6,a2
|
||||
800000b0: 40c70533 sub a0,a4,a2
|
||||
800000b4: 00f50733 add a4,a0,a5
|
||||
800000b8: 0007a583 lw a1,0(a5)
|
||||
800000bc: 00072703 lw a4,0(a4)
|
||||
800000c0: 00f80633 add a2,a6,a5
|
||||
800000c4: 00478793 addi a5,a5,4
|
||||
800000c8: 00b70733 add a4,a4,a1
|
||||
800000cc: 00e62023 sw a4,0(a2) # 7ffff000 <__stack_size+0x7fffec00>
|
||||
800000d0: fef692e3 bne a3,a5,800000b4 <kernel_body+0x34>
|
||||
800000d4: 00008067 ret
|
||||
|
||||
800000d8 <_exit>:
|
||||
800000d8: 250000ef jal ra,80000328 <vx_perf_dump>
|
||||
800000dc: 00000513 li a0,0
|
||||
800000e0: 0005006b 0x5006b
|
||||
|
||||
800000e4 <vx_set_sp>:
|
||||
800000e4: fc002573 csrr a0,0xfc0
|
||||
800000e8: 0005006b 0x5006b
|
||||
800000ec: 00002197 auipc gp,0x2
|
||||
800000f0: 03418193 addi gp,gp,52 # 80002120 <__global_pointer>
|
||||
800000f4: 7f000117 auipc sp,0x7f000
|
||||
800000f8: f0c10113 addi sp,sp,-244 # ff000000 <__stack_top>
|
||||
800000fc: 40000593 li a1,1024
|
||||
80000100: cc102673 csrr a2,0xcc1
|
||||
80000104: 02c585b3 mul a1,a1,a2
|
||||
80000108: 40b10133 sub sp,sp,a1
|
||||
8000010c: cc3026f3 csrr a3,0xcc3
|
||||
80000110: 00068663 beqz a3,8000011c <RETURN>
|
||||
80000114: 00000513 li a0,0
|
||||
80000118: 0005006b 0x5006b
|
||||
|
||||
8000011c <RETURN>:
|
||||
8000011c: 00008067 ret
|
||||
|
||||
80000120 <spawn_tasks_callback>:
|
||||
80000120: fe010113 addi sp,sp,-32
|
||||
80000124: 00112e23 sw ra,28(sp)
|
||||
80000128: 00812c23 sw s0,24(sp)
|
||||
8000012c: 00912a23 sw s1,20(sp)
|
||||
80000130: 01212823 sw s2,16(sp)
|
||||
80000134: 01312623 sw s3,12(sp)
|
||||
80000138: fc0027f3 csrr a5,0xfc0
|
||||
8000013c: 0007806b 0x7806b
|
||||
80000140: cc5027f3 csrr a5,0xcc5
|
||||
80000144: cc3029f3 csrr s3,0xcc3
|
||||
80000148: cc002773 csrr a4,0xcc0
|
||||
8000014c: fc002673 csrr a2,0xfc0
|
||||
80000150: 00279693 slli a3,a5,0x2
|
||||
80000154: 800027b7 lui a5,0x80002
|
||||
80000158: d4c78793 addi a5,a5,-692 # 80001d4c <__stack_top+0x81001d4c>
|
||||
8000015c: 00d787b3 add a5,a5,a3
|
||||
80000160: 0007a483 lw s1,0(a5)
|
||||
80000164: 0104a403 lw s0,16(s1)
|
||||
80000168: 00c4a683 lw a3,12(s1)
|
||||
8000016c: 0089a933 slt s2,s3,s0
|
||||
80000170: 00040793 mv a5,s0
|
||||
80000174: 00d90933 add s2,s2,a3
|
||||
80000178: 03368433 mul s0,a3,s3
|
||||
8000017c: 00f9d463 bge s3,a5,80000184 <spawn_tasks_callback+0x64>
|
||||
80000180: 00098793 mv a5,s3
|
||||
80000184: 00f40433 add s0,s0,a5
|
||||
80000188: 0084a683 lw a3,8(s1)
|
||||
8000018c: 02c40433 mul s0,s0,a2
|
||||
80000190: 02e907b3 mul a5,s2,a4
|
||||
80000194: 00d40433 add s0,s0,a3
|
||||
80000198: 00f40433 add s0,s0,a5
|
||||
8000019c: 00890933 add s2,s2,s0
|
||||
800001a0: 01245e63 bge s0,s2,800001bc <spawn_tasks_callback+0x9c>
|
||||
800001a4: 0004a783 lw a5,0(s1)
|
||||
800001a8: 0044a583 lw a1,4(s1)
|
||||
800001ac: 00040513 mv a0,s0
|
||||
800001b0: 00140413 addi s0,s0,1
|
||||
800001b4: 000780e7 jalr a5
|
||||
800001b8: fe8916e3 bne s2,s0,800001a4 <spawn_tasks_callback+0x84>
|
||||
800001bc: 0019b993 seqz s3,s3
|
||||
800001c0: 0009806b 0x9806b
|
||||
800001c4: 01c12083 lw ra,28(sp)
|
||||
800001c8: 01812403 lw s0,24(sp)
|
||||
800001cc: 01412483 lw s1,20(sp)
|
||||
800001d0: 01012903 lw s2,16(sp)
|
||||
800001d4: 00c12983 lw s3,12(sp)
|
||||
800001d8: 02010113 addi sp,sp,32
|
||||
800001dc: 00008067 ret
|
||||
|
||||
800001e0 <vx_spawn_tasks>:
|
||||
800001e0: fc010113 addi sp,sp,-64
|
||||
800001e4: 02112e23 sw ra,60(sp)
|
||||
800001e8: 02812c23 sw s0,56(sp)
|
||||
800001ec: 02912a23 sw s1,52(sp)
|
||||
800001f0: 03212823 sw s2,48(sp)
|
||||
800001f4: 03312623 sw s3,44(sp)
|
||||
800001f8: fc2026f3 csrr a3,0xfc2
|
||||
800001fc: fc102873 csrr a6,0xfc1
|
||||
80000200: fc002473 csrr s0,0xfc0
|
||||
80000204: cc5027f3 csrr a5,0xcc5
|
||||
80000208: 01f00713 li a4,31
|
||||
8000020c: 0cf74463 blt a4,a5,800002d4 <vx_spawn_tasks+0xf4>
|
||||
80000210: 030408b3 mul a7,s0,a6
|
||||
80000214: 00100713 li a4,1
|
||||
80000218: 00a8d463 bge a7,a0,80000220 <vx_spawn_tasks+0x40>
|
||||
8000021c: 03154733 div a4,a0,a7
|
||||
80000220: 0ce6c863 blt a3,a4,800002f0 <vx_spawn_tasks+0x110>
|
||||
80000224: 0ae7d863 bge a5,a4,800002d4 <vx_spawn_tasks+0xf4>
|
||||
80000228: fff68693 addi a3,a3,-1
|
||||
8000022c: 02e54333 div t1,a0,a4
|
||||
80000230: 00030893 mv a7,t1
|
||||
80000234: 00f69663 bne a3,a5,80000240 <vx_spawn_tasks+0x60>
|
||||
80000238: 02e56533 rem a0,a0,a4
|
||||
8000023c: 006508b3 add a7,a0,t1
|
||||
80000240: 0288c4b3 div s1,a7,s0
|
||||
80000244: 0288e933 rem s2,a7,s0
|
||||
80000248: 0b04ca63 blt s1,a6,800002fc <vx_spawn_tasks+0x11c>
|
||||
8000024c: 00100693 li a3,1
|
||||
80000250: 0304c733 div a4,s1,a6
|
||||
80000254: 00070663 beqz a4,80000260 <vx_spawn_tasks+0x80>
|
||||
80000258: 00070693 mv a3,a4
|
||||
8000025c: 0304e733 rem a4,s1,a6
|
||||
80000260: 800029b7 lui s3,0x80002
|
||||
80000264: d4c98993 addi s3,s3,-692 # 80001d4c <__stack_top+0x81001d4c>
|
||||
80000268: 00e12e23 sw a4,28(sp)
|
||||
8000026c: 00c10713 addi a4,sp,12
|
||||
80000270: 00b12623 sw a1,12(sp)
|
||||
80000274: 00c12823 sw a2,16(sp)
|
||||
80000278: 00d12c23 sw a3,24(sp)
|
||||
8000027c: 02f30333 mul t1,t1,a5
|
||||
80000280: 00279793 slli a5,a5,0x2
|
||||
80000284: 00f987b3 add a5,s3,a5
|
||||
80000288: 00e7a023 sw a4,0(a5)
|
||||
8000028c: 00612a23 sw t1,20(sp)
|
||||
80000290: 06904c63 bgtz s1,80000308 <vx_spawn_tasks+0x128>
|
||||
80000294: 04090063 beqz s2,800002d4 <vx_spawn_tasks+0xf4>
|
||||
80000298: 02848433 mul s0,s1,s0
|
||||
8000029c: 00812a23 sw s0,20(sp)
|
||||
800002a0: 0009006b 0x9006b
|
||||
800002a4: cc5027f3 csrr a5,0xcc5
|
||||
800002a8: cc202573 csrr a0,0xcc2
|
||||
800002ac: 00279793 slli a5,a5,0x2
|
||||
800002b0: 00f989b3 add s3,s3,a5
|
||||
800002b4: 0009a783 lw a5,0(s3)
|
||||
800002b8: 0087a683 lw a3,8(a5)
|
||||
800002bc: 0007a703 lw a4,0(a5)
|
||||
800002c0: 0047a583 lw a1,4(a5)
|
||||
800002c4: 00d50533 add a0,a0,a3
|
||||
800002c8: 000700e7 jalr a4
|
||||
800002cc: 00100793 li a5,1
|
||||
800002d0: 0007806b 0x7806b
|
||||
800002d4: 03c12083 lw ra,60(sp)
|
||||
800002d8: 03812403 lw s0,56(sp)
|
||||
800002dc: 03412483 lw s1,52(sp)
|
||||
800002e0: 03012903 lw s2,48(sp)
|
||||
800002e4: 02c12983 lw s3,44(sp)
|
||||
800002e8: 04010113 addi sp,sp,64
|
||||
800002ec: 00008067 ret
|
||||
800002f0: 00068713 mv a4,a3
|
||||
800002f4: f2e7cae3 blt a5,a4,80000228 <vx_spawn_tasks+0x48>
|
||||
800002f8: fddff06f j 800002d4 <vx_spawn_tasks+0xf4>
|
||||
800002fc: 00000713 li a4,0
|
||||
80000300: 00100693 li a3,1
|
||||
80000304: f5dff06f j 80000260 <vx_spawn_tasks+0x80>
|
||||
80000308: 00048713 mv a4,s1
|
||||
8000030c: 00985463 bge a6,s1,80000314 <vx_spawn_tasks+0x134>
|
||||
80000310: 00080713 mv a4,a6
|
||||
80000314: 800007b7 lui a5,0x80000
|
||||
80000318: 12078793 addi a5,a5,288 # 80000120 <__stack_top+0x81000120>
|
||||
8000031c: 00f7106b 0xf7106b
|
||||
80000320: e01ff0ef jal ra,80000120 <spawn_tasks_callback>
|
||||
80000324: f71ff06f j 80000294 <vx_spawn_tasks+0xb4>
|
||||
|
||||
80000328 <vx_perf_dump>:
|
||||
80000328: cc5027f3 csrr a5,0xcc5
|
||||
8000032c: 00ff0737 lui a4,0xff0
|
||||
80000330: 00e787b3 add a5,a5,a4
|
||||
80000334: 00879793 slli a5,a5,0x8
|
||||
80000338: b0002773 csrr a4,mcycle
|
||||
8000033c: 00e7a023 sw a4,0(a5)
|
||||
80000340: b0102773 csrr a4,0xb01
|
||||
80000344: 00e7a223 sw a4,4(a5)
|
||||
80000348: b0202773 csrr a4,minstret
|
||||
8000034c: 00e7a423 sw a4,8(a5)
|
||||
80000350: b0302773 csrr a4,mhpmcounter3
|
||||
80000354: 00e7a623 sw a4,12(a5)
|
||||
80000358: b0402773 csrr a4,mhpmcounter4
|
||||
8000035c: 00e7a823 sw a4,16(a5)
|
||||
80000360: b0502773 csrr a4,mhpmcounter5
|
||||
80000364: 00e7aa23 sw a4,20(a5)
|
||||
80000368: b0602773 csrr a4,mhpmcounter6
|
||||
8000036c: 00e7ac23 sw a4,24(a5)
|
||||
80000370: b0702773 csrr a4,mhpmcounter7
|
||||
80000374: 00e7ae23 sw a4,28(a5)
|
||||
80000378: b0802773 csrr a4,mhpmcounter8
|
||||
8000037c: 02e7a023 sw a4,32(a5)
|
||||
80000380: b0902773 csrr a4,mhpmcounter9
|
||||
80000384: 02e7a223 sw a4,36(a5)
|
||||
80000388: b0a02773 csrr a4,mhpmcounter10
|
||||
8000038c: 02e7a423 sw a4,40(a5)
|
||||
80000390: b0b02773 csrr a4,mhpmcounter11
|
||||
80000394: 02e7a623 sw a4,44(a5)
|
||||
80000398: b0c02773 csrr a4,mhpmcounter12
|
||||
8000039c: 02e7a823 sw a4,48(a5)
|
||||
800003a0: b0d02773 csrr a4,mhpmcounter13
|
||||
800003a4: 02e7aa23 sw a4,52(a5)
|
||||
800003a8: b0e02773 csrr a4,mhpmcounter14
|
||||
800003ac: 02e7ac23 sw a4,56(a5)
|
||||
800003b0: b0f02773 csrr a4,mhpmcounter15
|
||||
800003b4: 02e7ae23 sw a4,60(a5)
|
||||
800003b8: b1002773 csrr a4,mhpmcounter16
|
||||
800003bc: 04e7a023 sw a4,64(a5)
|
||||
800003c0: b1102773 csrr a4,mhpmcounter17
|
||||
800003c4: 04e7a223 sw a4,68(a5)
|
||||
800003c8: b1202773 csrr a4,mhpmcounter18
|
||||
800003cc: 04e7a423 sw a4,72(a5)
|
||||
800003d0: b1302773 csrr a4,mhpmcounter19
|
||||
800003d4: 04e7a623 sw a4,76(a5)
|
||||
800003d8: b1402773 csrr a4,mhpmcounter20
|
||||
800003dc: 04e7a823 sw a4,80(a5)
|
||||
800003e0: b1502773 csrr a4,mhpmcounter21
|
||||
800003e4: 04e7aa23 sw a4,84(a5)
|
||||
800003e8: b1602773 csrr a4,mhpmcounter22
|
||||
800003ec: 04e7ac23 sw a4,88(a5)
|
||||
800003f0: b1702773 csrr a4,mhpmcounter23
|
||||
800003f4: 04e7ae23 sw a4,92(a5)
|
||||
800003f8: b1802773 csrr a4,mhpmcounter24
|
||||
800003fc: 06e7a023 sw a4,96(a5)
|
||||
80000400: b1902773 csrr a4,mhpmcounter25
|
||||
80000404: 06e7a223 sw a4,100(a5)
|
||||
80000408: b1a02773 csrr a4,mhpmcounter26
|
||||
8000040c: 06e7a423 sw a4,104(a5)
|
||||
80000410: b1b02773 csrr a4,mhpmcounter27
|
||||
80000414: 06e7a623 sw a4,108(a5)
|
||||
80000418: b1c02773 csrr a4,mhpmcounter28
|
||||
8000041c: 06e7a823 sw a4,112(a5)
|
||||
80000420: b1d02773 csrr a4,mhpmcounter29
|
||||
80000424: 06e7aa23 sw a4,116(a5)
|
||||
80000428: b1e02773 csrr a4,mhpmcounter30
|
||||
8000042c: 06e7ac23 sw a4,120(a5)
|
||||
80000430: b1f02773 csrr a4,mhpmcounter31
|
||||
80000434: 06e7ae23 sw a4,124(a5)
|
||||
80000438: b8002773 csrr a4,mcycleh
|
||||
8000043c: 08e7a023 sw a4,128(a5)
|
||||
80000440: b8102773 csrr a4,0xb81
|
||||
80000444: 08e7a223 sw a4,132(a5)
|
||||
80000448: b8202773 csrr a4,minstreth
|
||||
8000044c: 08e7a423 sw a4,136(a5)
|
||||
80000450: b8302773 csrr a4,mhpmcounter3h
|
||||
80000454: 08e7a623 sw a4,140(a5)
|
||||
80000458: b8402773 csrr a4,mhpmcounter4h
|
||||
8000045c: 08e7a823 sw a4,144(a5)
|
||||
80000460: b8502773 csrr a4,mhpmcounter5h
|
||||
80000464: 08e7aa23 sw a4,148(a5)
|
||||
80000468: b8602773 csrr a4,mhpmcounter6h
|
||||
8000046c: 08e7ac23 sw a4,152(a5)
|
||||
80000470: b8702773 csrr a4,mhpmcounter7h
|
||||
80000474: 08e7ae23 sw a4,156(a5)
|
||||
80000478: b8802773 csrr a4,mhpmcounter8h
|
||||
8000047c: 0ae7a023 sw a4,160(a5)
|
||||
80000480: b8902773 csrr a4,mhpmcounter9h
|
||||
80000484: 0ae7a223 sw a4,164(a5)
|
||||
80000488: b8a02773 csrr a4,mhpmcounter10h
|
||||
8000048c: 0ae7a423 sw a4,168(a5)
|
||||
80000490: b8b02773 csrr a4,mhpmcounter11h
|
||||
80000494: 0ae7a623 sw a4,172(a5)
|
||||
80000498: b8c02773 csrr a4,mhpmcounter12h
|
||||
8000049c: 0ae7a823 sw a4,176(a5)
|
||||
800004a0: b8d02773 csrr a4,mhpmcounter13h
|
||||
800004a4: 0ae7aa23 sw a4,180(a5)
|
||||
800004a8: b8e02773 csrr a4,mhpmcounter14h
|
||||
800004ac: 0ae7ac23 sw a4,184(a5)
|
||||
800004b0: b8f02773 csrr a4,mhpmcounter15h
|
||||
800004b4: 0ae7ae23 sw a4,188(a5)
|
||||
800004b8: b9002773 csrr a4,mhpmcounter16h
|
||||
800004bc: 0ce7a023 sw a4,192(a5)
|
||||
800004c0: b9102773 csrr a4,mhpmcounter17h
|
||||
800004c4: 0ce7a223 sw a4,196(a5)
|
||||
800004c8: b9202773 csrr a4,mhpmcounter18h
|
||||
800004cc: 0ce7a423 sw a4,200(a5)
|
||||
800004d0: b9302773 csrr a4,mhpmcounter19h
|
||||
800004d4: 0ce7a623 sw a4,204(a5)
|
||||
800004d8: b9402773 csrr a4,mhpmcounter20h
|
||||
800004dc: 0ce7a823 sw a4,208(a5)
|
||||
800004e0: b9502773 csrr a4,mhpmcounter21h
|
||||
800004e4: 0ce7aa23 sw a4,212(a5)
|
||||
800004e8: b9602773 csrr a4,mhpmcounter22h
|
||||
800004ec: 0ce7ac23 sw a4,216(a5)
|
||||
800004f0: b9702773 csrr a4,mhpmcounter23h
|
||||
800004f4: 0ce7ae23 sw a4,220(a5)
|
||||
800004f8: b9802773 csrr a4,mhpmcounter24h
|
||||
800004fc: 0ee7a023 sw a4,224(a5)
|
||||
80000500: b9902773 csrr a4,mhpmcounter25h
|
||||
80000504: 0ee7a223 sw a4,228(a5)
|
||||
80000508: b9a02773 csrr a4,mhpmcounter26h
|
||||
8000050c: 0ee7a423 sw a4,232(a5)
|
||||
80000510: b9b02773 csrr a4,mhpmcounter27h
|
||||
80000514: 0ee7a623 sw a4,236(a5)
|
||||
80000518: b9c02773 csrr a4,mhpmcounter28h
|
||||
8000051c: 0ee7a823 sw a4,240(a5)
|
||||
80000520: b9d02773 csrr a4,mhpmcounter29h
|
||||
80000524: 0ee7aa23 sw a4,244(a5)
|
||||
80000528: b9e02773 csrr a4,mhpmcounter30h
|
||||
8000052c: 0ee7ac23 sw a4,248(a5)
|
||||
80000530: b9f02773 csrr a4,mhpmcounter31h
|
||||
80000534: 0ee7ae23 sw a4,252(a5)
|
||||
80000538: 00008067 ret
|
||||
|
||||
8000053c <atexit>:
|
||||
8000053c: 00050593 mv a1,a0
|
||||
80000540: 00000693 li a3,0
|
||||
80000544: 00000613 li a2,0
|
||||
80000548: 00000513 li a0,0
|
||||
8000054c: 20c0006f j 80000758 <__register_exitproc>
|
||||
|
||||
80000550 <exit>:
|
||||
80000550: ff010113 addi sp,sp,-16
|
||||
80000554: 00000593 li a1,0
|
||||
80000558: 00812423 sw s0,8(sp)
|
||||
8000055c: 00112623 sw ra,12(sp)
|
||||
80000560: 00050413 mv s0,a0
|
||||
80000564: 290000ef jal ra,800007f4 <__call_exitprocs>
|
||||
80000568: 800027b7 lui a5,0x80002
|
||||
8000056c: d487a503 lw a0,-696(a5) # 80001d48 <__stack_top+0x81001d48>
|
||||
80000570: 03c52783 lw a5,60(a0)
|
||||
80000574: 00078463 beqz a5,8000057c <exit+0x2c>
|
||||
80000578: 000780e7 jalr a5
|
||||
8000057c: 00040513 mv a0,s0
|
||||
80000580: b59ff0ef jal ra,800000d8 <_exit>
|
||||
|
||||
80000584 <__libc_fini_array>:
|
||||
80000584: ff010113 addi sp,sp,-16
|
||||
80000588: 00812423 sw s0,8(sp)
|
||||
8000058c: 800027b7 lui a5,0x80002
|
||||
80000590: 80002437 lui s0,0x80002
|
||||
80000594: 91c40413 addi s0,s0,-1764 # 8000191c <__stack_top+0x8100191c>
|
||||
80000598: 91c78793 addi a5,a5,-1764 # 8000191c <__stack_top+0x8100191c>
|
||||
8000059c: 408787b3 sub a5,a5,s0
|
||||
800005a0: 00912223 sw s1,4(sp)
|
||||
800005a4: 00112623 sw ra,12(sp)
|
||||
800005a8: 4027d493 srai s1,a5,0x2
|
||||
800005ac: 02048063 beqz s1,800005cc <__libc_fini_array+0x48>
|
||||
800005b0: ffc78793 addi a5,a5,-4
|
||||
800005b4: 00878433 add s0,a5,s0
|
||||
800005b8: 00042783 lw a5,0(s0)
|
||||
800005bc: fff48493 addi s1,s1,-1
|
||||
800005c0: ffc40413 addi s0,s0,-4
|
||||
800005c4: 000780e7 jalr a5
|
||||
800005c8: fe0498e3 bnez s1,800005b8 <__libc_fini_array+0x34>
|
||||
800005cc: 00c12083 lw ra,12(sp)
|
||||
800005d0: 00812403 lw s0,8(sp)
|
||||
800005d4: 00412483 lw s1,4(sp)
|
||||
800005d8: 01010113 addi sp,sp,16
|
||||
800005dc: 00008067 ret
|
||||
|
||||
800005e0 <__libc_init_array>:
|
||||
800005e0: ff010113 addi sp,sp,-16
|
||||
800005e4: 00812423 sw s0,8(sp)
|
||||
800005e8: 01212023 sw s2,0(sp)
|
||||
800005ec: 80002437 lui s0,0x80002
|
||||
800005f0: 80002937 lui s2,0x80002
|
||||
800005f4: 91840793 addi a5,s0,-1768 # 80001918 <__stack_top+0x81001918>
|
||||
800005f8: 91890913 addi s2,s2,-1768 # 80001918 <__stack_top+0x81001918>
|
||||
800005fc: 40f90933 sub s2,s2,a5
|
||||
80000600: 00112623 sw ra,12(sp)
|
||||
80000604: 00912223 sw s1,4(sp)
|
||||
80000608: 40295913 srai s2,s2,0x2
|
||||
8000060c: 02090063 beqz s2,8000062c <__libc_init_array+0x4c>
|
||||
80000610: 91840413 addi s0,s0,-1768
|
||||
80000614: 00000493 li s1,0
|
||||
80000618: 00042783 lw a5,0(s0)
|
||||
8000061c: 00148493 addi s1,s1,1
|
||||
80000620: 00440413 addi s0,s0,4
|
||||
80000624: 000780e7 jalr a5
|
||||
80000628: fe9918e3 bne s2,s1,80000618 <__libc_init_array+0x38>
|
||||
8000062c: 80002437 lui s0,0x80002
|
||||
80000630: 80002937 lui s2,0x80002
|
||||
80000634: 91840793 addi a5,s0,-1768 # 80001918 <__stack_top+0x81001918>
|
||||
80000638: 91c90913 addi s2,s2,-1764 # 8000191c <__stack_top+0x8100191c>
|
||||
8000063c: 40f90933 sub s2,s2,a5
|
||||
80000640: 40295913 srai s2,s2,0x2
|
||||
80000644: 02090063 beqz s2,80000664 <__libc_init_array+0x84>
|
||||
80000648: 91840413 addi s0,s0,-1768
|
||||
8000064c: 00000493 li s1,0
|
||||
80000650: 00042783 lw a5,0(s0)
|
||||
80000654: 00148493 addi s1,s1,1
|
||||
80000658: 00440413 addi s0,s0,4
|
||||
8000065c: 000780e7 jalr a5
|
||||
80000660: fe9918e3 bne s2,s1,80000650 <__libc_init_array+0x70>
|
||||
80000664: 00c12083 lw ra,12(sp)
|
||||
80000668: 00812403 lw s0,8(sp)
|
||||
8000066c: 00412483 lw s1,4(sp)
|
||||
80000670: 00012903 lw s2,0(sp)
|
||||
80000674: 01010113 addi sp,sp,16
|
||||
80000678: 00008067 ret
|
||||
|
||||
8000067c <memset>:
|
||||
8000067c: 00f00313 li t1,15
|
||||
80000680: 00050713 mv a4,a0
|
||||
80000684: 02c37e63 bgeu t1,a2,800006c0 <memset+0x44>
|
||||
80000688: 00f77793 andi a5,a4,15
|
||||
8000068c: 0a079063 bnez a5,8000072c <memset+0xb0>
|
||||
80000690: 08059263 bnez a1,80000714 <memset+0x98>
|
||||
80000694: ff067693 andi a3,a2,-16
|
||||
80000698: 00f67613 andi a2,a2,15
|
||||
8000069c: 00e686b3 add a3,a3,a4
|
||||
800006a0: 00b72023 sw a1,0(a4) # ff0000 <__stack_size+0xfefc00>
|
||||
800006a4: 00b72223 sw a1,4(a4)
|
||||
800006a8: 00b72423 sw a1,8(a4)
|
||||
800006ac: 00b72623 sw a1,12(a4)
|
||||
800006b0: 01070713 addi a4,a4,16
|
||||
800006b4: fed766e3 bltu a4,a3,800006a0 <memset+0x24>
|
||||
800006b8: 00061463 bnez a2,800006c0 <memset+0x44>
|
||||
800006bc: 00008067 ret
|
||||
800006c0: 40c306b3 sub a3,t1,a2
|
||||
800006c4: 00269693 slli a3,a3,0x2
|
||||
800006c8: 00000297 auipc t0,0x0
|
||||
800006cc: 005686b3 add a3,a3,t0
|
||||
800006d0: 00c68067 jr 12(a3)
|
||||
800006d4: 00b70723 sb a1,14(a4)
|
||||
800006d8: 00b706a3 sb a1,13(a4)
|
||||
800006dc: 00b70623 sb a1,12(a4)
|
||||
800006e0: 00b705a3 sb a1,11(a4)
|
||||
800006e4: 00b70523 sb a1,10(a4)
|
||||
800006e8: 00b704a3 sb a1,9(a4)
|
||||
800006ec: 00b70423 sb a1,8(a4)
|
||||
800006f0: 00b703a3 sb a1,7(a4)
|
||||
800006f4: 00b70323 sb a1,6(a4)
|
||||
800006f8: 00b702a3 sb a1,5(a4)
|
||||
800006fc: 00b70223 sb a1,4(a4)
|
||||
80000700: 00b701a3 sb a1,3(a4)
|
||||
80000704: 00b70123 sb a1,2(a4)
|
||||
80000708: 00b700a3 sb a1,1(a4)
|
||||
8000070c: 00b70023 sb a1,0(a4)
|
||||
80000710: 00008067 ret
|
||||
80000714: 0ff5f593 andi a1,a1,255
|
||||
80000718: 00859693 slli a3,a1,0x8
|
||||
8000071c: 00d5e5b3 or a1,a1,a3
|
||||
80000720: 01059693 slli a3,a1,0x10
|
||||
80000724: 00d5e5b3 or a1,a1,a3
|
||||
80000728: f6dff06f j 80000694 <memset+0x18>
|
||||
8000072c: 00279693 slli a3,a5,0x2
|
||||
80000730: 00000297 auipc t0,0x0
|
||||
80000734: 005686b3 add a3,a3,t0
|
||||
80000738: 00008293 mv t0,ra
|
||||
8000073c: fa0680e7 jalr -96(a3)
|
||||
80000740: 00028093 mv ra,t0
|
||||
80000744: ff078793 addi a5,a5,-16
|
||||
80000748: 40f70733 sub a4,a4,a5
|
||||
8000074c: 00f60633 add a2,a2,a5
|
||||
80000750: f6c378e3 bgeu t1,a2,800006c0 <memset+0x44>
|
||||
80000754: f3dff06f j 80000690 <memset+0x14>
|
||||
|
||||
80000758 <__register_exitproc>:
|
||||
80000758: 800027b7 lui a5,0x80002
|
||||
8000075c: d487a703 lw a4,-696(a5) # 80001d48 <__stack_top+0x81001d48>
|
||||
80000760: 14872783 lw a5,328(a4)
|
||||
80000764: 04078c63 beqz a5,800007bc <__register_exitproc+0x64>
|
||||
80000768: 0047a703 lw a4,4(a5)
|
||||
8000076c: 01f00813 li a6,31
|
||||
80000770: 06e84e63 blt a6,a4,800007ec <__register_exitproc+0x94>
|
||||
80000774: 00271813 slli a6,a4,0x2
|
||||
80000778: 02050663 beqz a0,800007a4 <__register_exitproc+0x4c>
|
||||
8000077c: 01078333 add t1,a5,a6
|
||||
80000780: 08c32423 sw a2,136(t1)
|
||||
80000784: 1887a883 lw a7,392(a5)
|
||||
80000788: 00100613 li a2,1
|
||||
8000078c: 00e61633 sll a2,a2,a4
|
||||
80000790: 00c8e8b3 or a7,a7,a2
|
||||
80000794: 1917a423 sw a7,392(a5)
|
||||
80000798: 10d32423 sw a3,264(t1)
|
||||
8000079c: 00200693 li a3,2
|
||||
800007a0: 02d50463 beq a0,a3,800007c8 <__register_exitproc+0x70>
|
||||
800007a4: 00170713 addi a4,a4,1
|
||||
800007a8: 00e7a223 sw a4,4(a5)
|
||||
800007ac: 010787b3 add a5,a5,a6
|
||||
800007b0: 00b7a423 sw a1,8(a5)
|
||||
800007b4: 00000513 li a0,0
|
||||
800007b8: 00008067 ret
|
||||
800007bc: 14c70793 addi a5,a4,332
|
||||
800007c0: 14f72423 sw a5,328(a4)
|
||||
800007c4: fa5ff06f j 80000768 <__register_exitproc+0x10>
|
||||
800007c8: 18c7a683 lw a3,396(a5)
|
||||
800007cc: 00170713 addi a4,a4,1
|
||||
800007d0: 00e7a223 sw a4,4(a5)
|
||||
800007d4: 00c6e633 or a2,a3,a2
|
||||
800007d8: 18c7a623 sw a2,396(a5)
|
||||
800007dc: 010787b3 add a5,a5,a6
|
||||
800007e0: 00b7a423 sw a1,8(a5)
|
||||
800007e4: 00000513 li a0,0
|
||||
800007e8: 00008067 ret
|
||||
800007ec: fff00513 li a0,-1
|
||||
800007f0: 00008067 ret
|
||||
|
||||
800007f4 <__call_exitprocs>:
|
||||
800007f4: fd010113 addi sp,sp,-48
|
||||
800007f8: 800027b7 lui a5,0x80002
|
||||
800007fc: 01412c23 sw s4,24(sp)
|
||||
80000800: d487aa03 lw s4,-696(a5) # 80001d48 <__stack_top+0x81001d48>
|
||||
80000804: 03212023 sw s2,32(sp)
|
||||
80000808: 02112623 sw ra,44(sp)
|
||||
8000080c: 148a2903 lw s2,328(s4)
|
||||
80000810: 02812423 sw s0,40(sp)
|
||||
80000814: 02912223 sw s1,36(sp)
|
||||
80000818: 01312e23 sw s3,28(sp)
|
||||
8000081c: 01512a23 sw s5,20(sp)
|
||||
80000820: 01612823 sw s6,16(sp)
|
||||
80000824: 01712623 sw s7,12(sp)
|
||||
80000828: 01812423 sw s8,8(sp)
|
||||
8000082c: 04090063 beqz s2,8000086c <__call_exitprocs+0x78>
|
||||
80000830: 00050b13 mv s6,a0
|
||||
80000834: 00058b93 mv s7,a1
|
||||
80000838: 00100a93 li s5,1
|
||||
8000083c: fff00993 li s3,-1
|
||||
80000840: 00492483 lw s1,4(s2)
|
||||
80000844: fff48413 addi s0,s1,-1
|
||||
80000848: 02044263 bltz s0,8000086c <__call_exitprocs+0x78>
|
||||
8000084c: 00249493 slli s1,s1,0x2
|
||||
80000850: 009904b3 add s1,s2,s1
|
||||
80000854: 040b8463 beqz s7,8000089c <__call_exitprocs+0xa8>
|
||||
80000858: 1044a783 lw a5,260(s1)
|
||||
8000085c: 05778063 beq a5,s7,8000089c <__call_exitprocs+0xa8>
|
||||
80000860: fff40413 addi s0,s0,-1
|
||||
80000864: ffc48493 addi s1,s1,-4
|
||||
80000868: ff3416e3 bne s0,s3,80000854 <__call_exitprocs+0x60>
|
||||
8000086c: 02c12083 lw ra,44(sp)
|
||||
80000870: 02812403 lw s0,40(sp)
|
||||
80000874: 02412483 lw s1,36(sp)
|
||||
80000878: 02012903 lw s2,32(sp)
|
||||
8000087c: 01c12983 lw s3,28(sp)
|
||||
80000880: 01812a03 lw s4,24(sp)
|
||||
80000884: 01412a83 lw s5,20(sp)
|
||||
80000888: 01012b03 lw s6,16(sp)
|
||||
8000088c: 00c12b83 lw s7,12(sp)
|
||||
80000890: 00812c03 lw s8,8(sp)
|
||||
80000894: 03010113 addi sp,sp,48
|
||||
80000898: 00008067 ret
|
||||
8000089c: 00492783 lw a5,4(s2)
|
||||
800008a0: 0044a683 lw a3,4(s1)
|
||||
800008a4: fff78793 addi a5,a5,-1
|
||||
800008a8: 04878e63 beq a5,s0,80000904 <__call_exitprocs+0x110>
|
||||
800008ac: 0004a223 sw zero,4(s1)
|
||||
800008b0: fa0688e3 beqz a3,80000860 <__call_exitprocs+0x6c>
|
||||
800008b4: 18892783 lw a5,392(s2)
|
||||
800008b8: 008a9733 sll a4,s5,s0
|
||||
800008bc: 00492c03 lw s8,4(s2)
|
||||
800008c0: 00f777b3 and a5,a4,a5
|
||||
800008c4: 02079263 bnez a5,800008e8 <__call_exitprocs+0xf4>
|
||||
800008c8: 000680e7 jalr a3
|
||||
800008cc: 00492703 lw a4,4(s2)
|
||||
800008d0: 148a2783 lw a5,328(s4)
|
||||
800008d4: 01871463 bne a4,s8,800008dc <__call_exitprocs+0xe8>
|
||||
800008d8: f92784e3 beq a5,s2,80000860 <__call_exitprocs+0x6c>
|
||||
800008dc: f80788e3 beqz a5,8000086c <__call_exitprocs+0x78>
|
||||
800008e0: 00078913 mv s2,a5
|
||||
800008e4: f5dff06f j 80000840 <__call_exitprocs+0x4c>
|
||||
800008e8: 18c92783 lw a5,396(s2)
|
||||
800008ec: 0844a583 lw a1,132(s1)
|
||||
800008f0: 00f77733 and a4,a4,a5
|
||||
800008f4: 00071c63 bnez a4,8000090c <__call_exitprocs+0x118>
|
||||
800008f8: 000b0513 mv a0,s6
|
||||
800008fc: 000680e7 jalr a3
|
||||
80000900: fcdff06f j 800008cc <__call_exitprocs+0xd8>
|
||||
80000904: 00892223 sw s0,4(s2)
|
||||
80000908: fa9ff06f j 800008b0 <__call_exitprocs+0xbc>
|
||||
8000090c: 00058513 mv a0,a1
|
||||
80000910: 000680e7 jalr a3
|
||||
80000914: fb9ff06f j 800008cc <__call_exitprocs+0xd8>
|
||||
|
||||
Disassembly of section .init_array:
|
||||
|
||||
80001918 <__init_array_start>:
|
||||
80001918: 0068 addi a0,sp,12
|
||||
8000191a: 8000 0x8000
|
||||
|
||||
Disassembly of section .data:
|
||||
|
||||
80001920 <impure_data>:
|
||||
80001920: 0000 unimp
|
||||
80001922: 0000 unimp
|
||||
80001924: 1c0c addi a1,sp,560
|
||||
80001926: 8000 0x8000
|
||||
80001928: 1c74 addi a3,sp,572
|
||||
8000192a: 8000 0x8000
|
||||
8000192c: 1cdc addi a5,sp,628
|
||||
8000192e: 8000 0x8000
|
||||
...
|
||||
800019c8: 0001 nop
|
||||
800019ca: 0000 unimp
|
||||
800019cc: 0000 unimp
|
||||
800019ce: 0000 unimp
|
||||
800019d0: 330e fld ft6,224(sp)
|
||||
800019d2: abcd j 80001fc4 <__BSS_END__+0x1f8>
|
||||
800019d4: 1234 addi a3,sp,296
|
||||
800019d6: e66d bnez a2,80001ac0 <impure_data+0x1a0>
|
||||
800019d8: deec sw a1,124(a3)
|
||||
800019da: 0005 c.nop 1
|
||||
800019dc: 0000000b 0xb
|
||||
...
|
||||
|
||||
Disassembly of section .sdata:
|
||||
|
||||
80001d48 <_global_impure_ptr>:
|
||||
80001d48: 1920 addi s0,sp,184
|
||||
80001d4a: 8000 0x8000
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
80001d4c <g_wspawn_args>:
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3120 fld fs0,96(a0)
|
||||
c: 2e30 fld fa2,88(a2)
|
||||
e: 2e32 fld ft8,264(sp)
|
||||
10: 0030 addi a2,sp,8
|
||||
|
||||
Disassembly of section .riscv.attributes:
|
||||
|
||||
00000000 <.riscv.attributes>:
|
||||
0: 2941 jal 490 <__stack_size+0x90>
|
||||
2: 0000 unimp
|
||||
4: 7200 flw fs0,32(a2)
|
||||
6: 7369 lui t1,0xffffa
|
||||
8: 01007663 bgeu zero,a6,14 <__stack_usage+0x14>
|
||||
c: 001f 0000 1004 0x10040000001f
|
||||
12: 7205 lui tp,0xfffe1
|
||||
14: 3376 fld ft6,376(sp)
|
||||
16: 6932 flw fs2,12(sp)
|
||||
18: 7032 flw ft0,44(sp)
|
||||
1a: 5f30 lw a2,120(a4)
|
||||
1c: 326d jal fffff9c6 <__stack_top+0xfff9c6>
|
||||
1e: 3070 fld fa2,224(s0)
|
||||
20: 665f 7032 0030 0x307032665f
|
||||
26: 0108 addi a0,sp,128
|
||||
28: 0b0a slli s6,s6,0x2
|
Binary file not shown.
Binary file not shown.
|
@ -1,719 +0,0 @@
|
|||
|
||||
kernel.elf: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .init:
|
||||
|
||||
80000000 <_start>:
|
||||
80000000: 00000597 auipc a1,0x0
|
||||
80000004: 14458593 addi a1,a1,324 # 80000144 <vx_set_sp>
|
||||
80000008: fc102573 csrr a0,0xfc1
|
||||
8000000c: 00b5106b 0xb5106b
|
||||
80000010: 134000ef jal ra,80000144 <vx_set_sp>
|
||||
80000014: 00100513 li a0,1
|
||||
80000018: 0005006b 0x5006b
|
||||
8000001c: 00002517 auipc a0,0x2
|
||||
80000020: d9050513 addi a0,a0,-624 # 80001dac <g_wspawn_args>
|
||||
80000024: 00002617 auipc a2,0x2
|
||||
80000028: e0860613 addi a2,a2,-504 # 80001e2c <__BSS_END__>
|
||||
8000002c: 40a60633 sub a2,a2,a0
|
||||
80000030: 00000593 li a1,0
|
||||
80000034: 6a8000ef jal ra,800006dc <memset>
|
||||
80000038: 00000517 auipc a0,0x0
|
||||
8000003c: 5ac50513 addi a0,a0,1452 # 800005e4 <__libc_fini_array>
|
||||
80000040: 55c000ef jal ra,8000059c <atexit>
|
||||
80000044: 5fc000ef jal ra,80000640 <__libc_init_array>
|
||||
80000048: 008000ef jal ra,80000050 <main>
|
||||
8000004c: 5640006f j 800005b0 <exit>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
80000050 <main>:
|
||||
80000050: 7ffff7b7 lui a5,0x7ffff
|
||||
80000054: 0007a503 lw a0,0(a5) # 7ffff000 <__stack_size+0x7fffec00>
|
||||
80000058: 800005b7 lui a1,0x80000
|
||||
8000005c: 7ffff637 lui a2,0x7ffff
|
||||
80000060: 08058593 addi a1,a1,128 # 80000080 <__stack_top+0x81000080>
|
||||
80000064: 1dc0006f j 80000240 <vx_spawn_tasks>
|
||||
|
||||
80000068 <register_fini>:
|
||||
80000068: 00000793 li a5,0
|
||||
8000006c: 00078863 beqz a5,8000007c <register_fini+0x14>
|
||||
80000070: 80000537 lui a0,0x80000
|
||||
80000074: 5e450513 addi a0,a0,1508 # 800005e4 <__stack_top+0x810005e4>
|
||||
80000078: 5240006f j 8000059c <atexit>
|
||||
8000007c: 00008067 ret
|
||||
|
||||
80000080 <kernel_body>:
|
||||
80000080: 0045a683 lw a3,4(a1)
|
||||
80000084: 80000737 lui a4,0x80000
|
||||
80000088: 00251813 slli a6,a0,0x2
|
||||
8000008c: 00170793 addi a5,a4,1 # 80000001 <__stack_top+0x81000001>
|
||||
80000090: 01068633 add a2,a3,a6
|
||||
80000094: 00f507b3 add a5,a0,a5
|
||||
80000098: 0085a683 lw a3,8(a1)
|
||||
8000009c: 0017b793 seqz a5,a5
|
||||
800000a0: 00062583 lw a1,0(a2) # 7ffff000 <__stack_size+0x7fffec00>
|
||||
800000a4: 0007a06b 0x7a06b
|
||||
800000a8: fff74713 not a4,a4
|
||||
800000ac: 00000613 li a2,0
|
||||
800000b0: 00e50463 beq a0,a4,800000b8 <kernel_body+0x38>
|
||||
800000b4: 00258613 addi a2,a1,2
|
||||
800000b8: 0000306b 0x306b
|
||||
800000bc: 00252713 slti a4,a0,2
|
||||
800000c0: 00174713 xori a4,a4,1
|
||||
800000c4: 0007206b 0x7206b
|
||||
800000c8: 00100793 li a5,1
|
||||
800000cc: 04a7d863 bge a5,a0,8000011c <kernel_body+0x9c>
|
||||
800000d0: 00352793 slti a5,a0,3
|
||||
800000d4: 0017c793 xori a5,a5,1
|
||||
800000d8: 0007a06b 0x7a06b
|
||||
800000dc: ffe50793 addi a5,a0,-2
|
||||
800000e0: 00f037b3 snez a5,a5
|
||||
800000e4: 00c787b3 add a5,a5,a2
|
||||
800000e8: 00578793 addi a5,a5,5
|
||||
800000ec: 0000306b 0x306b
|
||||
800000f0: 0000306b 0x306b
|
||||
800000f4: fff54713 not a4,a0
|
||||
800000f8: 01f75713 srli a4,a4,0x1f
|
||||
800000fc: 0007206b 0x7206b
|
||||
80000100: 00000713 li a4,0
|
||||
80000104: 00054463 bltz a0,8000010c <kernel_body+0x8c>
|
||||
80000108: 00778713 addi a4,a5,7
|
||||
8000010c: 0000306b 0x306b
|
||||
80000110: 010687b3 add a5,a3,a6
|
||||
80000114: 00e7a023 sw a4,0(a5)
|
||||
80000118: 00008067 ret
|
||||
8000011c: fff50793 addi a5,a0,-1
|
||||
80000120: 0017b793 seqz a5,a5
|
||||
80000124: 0007a06b 0x7a06b
|
||||
80000128: 00c787b3 add a5,a5,a2
|
||||
8000012c: 00378793 addi a5,a5,3
|
||||
80000130: 0000306b 0x306b
|
||||
80000134: fbdff06f j 800000f0 <kernel_body+0x70>
|
||||
|
||||
80000138 <_exit>:
|
||||
80000138: 250000ef jal ra,80000388 <vx_perf_dump>
|
||||
8000013c: 00000513 li a0,0
|
||||
80000140: 0005006b 0x5006b
|
||||
|
||||
80000144 <vx_set_sp>:
|
||||
80000144: fc002573 csrr a0,0xfc0
|
||||
80000148: 0005006b 0x5006b
|
||||
8000014c: 00002197 auipc gp,0x2
|
||||
80000150: 03418193 addi gp,gp,52 # 80002180 <__global_pointer>
|
||||
80000154: 7f000117 auipc sp,0x7f000
|
||||
80000158: eac10113 addi sp,sp,-340 # ff000000 <__stack_top>
|
||||
8000015c: 40000593 li a1,1024
|
||||
80000160: cc102673 csrr a2,0xcc1
|
||||
80000164: 02c585b3 mul a1,a1,a2
|
||||
80000168: 40b10133 sub sp,sp,a1
|
||||
8000016c: cc3026f3 csrr a3,0xcc3
|
||||
80000170: 00068663 beqz a3,8000017c <RETURN>
|
||||
80000174: 00000513 li a0,0
|
||||
80000178: 0005006b 0x5006b
|
||||
|
||||
8000017c <RETURN>:
|
||||
8000017c: 00008067 ret
|
||||
|
||||
80000180 <spawn_tasks_callback>:
|
||||
80000180: fe010113 addi sp,sp,-32
|
||||
80000184: 00112e23 sw ra,28(sp)
|
||||
80000188: 00812c23 sw s0,24(sp)
|
||||
8000018c: 00912a23 sw s1,20(sp)
|
||||
80000190: 01212823 sw s2,16(sp)
|
||||
80000194: 01312623 sw s3,12(sp)
|
||||
80000198: fc0027f3 csrr a5,0xfc0
|
||||
8000019c: 0007806b 0x7806b
|
||||
800001a0: cc5026f3 csrr a3,0xcc5
|
||||
800001a4: cc3029f3 csrr s3,0xcc3
|
||||
800001a8: cc002773 csrr a4,0xcc0
|
||||
800001ac: fc002673 csrr a2,0xfc0
|
||||
800001b0: 800027b7 lui a5,0x80002
|
||||
800001b4: 00269693 slli a3,a3,0x2
|
||||
800001b8: dac78793 addi a5,a5,-596 # 80001dac <__stack_top+0x81001dac>
|
||||
800001bc: 00d787b3 add a5,a5,a3
|
||||
800001c0: 0007a483 lw s1,0(a5)
|
||||
800001c4: 0104a403 lw s0,16(s1)
|
||||
800001c8: 00c4a683 lw a3,12(s1)
|
||||
800001cc: 0089a933 slt s2,s3,s0
|
||||
800001d0: 00040793 mv a5,s0
|
||||
800001d4: 00d90933 add s2,s2,a3
|
||||
800001d8: 03368433 mul s0,a3,s3
|
||||
800001dc: 00f9d463 bge s3,a5,800001e4 <spawn_tasks_callback+0x64>
|
||||
800001e0: 00098793 mv a5,s3
|
||||
800001e4: 00f40433 add s0,s0,a5
|
||||
800001e8: 0084a683 lw a3,8(s1)
|
||||
800001ec: 02c40433 mul s0,s0,a2
|
||||
800001f0: 02e907b3 mul a5,s2,a4
|
||||
800001f4: 00d40433 add s0,s0,a3
|
||||
800001f8: 00f40433 add s0,s0,a5
|
||||
800001fc: 00890933 add s2,s2,s0
|
||||
80000200: 01245e63 bge s0,s2,8000021c <spawn_tasks_callback+0x9c>
|
||||
80000204: 0004a783 lw a5,0(s1)
|
||||
80000208: 0044a583 lw a1,4(s1)
|
||||
8000020c: 00040513 mv a0,s0
|
||||
80000210: 00140413 addi s0,s0,1
|
||||
80000214: 000780e7 jalr a5
|
||||
80000218: fe8916e3 bne s2,s0,80000204 <spawn_tasks_callback+0x84>
|
||||
8000021c: 0019b993 seqz s3,s3
|
||||
80000220: 0009806b 0x9806b
|
||||
80000224: 01c12083 lw ra,28(sp)
|
||||
80000228: 01812403 lw s0,24(sp)
|
||||
8000022c: 01412483 lw s1,20(sp)
|
||||
80000230: 01012903 lw s2,16(sp)
|
||||
80000234: 00c12983 lw s3,12(sp)
|
||||
80000238: 02010113 addi sp,sp,32
|
||||
8000023c: 00008067 ret
|
||||
|
||||
80000240 <vx_spawn_tasks>:
|
||||
80000240: fc010113 addi sp,sp,-64
|
||||
80000244: 02112e23 sw ra,60(sp)
|
||||
80000248: 02812c23 sw s0,56(sp)
|
||||
8000024c: 02912a23 sw s1,52(sp)
|
||||
80000250: 03212823 sw s2,48(sp)
|
||||
80000254: 03312623 sw s3,44(sp)
|
||||
80000258: fc2026f3 csrr a3,0xfc2
|
||||
8000025c: fc102873 csrr a6,0xfc1
|
||||
80000260: fc002473 csrr s0,0xfc0
|
||||
80000264: cc5027f3 csrr a5,0xcc5
|
||||
80000268: 01f00713 li a4,31
|
||||
8000026c: 0cf74463 blt a4,a5,80000334 <vx_spawn_tasks+0xf4>
|
||||
80000270: 030408b3 mul a7,s0,a6
|
||||
80000274: 00100713 li a4,1
|
||||
80000278: 00a8d463 bge a7,a0,80000280 <vx_spawn_tasks+0x40>
|
||||
8000027c: 03154733 div a4,a0,a7
|
||||
80000280: 0ce6c863 blt a3,a4,80000350 <vx_spawn_tasks+0x110>
|
||||
80000284: 0ae7d863 bge a5,a4,80000334 <vx_spawn_tasks+0xf4>
|
||||
80000288: fff68693 addi a3,a3,-1
|
||||
8000028c: 02e54333 div t1,a0,a4
|
||||
80000290: 00030893 mv a7,t1
|
||||
80000294: 00f69663 bne a3,a5,800002a0 <vx_spawn_tasks+0x60>
|
||||
80000298: 02e56533 rem a0,a0,a4
|
||||
8000029c: 006508b3 add a7,a0,t1
|
||||
800002a0: 0288c4b3 div s1,a7,s0
|
||||
800002a4: 0288e933 rem s2,a7,s0
|
||||
800002a8: 0b04ca63 blt s1,a6,8000035c <vx_spawn_tasks+0x11c>
|
||||
800002ac: 00100693 li a3,1
|
||||
800002b0: 0304c733 div a4,s1,a6
|
||||
800002b4: 00070663 beqz a4,800002c0 <vx_spawn_tasks+0x80>
|
||||
800002b8: 00070693 mv a3,a4
|
||||
800002bc: 0304e733 rem a4,s1,a6
|
||||
800002c0: 800029b7 lui s3,0x80002
|
||||
800002c4: dac98993 addi s3,s3,-596 # 80001dac <__stack_top+0x81001dac>
|
||||
800002c8: 00e12e23 sw a4,28(sp)
|
||||
800002cc: 00c10713 addi a4,sp,12
|
||||
800002d0: 00b12623 sw a1,12(sp)
|
||||
800002d4: 00c12823 sw a2,16(sp)
|
||||
800002d8: 00d12c23 sw a3,24(sp)
|
||||
800002dc: 02f30333 mul t1,t1,a5
|
||||
800002e0: 00279793 slli a5,a5,0x2
|
||||
800002e4: 00f987b3 add a5,s3,a5
|
||||
800002e8: 00e7a023 sw a4,0(a5)
|
||||
800002ec: 00612a23 sw t1,20(sp)
|
||||
800002f0: 06904c63 bgtz s1,80000368 <vx_spawn_tasks+0x128>
|
||||
800002f4: 04090063 beqz s2,80000334 <vx_spawn_tasks+0xf4>
|
||||
800002f8: 02848433 mul s0,s1,s0
|
||||
800002fc: 00812a23 sw s0,20(sp)
|
||||
80000300: 0009006b 0x9006b
|
||||
80000304: cc5027f3 csrr a5,0xcc5
|
||||
80000308: cc202573 csrr a0,0xcc2
|
||||
8000030c: 00279793 slli a5,a5,0x2
|
||||
80000310: 00f989b3 add s3,s3,a5
|
||||
80000314: 0009a783 lw a5,0(s3)
|
||||
80000318: 0087a683 lw a3,8(a5)
|
||||
8000031c: 0007a703 lw a4,0(a5)
|
||||
80000320: 0047a583 lw a1,4(a5)
|
||||
80000324: 00d50533 add a0,a0,a3
|
||||
80000328: 000700e7 jalr a4
|
||||
8000032c: 00100793 li a5,1
|
||||
80000330: 0007806b 0x7806b
|
||||
80000334: 03c12083 lw ra,60(sp)
|
||||
80000338: 03812403 lw s0,56(sp)
|
||||
8000033c: 03412483 lw s1,52(sp)
|
||||
80000340: 03012903 lw s2,48(sp)
|
||||
80000344: 02c12983 lw s3,44(sp)
|
||||
80000348: 04010113 addi sp,sp,64
|
||||
8000034c: 00008067 ret
|
||||
80000350: 00068713 mv a4,a3
|
||||
80000354: f2e7cae3 blt a5,a4,80000288 <vx_spawn_tasks+0x48>
|
||||
80000358: fddff06f j 80000334 <vx_spawn_tasks+0xf4>
|
||||
8000035c: 00000713 li a4,0
|
||||
80000360: 00100693 li a3,1
|
||||
80000364: f5dff06f j 800002c0 <vx_spawn_tasks+0x80>
|
||||
80000368: 00048713 mv a4,s1
|
||||
8000036c: 00985463 bge a6,s1,80000374 <vx_spawn_tasks+0x134>
|
||||
80000370: 00080713 mv a4,a6
|
||||
80000374: 800007b7 lui a5,0x80000
|
||||
80000378: 18078793 addi a5,a5,384 # 80000180 <__stack_top+0x81000180>
|
||||
8000037c: 00f7106b 0xf7106b
|
||||
80000380: e01ff0ef jal ra,80000180 <spawn_tasks_callback>
|
||||
80000384: f71ff06f j 800002f4 <vx_spawn_tasks+0xb4>
|
||||
|
||||
80000388 <vx_perf_dump>:
|
||||
80000388: cc5027f3 csrr a5,0xcc5
|
||||
8000038c: 00ff0737 lui a4,0xff0
|
||||
80000390: 00e787b3 add a5,a5,a4
|
||||
80000394: 00879793 slli a5,a5,0x8
|
||||
80000398: b0002773 csrr a4,mcycle
|
||||
8000039c: 00e7a023 sw a4,0(a5)
|
||||
800003a0: b0102773 csrr a4,0xb01
|
||||
800003a4: 00e7a223 sw a4,4(a5)
|
||||
800003a8: b0202773 csrr a4,minstret
|
||||
800003ac: 00e7a423 sw a4,8(a5)
|
||||
800003b0: b0302773 csrr a4,mhpmcounter3
|
||||
800003b4: 00e7a623 sw a4,12(a5)
|
||||
800003b8: b0402773 csrr a4,mhpmcounter4
|
||||
800003bc: 00e7a823 sw a4,16(a5)
|
||||
800003c0: b0502773 csrr a4,mhpmcounter5
|
||||
800003c4: 00e7aa23 sw a4,20(a5)
|
||||
800003c8: b0602773 csrr a4,mhpmcounter6
|
||||
800003cc: 00e7ac23 sw a4,24(a5)
|
||||
800003d0: b0702773 csrr a4,mhpmcounter7
|
||||
800003d4: 00e7ae23 sw a4,28(a5)
|
||||
800003d8: b0802773 csrr a4,mhpmcounter8
|
||||
800003dc: 02e7a023 sw a4,32(a5)
|
||||
800003e0: b0902773 csrr a4,mhpmcounter9
|
||||
800003e4: 02e7a223 sw a4,36(a5)
|
||||
800003e8: b0a02773 csrr a4,mhpmcounter10
|
||||
800003ec: 02e7a423 sw a4,40(a5)
|
||||
800003f0: b0b02773 csrr a4,mhpmcounter11
|
||||
800003f4: 02e7a623 sw a4,44(a5)
|
||||
800003f8: b0c02773 csrr a4,mhpmcounter12
|
||||
800003fc: 02e7a823 sw a4,48(a5)
|
||||
80000400: b0d02773 csrr a4,mhpmcounter13
|
||||
80000404: 02e7aa23 sw a4,52(a5)
|
||||
80000408: b0e02773 csrr a4,mhpmcounter14
|
||||
8000040c: 02e7ac23 sw a4,56(a5)
|
||||
80000410: b0f02773 csrr a4,mhpmcounter15
|
||||
80000414: 02e7ae23 sw a4,60(a5)
|
||||
80000418: b1002773 csrr a4,mhpmcounter16
|
||||
8000041c: 04e7a023 sw a4,64(a5)
|
||||
80000420: b1102773 csrr a4,mhpmcounter17
|
||||
80000424: 04e7a223 sw a4,68(a5)
|
||||
80000428: b1202773 csrr a4,mhpmcounter18
|
||||
8000042c: 04e7a423 sw a4,72(a5)
|
||||
80000430: b1302773 csrr a4,mhpmcounter19
|
||||
80000434: 04e7a623 sw a4,76(a5)
|
||||
80000438: b1402773 csrr a4,mhpmcounter20
|
||||
8000043c: 04e7a823 sw a4,80(a5)
|
||||
80000440: b1502773 csrr a4,mhpmcounter21
|
||||
80000444: 04e7aa23 sw a4,84(a5)
|
||||
80000448: b1602773 csrr a4,mhpmcounter22
|
||||
8000044c: 04e7ac23 sw a4,88(a5)
|
||||
80000450: b1702773 csrr a4,mhpmcounter23
|
||||
80000454: 04e7ae23 sw a4,92(a5)
|
||||
80000458: b1802773 csrr a4,mhpmcounter24
|
||||
8000045c: 06e7a023 sw a4,96(a5)
|
||||
80000460: b1902773 csrr a4,mhpmcounter25
|
||||
80000464: 06e7a223 sw a4,100(a5)
|
||||
80000468: b1a02773 csrr a4,mhpmcounter26
|
||||
8000046c: 06e7a423 sw a4,104(a5)
|
||||
80000470: b1b02773 csrr a4,mhpmcounter27
|
||||
80000474: 06e7a623 sw a4,108(a5)
|
||||
80000478: b1c02773 csrr a4,mhpmcounter28
|
||||
8000047c: 06e7a823 sw a4,112(a5)
|
||||
80000480: b1d02773 csrr a4,mhpmcounter29
|
||||
80000484: 06e7aa23 sw a4,116(a5)
|
||||
80000488: b1e02773 csrr a4,mhpmcounter30
|
||||
8000048c: 06e7ac23 sw a4,120(a5)
|
||||
80000490: b1f02773 csrr a4,mhpmcounter31
|
||||
80000494: 06e7ae23 sw a4,124(a5)
|
||||
80000498: b8002773 csrr a4,mcycleh
|
||||
8000049c: 08e7a023 sw a4,128(a5)
|
||||
800004a0: b8102773 csrr a4,0xb81
|
||||
800004a4: 08e7a223 sw a4,132(a5)
|
||||
800004a8: b8202773 csrr a4,minstreth
|
||||
800004ac: 08e7a423 sw a4,136(a5)
|
||||
800004b0: b8302773 csrr a4,mhpmcounter3h
|
||||
800004b4: 08e7a623 sw a4,140(a5)
|
||||
800004b8: b8402773 csrr a4,mhpmcounter4h
|
||||
800004bc: 08e7a823 sw a4,144(a5)
|
||||
800004c0: b8502773 csrr a4,mhpmcounter5h
|
||||
800004c4: 08e7aa23 sw a4,148(a5)
|
||||
800004c8: b8602773 csrr a4,mhpmcounter6h
|
||||
800004cc: 08e7ac23 sw a4,152(a5)
|
||||
800004d0: b8702773 csrr a4,mhpmcounter7h
|
||||
800004d4: 08e7ae23 sw a4,156(a5)
|
||||
800004d8: b8802773 csrr a4,mhpmcounter8h
|
||||
800004dc: 0ae7a023 sw a4,160(a5)
|
||||
800004e0: b8902773 csrr a4,mhpmcounter9h
|
||||
800004e4: 0ae7a223 sw a4,164(a5)
|
||||
800004e8: b8a02773 csrr a4,mhpmcounter10h
|
||||
800004ec: 0ae7a423 sw a4,168(a5)
|
||||
800004f0: b8b02773 csrr a4,mhpmcounter11h
|
||||
800004f4: 0ae7a623 sw a4,172(a5)
|
||||
800004f8: b8c02773 csrr a4,mhpmcounter12h
|
||||
800004fc: 0ae7a823 sw a4,176(a5)
|
||||
80000500: b8d02773 csrr a4,mhpmcounter13h
|
||||
80000504: 0ae7aa23 sw a4,180(a5)
|
||||
80000508: b8e02773 csrr a4,mhpmcounter14h
|
||||
8000050c: 0ae7ac23 sw a4,184(a5)
|
||||
80000510: b8f02773 csrr a4,mhpmcounter15h
|
||||
80000514: 0ae7ae23 sw a4,188(a5)
|
||||
80000518: b9002773 csrr a4,mhpmcounter16h
|
||||
8000051c: 0ce7a023 sw a4,192(a5)
|
||||
80000520: b9102773 csrr a4,mhpmcounter17h
|
||||
80000524: 0ce7a223 sw a4,196(a5)
|
||||
80000528: b9202773 csrr a4,mhpmcounter18h
|
||||
8000052c: 0ce7a423 sw a4,200(a5)
|
||||
80000530: b9302773 csrr a4,mhpmcounter19h
|
||||
80000534: 0ce7a623 sw a4,204(a5)
|
||||
80000538: b9402773 csrr a4,mhpmcounter20h
|
||||
8000053c: 0ce7a823 sw a4,208(a5)
|
||||
80000540: b9502773 csrr a4,mhpmcounter21h
|
||||
80000544: 0ce7aa23 sw a4,212(a5)
|
||||
80000548: b9602773 csrr a4,mhpmcounter22h
|
||||
8000054c: 0ce7ac23 sw a4,216(a5)
|
||||
80000550: b9702773 csrr a4,mhpmcounter23h
|
||||
80000554: 0ce7ae23 sw a4,220(a5)
|
||||
80000558: b9802773 csrr a4,mhpmcounter24h
|
||||
8000055c: 0ee7a023 sw a4,224(a5)
|
||||
80000560: b9902773 csrr a4,mhpmcounter25h
|
||||
80000564: 0ee7a223 sw a4,228(a5)
|
||||
80000568: b9a02773 csrr a4,mhpmcounter26h
|
||||
8000056c: 0ee7a423 sw a4,232(a5)
|
||||
80000570: b9b02773 csrr a4,mhpmcounter27h
|
||||
80000574: 0ee7a623 sw a4,236(a5)
|
||||
80000578: b9c02773 csrr a4,mhpmcounter28h
|
||||
8000057c: 0ee7a823 sw a4,240(a5)
|
||||
80000580: b9d02773 csrr a4,mhpmcounter29h
|
||||
80000584: 0ee7aa23 sw a4,244(a5)
|
||||
80000588: b9e02773 csrr a4,mhpmcounter30h
|
||||
8000058c: 0ee7ac23 sw a4,248(a5)
|
||||
80000590: b9f02773 csrr a4,mhpmcounter31h
|
||||
80000594: 0ee7ae23 sw a4,252(a5)
|
||||
80000598: 00008067 ret
|
||||
|
||||
8000059c <atexit>:
|
||||
8000059c: 00050593 mv a1,a0
|
||||
800005a0: 00000693 li a3,0
|
||||
800005a4: 00000613 li a2,0
|
||||
800005a8: 00000513 li a0,0
|
||||
800005ac: 20c0006f j 800007b8 <__register_exitproc>
|
||||
|
||||
800005b0 <exit>:
|
||||
800005b0: ff010113 addi sp,sp,-16
|
||||
800005b4: 00000593 li a1,0
|
||||
800005b8: 00812423 sw s0,8(sp)
|
||||
800005bc: 00112623 sw ra,12(sp)
|
||||
800005c0: 00050413 mv s0,a0
|
||||
800005c4: 290000ef jal ra,80000854 <__call_exitprocs>
|
||||
800005c8: 800027b7 lui a5,0x80002
|
||||
800005cc: da87a503 lw a0,-600(a5) # 80001da8 <__stack_top+0x81001da8>
|
||||
800005d0: 03c52783 lw a5,60(a0)
|
||||
800005d4: 00078463 beqz a5,800005dc <exit+0x2c>
|
||||
800005d8: 000780e7 jalr a5
|
||||
800005dc: 00040513 mv a0,s0
|
||||
800005e0: b59ff0ef jal ra,80000138 <_exit>
|
||||
|
||||
800005e4 <__libc_fini_array>:
|
||||
800005e4: ff010113 addi sp,sp,-16
|
||||
800005e8: 00812423 sw s0,8(sp)
|
||||
800005ec: 800027b7 lui a5,0x80002
|
||||
800005f0: 80002437 lui s0,0x80002
|
||||
800005f4: 97c40413 addi s0,s0,-1668 # 8000197c <__stack_top+0x8100197c>
|
||||
800005f8: 97c78793 addi a5,a5,-1668 # 8000197c <__stack_top+0x8100197c>
|
||||
800005fc: 408787b3 sub a5,a5,s0
|
||||
80000600: 00912223 sw s1,4(sp)
|
||||
80000604: 00112623 sw ra,12(sp)
|
||||
80000608: 4027d493 srai s1,a5,0x2
|
||||
8000060c: 02048063 beqz s1,8000062c <__libc_fini_array+0x48>
|
||||
80000610: ffc78793 addi a5,a5,-4
|
||||
80000614: 00878433 add s0,a5,s0
|
||||
80000618: 00042783 lw a5,0(s0)
|
||||
8000061c: fff48493 addi s1,s1,-1
|
||||
80000620: ffc40413 addi s0,s0,-4
|
||||
80000624: 000780e7 jalr a5
|
||||
80000628: fe0498e3 bnez s1,80000618 <__libc_fini_array+0x34>
|
||||
8000062c: 00c12083 lw ra,12(sp)
|
||||
80000630: 00812403 lw s0,8(sp)
|
||||
80000634: 00412483 lw s1,4(sp)
|
||||
80000638: 01010113 addi sp,sp,16
|
||||
8000063c: 00008067 ret
|
||||
|
||||
80000640 <__libc_init_array>:
|
||||
80000640: ff010113 addi sp,sp,-16
|
||||
80000644: 00812423 sw s0,8(sp)
|
||||
80000648: 01212023 sw s2,0(sp)
|
||||
8000064c: 80002437 lui s0,0x80002
|
||||
80000650: 80002937 lui s2,0x80002
|
||||
80000654: 97840793 addi a5,s0,-1672 # 80001978 <__stack_top+0x81001978>
|
||||
80000658: 97890913 addi s2,s2,-1672 # 80001978 <__stack_top+0x81001978>
|
||||
8000065c: 40f90933 sub s2,s2,a5
|
||||
80000660: 00112623 sw ra,12(sp)
|
||||
80000664: 00912223 sw s1,4(sp)
|
||||
80000668: 40295913 srai s2,s2,0x2
|
||||
8000066c: 02090063 beqz s2,8000068c <__libc_init_array+0x4c>
|
||||
80000670: 97840413 addi s0,s0,-1672
|
||||
80000674: 00000493 li s1,0
|
||||
80000678: 00042783 lw a5,0(s0)
|
||||
8000067c: 00148493 addi s1,s1,1
|
||||
80000680: 00440413 addi s0,s0,4
|
||||
80000684: 000780e7 jalr a5
|
||||
80000688: fe9918e3 bne s2,s1,80000678 <__libc_init_array+0x38>
|
||||
8000068c: 80002437 lui s0,0x80002
|
||||
80000690: 80002937 lui s2,0x80002
|
||||
80000694: 97840793 addi a5,s0,-1672 # 80001978 <__stack_top+0x81001978>
|
||||
80000698: 97c90913 addi s2,s2,-1668 # 8000197c <__stack_top+0x8100197c>
|
||||
8000069c: 40f90933 sub s2,s2,a5
|
||||
800006a0: 40295913 srai s2,s2,0x2
|
||||
800006a4: 02090063 beqz s2,800006c4 <__libc_init_array+0x84>
|
||||
800006a8: 97840413 addi s0,s0,-1672
|
||||
800006ac: 00000493 li s1,0
|
||||
800006b0: 00042783 lw a5,0(s0)
|
||||
800006b4: 00148493 addi s1,s1,1
|
||||
800006b8: 00440413 addi s0,s0,4
|
||||
800006bc: 000780e7 jalr a5
|
||||
800006c0: fe9918e3 bne s2,s1,800006b0 <__libc_init_array+0x70>
|
||||
800006c4: 00c12083 lw ra,12(sp)
|
||||
800006c8: 00812403 lw s0,8(sp)
|
||||
800006cc: 00412483 lw s1,4(sp)
|
||||
800006d0: 00012903 lw s2,0(sp)
|
||||
800006d4: 01010113 addi sp,sp,16
|
||||
800006d8: 00008067 ret
|
||||
|
||||
800006dc <memset>:
|
||||
800006dc: 00f00313 li t1,15
|
||||
800006e0: 00050713 mv a4,a0
|
||||
800006e4: 02c37e63 bgeu t1,a2,80000720 <memset+0x44>
|
||||
800006e8: 00f77793 andi a5,a4,15
|
||||
800006ec: 0a079063 bnez a5,8000078c <memset+0xb0>
|
||||
800006f0: 08059263 bnez a1,80000774 <memset+0x98>
|
||||
800006f4: ff067693 andi a3,a2,-16
|
||||
800006f8: 00f67613 andi a2,a2,15
|
||||
800006fc: 00e686b3 add a3,a3,a4
|
||||
80000700: 00b72023 sw a1,0(a4) # ff0000 <__stack_size+0xfefc00>
|
||||
80000704: 00b72223 sw a1,4(a4)
|
||||
80000708: 00b72423 sw a1,8(a4)
|
||||
8000070c: 00b72623 sw a1,12(a4)
|
||||
80000710: 01070713 addi a4,a4,16
|
||||
80000714: fed766e3 bltu a4,a3,80000700 <memset+0x24>
|
||||
80000718: 00061463 bnez a2,80000720 <memset+0x44>
|
||||
8000071c: 00008067 ret
|
||||
80000720: 40c306b3 sub a3,t1,a2
|
||||
80000724: 00269693 slli a3,a3,0x2
|
||||
80000728: 00000297 auipc t0,0x0
|
||||
8000072c: 005686b3 add a3,a3,t0
|
||||
80000730: 00c68067 jr 12(a3)
|
||||
80000734: 00b70723 sb a1,14(a4)
|
||||
80000738: 00b706a3 sb a1,13(a4)
|
||||
8000073c: 00b70623 sb a1,12(a4)
|
||||
80000740: 00b705a3 sb a1,11(a4)
|
||||
80000744: 00b70523 sb a1,10(a4)
|
||||
80000748: 00b704a3 sb a1,9(a4)
|
||||
8000074c: 00b70423 sb a1,8(a4)
|
||||
80000750: 00b703a3 sb a1,7(a4)
|
||||
80000754: 00b70323 sb a1,6(a4)
|
||||
80000758: 00b702a3 sb a1,5(a4)
|
||||
8000075c: 00b70223 sb a1,4(a4)
|
||||
80000760: 00b701a3 sb a1,3(a4)
|
||||
80000764: 00b70123 sb a1,2(a4)
|
||||
80000768: 00b700a3 sb a1,1(a4)
|
||||
8000076c: 00b70023 sb a1,0(a4)
|
||||
80000770: 00008067 ret
|
||||
80000774: 0ff5f593 andi a1,a1,255
|
||||
80000778: 00859693 slli a3,a1,0x8
|
||||
8000077c: 00d5e5b3 or a1,a1,a3
|
||||
80000780: 01059693 slli a3,a1,0x10
|
||||
80000784: 00d5e5b3 or a1,a1,a3
|
||||
80000788: f6dff06f j 800006f4 <memset+0x18>
|
||||
8000078c: 00279693 slli a3,a5,0x2
|
||||
80000790: 00000297 auipc t0,0x0
|
||||
80000794: 005686b3 add a3,a3,t0
|
||||
80000798: 00008293 mv t0,ra
|
||||
8000079c: fa0680e7 jalr -96(a3)
|
||||
800007a0: 00028093 mv ra,t0
|
||||
800007a4: ff078793 addi a5,a5,-16
|
||||
800007a8: 40f70733 sub a4,a4,a5
|
||||
800007ac: 00f60633 add a2,a2,a5
|
||||
800007b0: f6c378e3 bgeu t1,a2,80000720 <memset+0x44>
|
||||
800007b4: f3dff06f j 800006f0 <memset+0x14>
|
||||
|
||||
800007b8 <__register_exitproc>:
|
||||
800007b8: 800027b7 lui a5,0x80002
|
||||
800007bc: da87a703 lw a4,-600(a5) # 80001da8 <__stack_top+0x81001da8>
|
||||
800007c0: 14872783 lw a5,328(a4)
|
||||
800007c4: 04078c63 beqz a5,8000081c <__register_exitproc+0x64>
|
||||
800007c8: 0047a703 lw a4,4(a5)
|
||||
800007cc: 01f00813 li a6,31
|
||||
800007d0: 06e84e63 blt a6,a4,8000084c <__register_exitproc+0x94>
|
||||
800007d4: 00271813 slli a6,a4,0x2
|
||||
800007d8: 02050663 beqz a0,80000804 <__register_exitproc+0x4c>
|
||||
800007dc: 01078333 add t1,a5,a6
|
||||
800007e0: 08c32423 sw a2,136(t1)
|
||||
800007e4: 1887a883 lw a7,392(a5)
|
||||
800007e8: 00100613 li a2,1
|
||||
800007ec: 00e61633 sll a2,a2,a4
|
||||
800007f0: 00c8e8b3 or a7,a7,a2
|
||||
800007f4: 1917a423 sw a7,392(a5)
|
||||
800007f8: 10d32423 sw a3,264(t1)
|
||||
800007fc: 00200693 li a3,2
|
||||
80000800: 02d50463 beq a0,a3,80000828 <__register_exitproc+0x70>
|
||||
80000804: 00170713 addi a4,a4,1
|
||||
80000808: 00e7a223 sw a4,4(a5)
|
||||
8000080c: 010787b3 add a5,a5,a6
|
||||
80000810: 00b7a423 sw a1,8(a5)
|
||||
80000814: 00000513 li a0,0
|
||||
80000818: 00008067 ret
|
||||
8000081c: 14c70793 addi a5,a4,332
|
||||
80000820: 14f72423 sw a5,328(a4)
|
||||
80000824: fa5ff06f j 800007c8 <__register_exitproc+0x10>
|
||||
80000828: 18c7a683 lw a3,396(a5)
|
||||
8000082c: 00170713 addi a4,a4,1
|
||||
80000830: 00e7a223 sw a4,4(a5)
|
||||
80000834: 00c6e633 or a2,a3,a2
|
||||
80000838: 18c7a623 sw a2,396(a5)
|
||||
8000083c: 010787b3 add a5,a5,a6
|
||||
80000840: 00b7a423 sw a1,8(a5)
|
||||
80000844: 00000513 li a0,0
|
||||
80000848: 00008067 ret
|
||||
8000084c: fff00513 li a0,-1
|
||||
80000850: 00008067 ret
|
||||
|
||||
80000854 <__call_exitprocs>:
|
||||
80000854: fd010113 addi sp,sp,-48
|
||||
80000858: 800027b7 lui a5,0x80002
|
||||
8000085c: 01412c23 sw s4,24(sp)
|
||||
80000860: da87aa03 lw s4,-600(a5) # 80001da8 <__stack_top+0x81001da8>
|
||||
80000864: 03212023 sw s2,32(sp)
|
||||
80000868: 02112623 sw ra,44(sp)
|
||||
8000086c: 148a2903 lw s2,328(s4)
|
||||
80000870: 02812423 sw s0,40(sp)
|
||||
80000874: 02912223 sw s1,36(sp)
|
||||
80000878: 01312e23 sw s3,28(sp)
|
||||
8000087c: 01512a23 sw s5,20(sp)
|
||||
80000880: 01612823 sw s6,16(sp)
|
||||
80000884: 01712623 sw s7,12(sp)
|
||||
80000888: 01812423 sw s8,8(sp)
|
||||
8000088c: 04090063 beqz s2,800008cc <__call_exitprocs+0x78>
|
||||
80000890: 00050b13 mv s6,a0
|
||||
80000894: 00058b93 mv s7,a1
|
||||
80000898: 00100a93 li s5,1
|
||||
8000089c: fff00993 li s3,-1
|
||||
800008a0: 00492483 lw s1,4(s2)
|
||||
800008a4: fff48413 addi s0,s1,-1
|
||||
800008a8: 02044263 bltz s0,800008cc <__call_exitprocs+0x78>
|
||||
800008ac: 00249493 slli s1,s1,0x2
|
||||
800008b0: 009904b3 add s1,s2,s1
|
||||
800008b4: 040b8463 beqz s7,800008fc <__call_exitprocs+0xa8>
|
||||
800008b8: 1044a783 lw a5,260(s1)
|
||||
800008bc: 05778063 beq a5,s7,800008fc <__call_exitprocs+0xa8>
|
||||
800008c0: fff40413 addi s0,s0,-1
|
||||
800008c4: ffc48493 addi s1,s1,-4
|
||||
800008c8: ff3416e3 bne s0,s3,800008b4 <__call_exitprocs+0x60>
|
||||
800008cc: 02c12083 lw ra,44(sp)
|
||||
800008d0: 02812403 lw s0,40(sp)
|
||||
800008d4: 02412483 lw s1,36(sp)
|
||||
800008d8: 02012903 lw s2,32(sp)
|
||||
800008dc: 01c12983 lw s3,28(sp)
|
||||
800008e0: 01812a03 lw s4,24(sp)
|
||||
800008e4: 01412a83 lw s5,20(sp)
|
||||
800008e8: 01012b03 lw s6,16(sp)
|
||||
800008ec: 00c12b83 lw s7,12(sp)
|
||||
800008f0: 00812c03 lw s8,8(sp)
|
||||
800008f4: 03010113 addi sp,sp,48
|
||||
800008f8: 00008067 ret
|
||||
800008fc: 00492783 lw a5,4(s2)
|
||||
80000900: 0044a683 lw a3,4(s1)
|
||||
80000904: fff78793 addi a5,a5,-1
|
||||
80000908: 04878e63 beq a5,s0,80000964 <__call_exitprocs+0x110>
|
||||
8000090c: 0004a223 sw zero,4(s1)
|
||||
80000910: fa0688e3 beqz a3,800008c0 <__call_exitprocs+0x6c>
|
||||
80000914: 18892783 lw a5,392(s2)
|
||||
80000918: 008a9733 sll a4,s5,s0
|
||||
8000091c: 00492c03 lw s8,4(s2)
|
||||
80000920: 00f777b3 and a5,a4,a5
|
||||
80000924: 02079263 bnez a5,80000948 <__call_exitprocs+0xf4>
|
||||
80000928: 000680e7 jalr a3
|
||||
8000092c: 00492703 lw a4,4(s2)
|
||||
80000930: 148a2783 lw a5,328(s4)
|
||||
80000934: 01871463 bne a4,s8,8000093c <__call_exitprocs+0xe8>
|
||||
80000938: f8f904e3 beq s2,a5,800008c0 <__call_exitprocs+0x6c>
|
||||
8000093c: f80788e3 beqz a5,800008cc <__call_exitprocs+0x78>
|
||||
80000940: 00078913 mv s2,a5
|
||||
80000944: f5dff06f j 800008a0 <__call_exitprocs+0x4c>
|
||||
80000948: 18c92783 lw a5,396(s2)
|
||||
8000094c: 0844a583 lw a1,132(s1)
|
||||
80000950: 00f77733 and a4,a4,a5
|
||||
80000954: 00071c63 bnez a4,8000096c <__call_exitprocs+0x118>
|
||||
80000958: 000b0513 mv a0,s6
|
||||
8000095c: 000680e7 jalr a3
|
||||
80000960: fcdff06f j 8000092c <__call_exitprocs+0xd8>
|
||||
80000964: 00892223 sw s0,4(s2)
|
||||
80000968: fa9ff06f j 80000910 <__call_exitprocs+0xbc>
|
||||
8000096c: 00058513 mv a0,a1
|
||||
80000970: 000680e7 jalr a3
|
||||
80000974: fb9ff06f j 8000092c <__call_exitprocs+0xd8>
|
||||
|
||||
Disassembly of section .init_array:
|
||||
|
||||
80001978 <__init_array_start>:
|
||||
80001978: 0068 addi a0,sp,12
|
||||
8000197a: 8000 0x8000
|
||||
|
||||
Disassembly of section .data:
|
||||
|
||||
80001980 <impure_data>:
|
||||
80001980: 0000 unimp
|
||||
80001982: 0000 unimp
|
||||
80001984: 1c6c addi a1,sp,572
|
||||
80001986: 8000 0x8000
|
||||
80001988: 1cd4 addi a3,sp,628
|
||||
8000198a: 8000 0x8000
|
||||
8000198c: 1d3c addi a5,sp,696
|
||||
8000198e: 8000 0x8000
|
||||
...
|
||||
80001a28: 0001 nop
|
||||
80001a2a: 0000 unimp
|
||||
80001a2c: 0000 unimp
|
||||
80001a2e: 0000 unimp
|
||||
80001a30: 330e fld ft6,224(sp)
|
||||
80001a32: abcd j 80002024 <__BSS_END__+0x1f8>
|
||||
80001a34: 1234 addi a3,sp,296
|
||||
80001a36: e66d bnez a2,80001b20 <impure_data+0x1a0>
|
||||
80001a38: deec sw a1,124(a3)
|
||||
80001a3a: 0005 c.nop 1
|
||||
80001a3c: 0000000b 0xb
|
||||
...
|
||||
|
||||
Disassembly of section .sdata:
|
||||
|
||||
80001da8 <_global_impure_ptr>:
|
||||
80001da8: 1980 addi s0,sp,240
|
||||
80001daa: 8000 0x8000
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
80001dac <g_wspawn_args>:
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3920 fld fs0,112(a0)
|
||||
c: 322e fld ft4,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .riscv.attributes:
|
||||
|
||||
00000000 <.riscv.attributes>:
|
||||
0: 2541 jal 680 <__stack_size+0x280>
|
||||
2: 0000 unimp
|
||||
4: 7200 flw fs0,32(a2)
|
||||
6: 7369 lui t1,0xffffa
|
||||
8: 01007663 bgeu zero,a6,14 <__stack_usage+0x14>
|
||||
c: 0000001b 0x1b
|
||||
10: 1004 addi s1,sp,32
|
||||
12: 7205 lui tp,0xfffe1
|
||||
14: 3376 fld ft6,376(sp)
|
||||
16: 6932 flw fs2,12(sp)
|
||||
18: 7032 flw ft0,44(sp)
|
||||
1a: 5f30 lw a2,120(a4)
|
||||
1c: 326d jal fffff9c6 <__stack_top+0xfff9c6>
|
||||
1e: 3070 fld fa2,224(s0)
|
||||
20: 665f 7032 0030 0x307032665f
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
|
@ -1,697 +0,0 @@
|
|||
|
||||
kernel.elf: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .init:
|
||||
|
||||
80000000 <_start>:
|
||||
80000000: 00000597 auipc a1,0x0
|
||||
80000004: 0e858593 addi a1,a1,232 # 800000e8 <vx_set_sp>
|
||||
80000008: fc102573 csrr a0,0xfc1
|
||||
8000000c: 00b5106b 0xb5106b
|
||||
80000010: 0d8000ef jal ra,800000e8 <vx_set_sp>
|
||||
80000014: 00100513 li a0,1
|
||||
80000018: 0005006b 0x5006b
|
||||
8000001c: 00002517 auipc a0,0x2
|
||||
80000020: d3050513 addi a0,a0,-720 # 80001d4c <g_wspawn_args>
|
||||
80000024: 00002617 auipc a2,0x2
|
||||
80000028: da860613 addi a2,a2,-600 # 80001dcc <__BSS_END__>
|
||||
8000002c: 40a60633 sub a2,a2,a0
|
||||
80000030: 00000593 li a1,0
|
||||
80000034: 64c000ef jal ra,80000680 <memset>
|
||||
80000038: 00000517 auipc a0,0x0
|
||||
8000003c: 55050513 addi a0,a0,1360 # 80000588 <__libc_fini_array>
|
||||
80000040: 500000ef jal ra,80000540 <atexit>
|
||||
80000044: 5a0000ef jal ra,800005e4 <__libc_init_array>
|
||||
80000048: 008000ef jal ra,80000050 <main>
|
||||
8000004c: 5080006f j 80000554 <exit>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
80000050 <main>:
|
||||
80000050: 7ffff7b7 lui a5,0x7ffff
|
||||
80000054: 0007a503 lw a0,0(a5) # 7ffff000 <__stack_size+0x7fffec00>
|
||||
80000058: 800005b7 lui a1,0x80000
|
||||
8000005c: 7ffff637 lui a2,0x7ffff
|
||||
80000060: 08058593 addi a1,a1,128 # 80000080 <__stack_top+0x81000080>
|
||||
80000064: 1800006f j 800001e4 <vx_spawn_tasks>
|
||||
|
||||
80000068 <register_fini>:
|
||||
80000068: 00000793 li a5,0
|
||||
8000006c: 00078863 beqz a5,8000007c <register_fini+0x14>
|
||||
80000070: 80000537 lui a0,0x80000
|
||||
80000074: 58850513 addi a0,a0,1416 # 80000588 <__stack_top+0x81000588>
|
||||
80000078: 4c80006f j 80000540 <atexit>
|
||||
8000007c: 00008067 ret
|
||||
|
||||
80000080 <kernel_body>:
|
||||
80000080: 0045a683 lw a3,4(a1)
|
||||
80000084: 0085a603 lw a2,8(a1)
|
||||
80000088: 00c5a703 lw a4,12(a1)
|
||||
8000008c: 02d50533 mul a0,a0,a3
|
||||
80000090: 0105a803 lw a6,16(a1)
|
||||
80000094: 04068063 beqz a3,800000d4 <kernel_body+0x54>
|
||||
80000098: 00a686b3 add a3,a3,a0
|
||||
8000009c: 00269693 slli a3,a3,0x2
|
||||
800000a0: 00251513 slli a0,a0,0x2
|
||||
800000a4: 00c507b3 add a5,a0,a2
|
||||
800000a8: 00c686b3 add a3,a3,a2
|
||||
800000ac: 40c80833 sub a6,a6,a2
|
||||
800000b0: 40c70533 sub a0,a4,a2
|
||||
800000b4: 00f50733 add a4,a0,a5
|
||||
800000b8: 0007a583 lw a1,0(a5)
|
||||
800000bc: 00072703 lw a4,0(a4)
|
||||
800000c0: 00f80633 add a2,a6,a5
|
||||
800000c4: 00478793 addi a5,a5,4
|
||||
800000c8: 00b70733 add a4,a4,a1
|
||||
800000cc: 00e62023 sw a4,0(a2) # 7ffff000 <__stack_size+0x7fffec00>
|
||||
800000d0: fef692e3 bne a3,a5,800000b4 <kernel_body+0x34>
|
||||
800000d4: 0ff0000f fence
|
||||
800000d8: 00008067 ret
|
||||
|
||||
800000dc <_exit>:
|
||||
800000dc: 250000ef jal ra,8000032c <vx_perf_dump>
|
||||
800000e0: 00000513 li a0,0
|
||||
800000e4: 0005006b 0x5006b
|
||||
|
||||
800000e8 <vx_set_sp>:
|
||||
800000e8: fc002573 csrr a0,0xfc0
|
||||
800000ec: 0005006b 0x5006b
|
||||
800000f0: 00002197 auipc gp,0x2
|
||||
800000f4: 03018193 addi gp,gp,48 # 80002120 <__global_pointer>
|
||||
800000f8: 7f000117 auipc sp,0x7f000
|
||||
800000fc: f0810113 addi sp,sp,-248 # ff000000 <__stack_top>
|
||||
80000100: 40000593 li a1,1024
|
||||
80000104: cc102673 csrr a2,0xcc1
|
||||
80000108: 02c585b3 mul a1,a1,a2
|
||||
8000010c: 40b10133 sub sp,sp,a1
|
||||
80000110: cc3026f3 csrr a3,0xcc3
|
||||
80000114: 00068663 beqz a3,80000120 <RETURN>
|
||||
80000118: 00000513 li a0,0
|
||||
8000011c: 0005006b 0x5006b
|
||||
|
||||
80000120 <RETURN>:
|
||||
80000120: 00008067 ret
|
||||
|
||||
80000124 <spawn_tasks_callback>:
|
||||
80000124: fe010113 addi sp,sp,-32
|
||||
80000128: 00112e23 sw ra,28(sp)
|
||||
8000012c: 00812c23 sw s0,24(sp)
|
||||
80000130: 00912a23 sw s1,20(sp)
|
||||
80000134: 01212823 sw s2,16(sp)
|
||||
80000138: 01312623 sw s3,12(sp)
|
||||
8000013c: fc0027f3 csrr a5,0xfc0
|
||||
80000140: 0007806b 0x7806b
|
||||
80000144: cc5027f3 csrr a5,0xcc5
|
||||
80000148: cc3029f3 csrr s3,0xcc3
|
||||
8000014c: cc002773 csrr a4,0xcc0
|
||||
80000150: fc002673 csrr a2,0xfc0
|
||||
80000154: 00279693 slli a3,a5,0x2
|
||||
80000158: 800027b7 lui a5,0x80002
|
||||
8000015c: d4c78793 addi a5,a5,-692 # 80001d4c <__stack_top+0x81001d4c>
|
||||
80000160: 00d787b3 add a5,a5,a3
|
||||
80000164: 0007a483 lw s1,0(a5)
|
||||
80000168: 0104a403 lw s0,16(s1)
|
||||
8000016c: 00c4a683 lw a3,12(s1)
|
||||
80000170: 0089a933 slt s2,s3,s0
|
||||
80000174: 00040793 mv a5,s0
|
||||
80000178: 00d90933 add s2,s2,a3
|
||||
8000017c: 03368433 mul s0,a3,s3
|
||||
80000180: 00f9d463 bge s3,a5,80000188 <spawn_tasks_callback+0x64>
|
||||
80000184: 00098793 mv a5,s3
|
||||
80000188: 00f40433 add s0,s0,a5
|
||||
8000018c: 0084a683 lw a3,8(s1)
|
||||
80000190: 02c40433 mul s0,s0,a2
|
||||
80000194: 02e907b3 mul a5,s2,a4
|
||||
80000198: 00d40433 add s0,s0,a3
|
||||
8000019c: 00f40433 add s0,s0,a5
|
||||
800001a0: 00890933 add s2,s2,s0
|
||||
800001a4: 01245e63 bge s0,s2,800001c0 <spawn_tasks_callback+0x9c>
|
||||
800001a8: 0004a783 lw a5,0(s1)
|
||||
800001ac: 0044a583 lw a1,4(s1)
|
||||
800001b0: 00040513 mv a0,s0
|
||||
800001b4: 00140413 addi s0,s0,1
|
||||
800001b8: 000780e7 jalr a5
|
||||
800001bc: fe8916e3 bne s2,s0,800001a8 <spawn_tasks_callback+0x84>
|
||||
800001c0: 0019b993 seqz s3,s3
|
||||
800001c4: 0009806b 0x9806b
|
||||
800001c8: 01c12083 lw ra,28(sp)
|
||||
800001cc: 01812403 lw s0,24(sp)
|
||||
800001d0: 01412483 lw s1,20(sp)
|
||||
800001d4: 01012903 lw s2,16(sp)
|
||||
800001d8: 00c12983 lw s3,12(sp)
|
||||
800001dc: 02010113 addi sp,sp,32
|
||||
800001e0: 00008067 ret
|
||||
|
||||
800001e4 <vx_spawn_tasks>:
|
||||
800001e4: fc010113 addi sp,sp,-64
|
||||
800001e8: 02112e23 sw ra,60(sp)
|
||||
800001ec: 02812c23 sw s0,56(sp)
|
||||
800001f0: 02912a23 sw s1,52(sp)
|
||||
800001f4: 03212823 sw s2,48(sp)
|
||||
800001f8: 03312623 sw s3,44(sp)
|
||||
800001fc: fc2026f3 csrr a3,0xfc2
|
||||
80000200: fc102873 csrr a6,0xfc1
|
||||
80000204: fc002473 csrr s0,0xfc0
|
||||
80000208: cc5027f3 csrr a5,0xcc5
|
||||
8000020c: 01f00713 li a4,31
|
||||
80000210: 0cf74463 blt a4,a5,800002d8 <vx_spawn_tasks+0xf4>
|
||||
80000214: 030408b3 mul a7,s0,a6
|
||||
80000218: 00100713 li a4,1
|
||||
8000021c: 00a8d463 bge a7,a0,80000224 <vx_spawn_tasks+0x40>
|
||||
80000220: 03154733 div a4,a0,a7
|
||||
80000224: 0ce6c863 blt a3,a4,800002f4 <vx_spawn_tasks+0x110>
|
||||
80000228: 0ae7d863 bge a5,a4,800002d8 <vx_spawn_tasks+0xf4>
|
||||
8000022c: fff68693 addi a3,a3,-1
|
||||
80000230: 02e54333 div t1,a0,a4
|
||||
80000234: 00030893 mv a7,t1
|
||||
80000238: 00f69663 bne a3,a5,80000244 <vx_spawn_tasks+0x60>
|
||||
8000023c: 02e56533 rem a0,a0,a4
|
||||
80000240: 006508b3 add a7,a0,t1
|
||||
80000244: 0288c4b3 div s1,a7,s0
|
||||
80000248: 0288e933 rem s2,a7,s0
|
||||
8000024c: 0b04ca63 blt s1,a6,80000300 <vx_spawn_tasks+0x11c>
|
||||
80000250: 00100693 li a3,1
|
||||
80000254: 0304c733 div a4,s1,a6
|
||||
80000258: 00070663 beqz a4,80000264 <vx_spawn_tasks+0x80>
|
||||
8000025c: 00070693 mv a3,a4
|
||||
80000260: 0304e733 rem a4,s1,a6
|
||||
80000264: 800029b7 lui s3,0x80002
|
||||
80000268: d4c98993 addi s3,s3,-692 # 80001d4c <__stack_top+0x81001d4c>
|
||||
8000026c: 00e12e23 sw a4,28(sp)
|
||||
80000270: 00c10713 addi a4,sp,12
|
||||
80000274: 00b12623 sw a1,12(sp)
|
||||
80000278: 00c12823 sw a2,16(sp)
|
||||
8000027c: 00d12c23 sw a3,24(sp)
|
||||
80000280: 02f30333 mul t1,t1,a5
|
||||
80000284: 00279793 slli a5,a5,0x2
|
||||
80000288: 00f987b3 add a5,s3,a5
|
||||
8000028c: 00e7a023 sw a4,0(a5)
|
||||
80000290: 00612a23 sw t1,20(sp)
|
||||
80000294: 06904c63 bgtz s1,8000030c <vx_spawn_tasks+0x128>
|
||||
80000298: 04090063 beqz s2,800002d8 <vx_spawn_tasks+0xf4>
|
||||
8000029c: 02848433 mul s0,s1,s0
|
||||
800002a0: 00812a23 sw s0,20(sp)
|
||||
800002a4: 0009006b 0x9006b
|
||||
800002a8: cc5027f3 csrr a5,0xcc5
|
||||
800002ac: cc202573 csrr a0,0xcc2
|
||||
800002b0: 00279793 slli a5,a5,0x2
|
||||
800002b4: 00f989b3 add s3,s3,a5
|
||||
800002b8: 0009a783 lw a5,0(s3)
|
||||
800002bc: 0087a683 lw a3,8(a5)
|
||||
800002c0: 0007a703 lw a4,0(a5)
|
||||
800002c4: 0047a583 lw a1,4(a5)
|
||||
800002c8: 00d50533 add a0,a0,a3
|
||||
800002cc: 000700e7 jalr a4
|
||||
800002d0: 00100793 li a5,1
|
||||
800002d4: 0007806b 0x7806b
|
||||
800002d8: 03c12083 lw ra,60(sp)
|
||||
800002dc: 03812403 lw s0,56(sp)
|
||||
800002e0: 03412483 lw s1,52(sp)
|
||||
800002e4: 03012903 lw s2,48(sp)
|
||||
800002e8: 02c12983 lw s3,44(sp)
|
||||
800002ec: 04010113 addi sp,sp,64
|
||||
800002f0: 00008067 ret
|
||||
800002f4: 00068713 mv a4,a3
|
||||
800002f8: f2e7cae3 blt a5,a4,8000022c <vx_spawn_tasks+0x48>
|
||||
800002fc: fddff06f j 800002d8 <vx_spawn_tasks+0xf4>
|
||||
80000300: 00000713 li a4,0
|
||||
80000304: 00100693 li a3,1
|
||||
80000308: f5dff06f j 80000264 <vx_spawn_tasks+0x80>
|
||||
8000030c: 00048713 mv a4,s1
|
||||
80000310: 00985463 bge a6,s1,80000318 <vx_spawn_tasks+0x134>
|
||||
80000314: 00080713 mv a4,a6
|
||||
80000318: 800007b7 lui a5,0x80000
|
||||
8000031c: 12478793 addi a5,a5,292 # 80000124 <__stack_top+0x81000124>
|
||||
80000320: 00f7106b 0xf7106b
|
||||
80000324: e01ff0ef jal ra,80000124 <spawn_tasks_callback>
|
||||
80000328: f71ff06f j 80000298 <vx_spawn_tasks+0xb4>
|
||||
|
||||
8000032c <vx_perf_dump>:
|
||||
8000032c: cc5027f3 csrr a5,0xcc5
|
||||
80000330: 00ff0737 lui a4,0xff0
|
||||
80000334: 00e787b3 add a5,a5,a4
|
||||
80000338: 00879793 slli a5,a5,0x8
|
||||
8000033c: b0002773 csrr a4,mcycle
|
||||
80000340: 00e7a023 sw a4,0(a5)
|
||||
80000344: b0102773 csrr a4,0xb01
|
||||
80000348: 00e7a223 sw a4,4(a5)
|
||||
8000034c: b0202773 csrr a4,minstret
|
||||
80000350: 00e7a423 sw a4,8(a5)
|
||||
80000354: b0302773 csrr a4,mhpmcounter3
|
||||
80000358: 00e7a623 sw a4,12(a5)
|
||||
8000035c: b0402773 csrr a4,mhpmcounter4
|
||||
80000360: 00e7a823 sw a4,16(a5)
|
||||
80000364: b0502773 csrr a4,mhpmcounter5
|
||||
80000368: 00e7aa23 sw a4,20(a5)
|
||||
8000036c: b0602773 csrr a4,mhpmcounter6
|
||||
80000370: 00e7ac23 sw a4,24(a5)
|
||||
80000374: b0702773 csrr a4,mhpmcounter7
|
||||
80000378: 00e7ae23 sw a4,28(a5)
|
||||
8000037c: b0802773 csrr a4,mhpmcounter8
|
||||
80000380: 02e7a023 sw a4,32(a5)
|
||||
80000384: b0902773 csrr a4,mhpmcounter9
|
||||
80000388: 02e7a223 sw a4,36(a5)
|
||||
8000038c: b0a02773 csrr a4,mhpmcounter10
|
||||
80000390: 02e7a423 sw a4,40(a5)
|
||||
80000394: b0b02773 csrr a4,mhpmcounter11
|
||||
80000398: 02e7a623 sw a4,44(a5)
|
||||
8000039c: b0c02773 csrr a4,mhpmcounter12
|
||||
800003a0: 02e7a823 sw a4,48(a5)
|
||||
800003a4: b0d02773 csrr a4,mhpmcounter13
|
||||
800003a8: 02e7aa23 sw a4,52(a5)
|
||||
800003ac: b0e02773 csrr a4,mhpmcounter14
|
||||
800003b0: 02e7ac23 sw a4,56(a5)
|
||||
800003b4: b0f02773 csrr a4,mhpmcounter15
|
||||
800003b8: 02e7ae23 sw a4,60(a5)
|
||||
800003bc: b1002773 csrr a4,mhpmcounter16
|
||||
800003c0: 04e7a023 sw a4,64(a5)
|
||||
800003c4: b1102773 csrr a4,mhpmcounter17
|
||||
800003c8: 04e7a223 sw a4,68(a5)
|
||||
800003cc: b1202773 csrr a4,mhpmcounter18
|
||||
800003d0: 04e7a423 sw a4,72(a5)
|
||||
800003d4: b1302773 csrr a4,mhpmcounter19
|
||||
800003d8: 04e7a623 sw a4,76(a5)
|
||||
800003dc: b1402773 csrr a4,mhpmcounter20
|
||||
800003e0: 04e7a823 sw a4,80(a5)
|
||||
800003e4: b1502773 csrr a4,mhpmcounter21
|
||||
800003e8: 04e7aa23 sw a4,84(a5)
|
||||
800003ec: b1602773 csrr a4,mhpmcounter22
|
||||
800003f0: 04e7ac23 sw a4,88(a5)
|
||||
800003f4: b1702773 csrr a4,mhpmcounter23
|
||||
800003f8: 04e7ae23 sw a4,92(a5)
|
||||
800003fc: b1802773 csrr a4,mhpmcounter24
|
||||
80000400: 06e7a023 sw a4,96(a5)
|
||||
80000404: b1902773 csrr a4,mhpmcounter25
|
||||
80000408: 06e7a223 sw a4,100(a5)
|
||||
8000040c: b1a02773 csrr a4,mhpmcounter26
|
||||
80000410: 06e7a423 sw a4,104(a5)
|
||||
80000414: b1b02773 csrr a4,mhpmcounter27
|
||||
80000418: 06e7a623 sw a4,108(a5)
|
||||
8000041c: b1c02773 csrr a4,mhpmcounter28
|
||||
80000420: 06e7a823 sw a4,112(a5)
|
||||
80000424: b1d02773 csrr a4,mhpmcounter29
|
||||
80000428: 06e7aa23 sw a4,116(a5)
|
||||
8000042c: b1e02773 csrr a4,mhpmcounter30
|
||||
80000430: 06e7ac23 sw a4,120(a5)
|
||||
80000434: b1f02773 csrr a4,mhpmcounter31
|
||||
80000438: 06e7ae23 sw a4,124(a5)
|
||||
8000043c: b8002773 csrr a4,mcycleh
|
||||
80000440: 08e7a023 sw a4,128(a5)
|
||||
80000444: b8102773 csrr a4,0xb81
|
||||
80000448: 08e7a223 sw a4,132(a5)
|
||||
8000044c: b8202773 csrr a4,minstreth
|
||||
80000450: 08e7a423 sw a4,136(a5)
|
||||
80000454: b8302773 csrr a4,mhpmcounter3h
|
||||
80000458: 08e7a623 sw a4,140(a5)
|
||||
8000045c: b8402773 csrr a4,mhpmcounter4h
|
||||
80000460: 08e7a823 sw a4,144(a5)
|
||||
80000464: b8502773 csrr a4,mhpmcounter5h
|
||||
80000468: 08e7aa23 sw a4,148(a5)
|
||||
8000046c: b8602773 csrr a4,mhpmcounter6h
|
||||
80000470: 08e7ac23 sw a4,152(a5)
|
||||
80000474: b8702773 csrr a4,mhpmcounter7h
|
||||
80000478: 08e7ae23 sw a4,156(a5)
|
||||
8000047c: b8802773 csrr a4,mhpmcounter8h
|
||||
80000480: 0ae7a023 sw a4,160(a5)
|
||||
80000484: b8902773 csrr a4,mhpmcounter9h
|
||||
80000488: 0ae7a223 sw a4,164(a5)
|
||||
8000048c: b8a02773 csrr a4,mhpmcounter10h
|
||||
80000490: 0ae7a423 sw a4,168(a5)
|
||||
80000494: b8b02773 csrr a4,mhpmcounter11h
|
||||
80000498: 0ae7a623 sw a4,172(a5)
|
||||
8000049c: b8c02773 csrr a4,mhpmcounter12h
|
||||
800004a0: 0ae7a823 sw a4,176(a5)
|
||||
800004a4: b8d02773 csrr a4,mhpmcounter13h
|
||||
800004a8: 0ae7aa23 sw a4,180(a5)
|
||||
800004ac: b8e02773 csrr a4,mhpmcounter14h
|
||||
800004b0: 0ae7ac23 sw a4,184(a5)
|
||||
800004b4: b8f02773 csrr a4,mhpmcounter15h
|
||||
800004b8: 0ae7ae23 sw a4,188(a5)
|
||||
800004bc: b9002773 csrr a4,mhpmcounter16h
|
||||
800004c0: 0ce7a023 sw a4,192(a5)
|
||||
800004c4: b9102773 csrr a4,mhpmcounter17h
|
||||
800004c8: 0ce7a223 sw a4,196(a5)
|
||||
800004cc: b9202773 csrr a4,mhpmcounter18h
|
||||
800004d0: 0ce7a423 sw a4,200(a5)
|
||||
800004d4: b9302773 csrr a4,mhpmcounter19h
|
||||
800004d8: 0ce7a623 sw a4,204(a5)
|
||||
800004dc: b9402773 csrr a4,mhpmcounter20h
|
||||
800004e0: 0ce7a823 sw a4,208(a5)
|
||||
800004e4: b9502773 csrr a4,mhpmcounter21h
|
||||
800004e8: 0ce7aa23 sw a4,212(a5)
|
||||
800004ec: b9602773 csrr a4,mhpmcounter22h
|
||||
800004f0: 0ce7ac23 sw a4,216(a5)
|
||||
800004f4: b9702773 csrr a4,mhpmcounter23h
|
||||
800004f8: 0ce7ae23 sw a4,220(a5)
|
||||
800004fc: b9802773 csrr a4,mhpmcounter24h
|
||||
80000500: 0ee7a023 sw a4,224(a5)
|
||||
80000504: b9902773 csrr a4,mhpmcounter25h
|
||||
80000508: 0ee7a223 sw a4,228(a5)
|
||||
8000050c: b9a02773 csrr a4,mhpmcounter26h
|
||||
80000510: 0ee7a423 sw a4,232(a5)
|
||||
80000514: b9b02773 csrr a4,mhpmcounter27h
|
||||
80000518: 0ee7a623 sw a4,236(a5)
|
||||
8000051c: b9c02773 csrr a4,mhpmcounter28h
|
||||
80000520: 0ee7a823 sw a4,240(a5)
|
||||
80000524: b9d02773 csrr a4,mhpmcounter29h
|
||||
80000528: 0ee7aa23 sw a4,244(a5)
|
||||
8000052c: b9e02773 csrr a4,mhpmcounter30h
|
||||
80000530: 0ee7ac23 sw a4,248(a5)
|
||||
80000534: b9f02773 csrr a4,mhpmcounter31h
|
||||
80000538: 0ee7ae23 sw a4,252(a5)
|
||||
8000053c: 00008067 ret
|
||||
|
||||
80000540 <atexit>:
|
||||
80000540: 00050593 mv a1,a0
|
||||
80000544: 00000693 li a3,0
|
||||
80000548: 00000613 li a2,0
|
||||
8000054c: 00000513 li a0,0
|
||||
80000550: 20c0006f j 8000075c <__register_exitproc>
|
||||
|
||||
80000554 <exit>:
|
||||
80000554: ff010113 addi sp,sp,-16
|
||||
80000558: 00000593 li a1,0
|
||||
8000055c: 00812423 sw s0,8(sp)
|
||||
80000560: 00112623 sw ra,12(sp)
|
||||
80000564: 00050413 mv s0,a0
|
||||
80000568: 290000ef jal ra,800007f8 <__call_exitprocs>
|
||||
8000056c: 800027b7 lui a5,0x80002
|
||||
80000570: d487a503 lw a0,-696(a5) # 80001d48 <__stack_top+0x81001d48>
|
||||
80000574: 03c52783 lw a5,60(a0)
|
||||
80000578: 00078463 beqz a5,80000580 <exit+0x2c>
|
||||
8000057c: 000780e7 jalr a5
|
||||
80000580: 00040513 mv a0,s0
|
||||
80000584: b59ff0ef jal ra,800000dc <_exit>
|
||||
|
||||
80000588 <__libc_fini_array>:
|
||||
80000588: ff010113 addi sp,sp,-16
|
||||
8000058c: 00812423 sw s0,8(sp)
|
||||
80000590: 800027b7 lui a5,0x80002
|
||||
80000594: 80002437 lui s0,0x80002
|
||||
80000598: 92040413 addi s0,s0,-1760 # 80001920 <__stack_top+0x81001920>
|
||||
8000059c: 92078793 addi a5,a5,-1760 # 80001920 <__stack_top+0x81001920>
|
||||
800005a0: 408787b3 sub a5,a5,s0
|
||||
800005a4: 00912223 sw s1,4(sp)
|
||||
800005a8: 00112623 sw ra,12(sp)
|
||||
800005ac: 4027d493 srai s1,a5,0x2
|
||||
800005b0: 02048063 beqz s1,800005d0 <__libc_fini_array+0x48>
|
||||
800005b4: ffc78793 addi a5,a5,-4
|
||||
800005b8: 00878433 add s0,a5,s0
|
||||
800005bc: 00042783 lw a5,0(s0)
|
||||
800005c0: fff48493 addi s1,s1,-1
|
||||
800005c4: ffc40413 addi s0,s0,-4
|
||||
800005c8: 000780e7 jalr a5
|
||||
800005cc: fe0498e3 bnez s1,800005bc <__libc_fini_array+0x34>
|
||||
800005d0: 00c12083 lw ra,12(sp)
|
||||
800005d4: 00812403 lw s0,8(sp)
|
||||
800005d8: 00412483 lw s1,4(sp)
|
||||
800005dc: 01010113 addi sp,sp,16
|
||||
800005e0: 00008067 ret
|
||||
|
||||
800005e4 <__libc_init_array>:
|
||||
800005e4: ff010113 addi sp,sp,-16
|
||||
800005e8: 00812423 sw s0,8(sp)
|
||||
800005ec: 01212023 sw s2,0(sp)
|
||||
800005f0: 80002437 lui s0,0x80002
|
||||
800005f4: 80002937 lui s2,0x80002
|
||||
800005f8: 91c40793 addi a5,s0,-1764 # 8000191c <__stack_top+0x8100191c>
|
||||
800005fc: 91c90913 addi s2,s2,-1764 # 8000191c <__stack_top+0x8100191c>
|
||||
80000600: 40f90933 sub s2,s2,a5
|
||||
80000604: 00112623 sw ra,12(sp)
|
||||
80000608: 00912223 sw s1,4(sp)
|
||||
8000060c: 40295913 srai s2,s2,0x2
|
||||
80000610: 02090063 beqz s2,80000630 <__libc_init_array+0x4c>
|
||||
80000614: 91c40413 addi s0,s0,-1764
|
||||
80000618: 00000493 li s1,0
|
||||
8000061c: 00042783 lw a5,0(s0)
|
||||
80000620: 00148493 addi s1,s1,1
|
||||
80000624: 00440413 addi s0,s0,4
|
||||
80000628: 000780e7 jalr a5
|
||||
8000062c: fe9918e3 bne s2,s1,8000061c <__libc_init_array+0x38>
|
||||
80000630: 80002437 lui s0,0x80002
|
||||
80000634: 80002937 lui s2,0x80002
|
||||
80000638: 91c40793 addi a5,s0,-1764 # 8000191c <__stack_top+0x8100191c>
|
||||
8000063c: 92090913 addi s2,s2,-1760 # 80001920 <__stack_top+0x81001920>
|
||||
80000640: 40f90933 sub s2,s2,a5
|
||||
80000644: 40295913 srai s2,s2,0x2
|
||||
80000648: 02090063 beqz s2,80000668 <__libc_init_array+0x84>
|
||||
8000064c: 91c40413 addi s0,s0,-1764
|
||||
80000650: 00000493 li s1,0
|
||||
80000654: 00042783 lw a5,0(s0)
|
||||
80000658: 00148493 addi s1,s1,1
|
||||
8000065c: 00440413 addi s0,s0,4
|
||||
80000660: 000780e7 jalr a5
|
||||
80000664: fe9918e3 bne s2,s1,80000654 <__libc_init_array+0x70>
|
||||
80000668: 00c12083 lw ra,12(sp)
|
||||
8000066c: 00812403 lw s0,8(sp)
|
||||
80000670: 00412483 lw s1,4(sp)
|
||||
80000674: 00012903 lw s2,0(sp)
|
||||
80000678: 01010113 addi sp,sp,16
|
||||
8000067c: 00008067 ret
|
||||
|
||||
80000680 <memset>:
|
||||
80000680: 00f00313 li t1,15
|
||||
80000684: 00050713 mv a4,a0
|
||||
80000688: 02c37e63 bgeu t1,a2,800006c4 <memset+0x44>
|
||||
8000068c: 00f77793 andi a5,a4,15
|
||||
80000690: 0a079063 bnez a5,80000730 <memset+0xb0>
|
||||
80000694: 08059263 bnez a1,80000718 <memset+0x98>
|
||||
80000698: ff067693 andi a3,a2,-16
|
||||
8000069c: 00f67613 andi a2,a2,15
|
||||
800006a0: 00e686b3 add a3,a3,a4
|
||||
800006a4: 00b72023 sw a1,0(a4) # ff0000 <__stack_size+0xfefc00>
|
||||
800006a8: 00b72223 sw a1,4(a4)
|
||||
800006ac: 00b72423 sw a1,8(a4)
|
||||
800006b0: 00b72623 sw a1,12(a4)
|
||||
800006b4: 01070713 addi a4,a4,16
|
||||
800006b8: fed766e3 bltu a4,a3,800006a4 <memset+0x24>
|
||||
800006bc: 00061463 bnez a2,800006c4 <memset+0x44>
|
||||
800006c0: 00008067 ret
|
||||
800006c4: 40c306b3 sub a3,t1,a2
|
||||
800006c8: 00269693 slli a3,a3,0x2
|
||||
800006cc: 00000297 auipc t0,0x0
|
||||
800006d0: 005686b3 add a3,a3,t0
|
||||
800006d4: 00c68067 jr 12(a3)
|
||||
800006d8: 00b70723 sb a1,14(a4)
|
||||
800006dc: 00b706a3 sb a1,13(a4)
|
||||
800006e0: 00b70623 sb a1,12(a4)
|
||||
800006e4: 00b705a3 sb a1,11(a4)
|
||||
800006e8: 00b70523 sb a1,10(a4)
|
||||
800006ec: 00b704a3 sb a1,9(a4)
|
||||
800006f0: 00b70423 sb a1,8(a4)
|
||||
800006f4: 00b703a3 sb a1,7(a4)
|
||||
800006f8: 00b70323 sb a1,6(a4)
|
||||
800006fc: 00b702a3 sb a1,5(a4)
|
||||
80000700: 00b70223 sb a1,4(a4)
|
||||
80000704: 00b701a3 sb a1,3(a4)
|
||||
80000708: 00b70123 sb a1,2(a4)
|
||||
8000070c: 00b700a3 sb a1,1(a4)
|
||||
80000710: 00b70023 sb a1,0(a4)
|
||||
80000714: 00008067 ret
|
||||
80000718: 0ff5f593 andi a1,a1,255
|
||||
8000071c: 00859693 slli a3,a1,0x8
|
||||
80000720: 00d5e5b3 or a1,a1,a3
|
||||
80000724: 01059693 slli a3,a1,0x10
|
||||
80000728: 00d5e5b3 or a1,a1,a3
|
||||
8000072c: f6dff06f j 80000698 <memset+0x18>
|
||||
80000730: 00279693 slli a3,a5,0x2
|
||||
80000734: 00000297 auipc t0,0x0
|
||||
80000738: 005686b3 add a3,a3,t0
|
||||
8000073c: 00008293 mv t0,ra
|
||||
80000740: fa0680e7 jalr -96(a3)
|
||||
80000744: 00028093 mv ra,t0
|
||||
80000748: ff078793 addi a5,a5,-16
|
||||
8000074c: 40f70733 sub a4,a4,a5
|
||||
80000750: 00f60633 add a2,a2,a5
|
||||
80000754: f6c378e3 bgeu t1,a2,800006c4 <memset+0x44>
|
||||
80000758: f3dff06f j 80000694 <memset+0x14>
|
||||
|
||||
8000075c <__register_exitproc>:
|
||||
8000075c: 800027b7 lui a5,0x80002
|
||||
80000760: d487a703 lw a4,-696(a5) # 80001d48 <__stack_top+0x81001d48>
|
||||
80000764: 14872783 lw a5,328(a4)
|
||||
80000768: 04078c63 beqz a5,800007c0 <__register_exitproc+0x64>
|
||||
8000076c: 0047a703 lw a4,4(a5)
|
||||
80000770: 01f00813 li a6,31
|
||||
80000774: 06e84e63 blt a6,a4,800007f0 <__register_exitproc+0x94>
|
||||
80000778: 00271813 slli a6,a4,0x2
|
||||
8000077c: 02050663 beqz a0,800007a8 <__register_exitproc+0x4c>
|
||||
80000780: 01078333 add t1,a5,a6
|
||||
80000784: 08c32423 sw a2,136(t1)
|
||||
80000788: 1887a883 lw a7,392(a5)
|
||||
8000078c: 00100613 li a2,1
|
||||
80000790: 00e61633 sll a2,a2,a4
|
||||
80000794: 00c8e8b3 or a7,a7,a2
|
||||
80000798: 1917a423 sw a7,392(a5)
|
||||
8000079c: 10d32423 sw a3,264(t1)
|
||||
800007a0: 00200693 li a3,2
|
||||
800007a4: 02d50463 beq a0,a3,800007cc <__register_exitproc+0x70>
|
||||
800007a8: 00170713 addi a4,a4,1
|
||||
800007ac: 00e7a223 sw a4,4(a5)
|
||||
800007b0: 010787b3 add a5,a5,a6
|
||||
800007b4: 00b7a423 sw a1,8(a5)
|
||||
800007b8: 00000513 li a0,0
|
||||
800007bc: 00008067 ret
|
||||
800007c0: 14c70793 addi a5,a4,332
|
||||
800007c4: 14f72423 sw a5,328(a4)
|
||||
800007c8: fa5ff06f j 8000076c <__register_exitproc+0x10>
|
||||
800007cc: 18c7a683 lw a3,396(a5)
|
||||
800007d0: 00170713 addi a4,a4,1
|
||||
800007d4: 00e7a223 sw a4,4(a5)
|
||||
800007d8: 00c6e633 or a2,a3,a2
|
||||
800007dc: 18c7a623 sw a2,396(a5)
|
||||
800007e0: 010787b3 add a5,a5,a6
|
||||
800007e4: 00b7a423 sw a1,8(a5)
|
||||
800007e8: 00000513 li a0,0
|
||||
800007ec: 00008067 ret
|
||||
800007f0: fff00513 li a0,-1
|
||||
800007f4: 00008067 ret
|
||||
|
||||
800007f8 <__call_exitprocs>:
|
||||
800007f8: fd010113 addi sp,sp,-48
|
||||
800007fc: 800027b7 lui a5,0x80002
|
||||
80000800: 01412c23 sw s4,24(sp)
|
||||
80000804: d487aa03 lw s4,-696(a5) # 80001d48 <__stack_top+0x81001d48>
|
||||
80000808: 03212023 sw s2,32(sp)
|
||||
8000080c: 02112623 sw ra,44(sp)
|
||||
80000810: 148a2903 lw s2,328(s4)
|
||||
80000814: 02812423 sw s0,40(sp)
|
||||
80000818: 02912223 sw s1,36(sp)
|
||||
8000081c: 01312e23 sw s3,28(sp)
|
||||
80000820: 01512a23 sw s5,20(sp)
|
||||
80000824: 01612823 sw s6,16(sp)
|
||||
80000828: 01712623 sw s7,12(sp)
|
||||
8000082c: 01812423 sw s8,8(sp)
|
||||
80000830: 04090063 beqz s2,80000870 <__call_exitprocs+0x78>
|
||||
80000834: 00050b13 mv s6,a0
|
||||
80000838: 00058b93 mv s7,a1
|
||||
8000083c: 00100a93 li s5,1
|
||||
80000840: fff00993 li s3,-1
|
||||
80000844: 00492483 lw s1,4(s2)
|
||||
80000848: fff48413 addi s0,s1,-1
|
||||
8000084c: 02044263 bltz s0,80000870 <__call_exitprocs+0x78>
|
||||
80000850: 00249493 slli s1,s1,0x2
|
||||
80000854: 009904b3 add s1,s2,s1
|
||||
80000858: 040b8463 beqz s7,800008a0 <__call_exitprocs+0xa8>
|
||||
8000085c: 1044a783 lw a5,260(s1)
|
||||
80000860: 05778063 beq a5,s7,800008a0 <__call_exitprocs+0xa8>
|
||||
80000864: fff40413 addi s0,s0,-1
|
||||
80000868: ffc48493 addi s1,s1,-4
|
||||
8000086c: ff3416e3 bne s0,s3,80000858 <__call_exitprocs+0x60>
|
||||
80000870: 02c12083 lw ra,44(sp)
|
||||
80000874: 02812403 lw s0,40(sp)
|
||||
80000878: 02412483 lw s1,36(sp)
|
||||
8000087c: 02012903 lw s2,32(sp)
|
||||
80000880: 01c12983 lw s3,28(sp)
|
||||
80000884: 01812a03 lw s4,24(sp)
|
||||
80000888: 01412a83 lw s5,20(sp)
|
||||
8000088c: 01012b03 lw s6,16(sp)
|
||||
80000890: 00c12b83 lw s7,12(sp)
|
||||
80000894: 00812c03 lw s8,8(sp)
|
||||
80000898: 03010113 addi sp,sp,48
|
||||
8000089c: 00008067 ret
|
||||
800008a0: 00492783 lw a5,4(s2)
|
||||
800008a4: 0044a683 lw a3,4(s1)
|
||||
800008a8: fff78793 addi a5,a5,-1
|
||||
800008ac: 04878e63 beq a5,s0,80000908 <__call_exitprocs+0x110>
|
||||
800008b0: 0004a223 sw zero,4(s1)
|
||||
800008b4: fa0688e3 beqz a3,80000864 <__call_exitprocs+0x6c>
|
||||
800008b8: 18892783 lw a5,392(s2)
|
||||
800008bc: 008a9733 sll a4,s5,s0
|
||||
800008c0: 00492c03 lw s8,4(s2)
|
||||
800008c4: 00f777b3 and a5,a4,a5
|
||||
800008c8: 02079263 bnez a5,800008ec <__call_exitprocs+0xf4>
|
||||
800008cc: 000680e7 jalr a3
|
||||
800008d0: 00492703 lw a4,4(s2)
|
||||
800008d4: 148a2783 lw a5,328(s4)
|
||||
800008d8: 01871463 bne a4,s8,800008e0 <__call_exitprocs+0xe8>
|
||||
800008dc: f92784e3 beq a5,s2,80000864 <__call_exitprocs+0x6c>
|
||||
800008e0: f80788e3 beqz a5,80000870 <__call_exitprocs+0x78>
|
||||
800008e4: 00078913 mv s2,a5
|
||||
800008e8: f5dff06f j 80000844 <__call_exitprocs+0x4c>
|
||||
800008ec: 18c92783 lw a5,396(s2)
|
||||
800008f0: 0844a583 lw a1,132(s1)
|
||||
800008f4: 00f77733 and a4,a4,a5
|
||||
800008f8: 00071c63 bnez a4,80000910 <__call_exitprocs+0x118>
|
||||
800008fc: 000b0513 mv a0,s6
|
||||
80000900: 000680e7 jalr a3
|
||||
80000904: fcdff06f j 800008d0 <__call_exitprocs+0xd8>
|
||||
80000908: 00892223 sw s0,4(s2)
|
||||
8000090c: fa9ff06f j 800008b4 <__call_exitprocs+0xbc>
|
||||
80000910: 00058513 mv a0,a1
|
||||
80000914: 000680e7 jalr a3
|
||||
80000918: fb9ff06f j 800008d0 <__call_exitprocs+0xd8>
|
||||
|
||||
Disassembly of section .init_array:
|
||||
|
||||
8000191c <__init_array_start>:
|
||||
8000191c: 0068 addi a0,sp,12
|
||||
8000191e: 8000 0x8000
|
||||
|
||||
Disassembly of section .data:
|
||||
|
||||
80001920 <impure_data>:
|
||||
80001920: 0000 unimp
|
||||
80001922: 0000 unimp
|
||||
80001924: 1c0c addi a1,sp,560
|
||||
80001926: 8000 0x8000
|
||||
80001928: 1c74 addi a3,sp,572
|
||||
8000192a: 8000 0x8000
|
||||
8000192c: 1cdc addi a5,sp,628
|
||||
8000192e: 8000 0x8000
|
||||
...
|
||||
800019c8: 0001 nop
|
||||
800019ca: 0000 unimp
|
||||
800019cc: 0000 unimp
|
||||
800019ce: 0000 unimp
|
||||
800019d0: 330e fld ft6,224(sp)
|
||||
800019d2: abcd j 80001fc4 <__BSS_END__+0x1f8>
|
||||
800019d4: 1234 addi a3,sp,296
|
||||
800019d6: e66d bnez a2,80001ac0 <impure_data+0x1a0>
|
||||
800019d8: deec sw a1,124(a3)
|
||||
800019da: 0005 c.nop 1
|
||||
800019dc: 0000000b 0xb
|
||||
...
|
||||
|
||||
Disassembly of section .sdata:
|
||||
|
||||
80001d48 <_global_impure_ptr>:
|
||||
80001d48: 1920 addi s0,sp,184
|
||||
80001d4a: 8000 0x8000
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
80001d4c <g_wspawn_args>:
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3120 fld fs0,96(a0)
|
||||
c: 2e30 fld fa2,88(a2)
|
||||
e: 2e32 fld ft8,264(sp)
|
||||
10: 0030 addi a2,sp,8
|
||||
|
||||
Disassembly of section .riscv.attributes:
|
||||
|
||||
00000000 <.riscv.attributes>:
|
||||
0: 2941 jal 490 <__stack_size+0x90>
|
||||
2: 0000 unimp
|
||||
4: 7200 flw fs0,32(a2)
|
||||
6: 7369 lui t1,0xffffa
|
||||
8: 01007663 bgeu zero,a6,14 <__stack_usage+0x14>
|
||||
c: 001f 0000 1004 0x10040000001f
|
||||
12: 7205 lui tp,0xfffe1
|
||||
14: 3376 fld ft6,376(sp)
|
||||
16: 6932 flw fs2,12(sp)
|
||||
18: 7032 flw ft0,44(sp)
|
||||
1a: 5f30 lw a2,120(a4)
|
||||
1c: 326d jal fffff9c6 <__stack_top+0xfff9c6>
|
||||
1e: 3070 fld fa2,224(s0)
|
||||
20: 665f 7032 0030 0x307032665f
|
||||
26: 0108 addi a0,sp,128
|
||||
28: 0b0a slli s6,s6,0x2
|
Binary file not shown.
Binary file not shown.
|
@ -1,682 +0,0 @@
|
|||
|
||||
kernel.elf: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .init:
|
||||
|
||||
80000000 <_start>:
|
||||
80000000: 00000597 auipc a1,0x0
|
||||
80000004: 0b058593 addi a1,a1,176 # 800000b0 <vx_set_sp>
|
||||
80000008: fc102573 csrr a0,0xfc1
|
||||
8000000c: 00b5106b 0xb5106b
|
||||
80000010: 0a0000ef jal ra,800000b0 <vx_set_sp>
|
||||
80000014: 00100513 li a0,1
|
||||
80000018: 0005006b 0x5006b
|
||||
8000001c: 00002517 auipc a0,0x2
|
||||
80000020: cf850513 addi a0,a0,-776 # 80001d14 <g_wspawn_args>
|
||||
80000024: 00002617 auipc a2,0x2
|
||||
80000028: d7060613 addi a2,a2,-656 # 80001d94 <__BSS_END__>
|
||||
8000002c: 40a60633 sub a2,a2,a0
|
||||
80000030: 00000593 li a1,0
|
||||
80000034: 614000ef jal ra,80000648 <memset>
|
||||
80000038: 00000517 auipc a0,0x0
|
||||
8000003c: 51850513 addi a0,a0,1304 # 80000550 <__libc_fini_array>
|
||||
80000040: 4c8000ef jal ra,80000508 <atexit>
|
||||
80000044: 568000ef jal ra,800005ac <__libc_init_array>
|
||||
80000048: 008000ef jal ra,80000050 <main>
|
||||
8000004c: 4d00006f j 8000051c <exit>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
80000050 <main>:
|
||||
80000050: 7ffff7b7 lui a5,0x7ffff
|
||||
80000054: 0007a503 lw a0,0(a5) # 7ffff000 <__stack_size+0x7fffec00>
|
||||
80000058: 800005b7 lui a1,0x80000
|
||||
8000005c: 7ffff637 lui a2,0x7ffff
|
||||
80000060: 08058593 addi a1,a1,128 # 80000080 <__stack_top+0x81000080>
|
||||
80000064: 1480006f j 800001ac <vx_spawn_tasks>
|
||||
|
||||
80000068 <register_fini>:
|
||||
80000068: 00000793 li a5,0
|
||||
8000006c: 00078863 beqz a5,8000007c <register_fini+0x14>
|
||||
80000070: 80000537 lui a0,0x80000
|
||||
80000074: 55050513 addi a0,a0,1360 # 80000550 <__stack_top+0x81000550>
|
||||
80000078: 4900006f j 80000508 <atexit>
|
||||
8000007c: 00008067 ret
|
||||
|
||||
80000080 <kernel_body>:
|
||||
80000080: 0045a783 lw a5,4(a1)
|
||||
80000084: 00251513 slli a0,a0,0x2
|
||||
80000088: 00a787b3 add a5,a5,a0
|
||||
8000008c: 0007a703 lw a4,0(a5)
|
||||
80000090: 0085a783 lw a5,8(a1)
|
||||
80000094: 00072703 lw a4,0(a4)
|
||||
80000098: 00a78533 add a0,a5,a0
|
||||
8000009c: 00e52023 sw a4,0(a0)
|
||||
800000a0: 00008067 ret
|
||||
|
||||
800000a4 <_exit>:
|
||||
800000a4: 250000ef jal ra,800002f4 <vx_perf_dump>
|
||||
800000a8: 00000513 li a0,0
|
||||
800000ac: 0005006b 0x5006b
|
||||
|
||||
800000b0 <vx_set_sp>:
|
||||
800000b0: fc002573 csrr a0,0xfc0
|
||||
800000b4: 0005006b 0x5006b
|
||||
800000b8: 00002197 auipc gp,0x2
|
||||
800000bc: 03018193 addi gp,gp,48 # 800020e8 <__global_pointer>
|
||||
800000c0: 7f000117 auipc sp,0x7f000
|
||||
800000c4: f4010113 addi sp,sp,-192 # ff000000 <__stack_top>
|
||||
800000c8: 40000593 li a1,1024
|
||||
800000cc: cc102673 csrr a2,0xcc1
|
||||
800000d0: 02c585b3 mul a1,a1,a2
|
||||
800000d4: 40b10133 sub sp,sp,a1
|
||||
800000d8: cc3026f3 csrr a3,0xcc3
|
||||
800000dc: 00068663 beqz a3,800000e8 <RETURN>
|
||||
800000e0: 00000513 li a0,0
|
||||
800000e4: 0005006b 0x5006b
|
||||
|
||||
800000e8 <RETURN>:
|
||||
800000e8: 00008067 ret
|
||||
|
||||
800000ec <spawn_tasks_callback>:
|
||||
800000ec: fe010113 addi sp,sp,-32
|
||||
800000f0: 00112e23 sw ra,28(sp)
|
||||
800000f4: 00812c23 sw s0,24(sp)
|
||||
800000f8: 00912a23 sw s1,20(sp)
|
||||
800000fc: 01212823 sw s2,16(sp)
|
||||
80000100: 01312623 sw s3,12(sp)
|
||||
80000104: fc0027f3 csrr a5,0xfc0
|
||||
80000108: 0007806b 0x7806b
|
||||
8000010c: cc5026f3 csrr a3,0xcc5
|
||||
80000110: cc3029f3 csrr s3,0xcc3
|
||||
80000114: cc002773 csrr a4,0xcc0
|
||||
80000118: fc002673 csrr a2,0xfc0
|
||||
8000011c: 800027b7 lui a5,0x80002
|
||||
80000120: 00269693 slli a3,a3,0x2
|
||||
80000124: d1478793 addi a5,a5,-748 # 80001d14 <__stack_top+0x81001d14>
|
||||
80000128: 00d787b3 add a5,a5,a3
|
||||
8000012c: 0007a483 lw s1,0(a5)
|
||||
80000130: 0104a403 lw s0,16(s1)
|
||||
80000134: 00c4a683 lw a3,12(s1)
|
||||
80000138: 0089a933 slt s2,s3,s0
|
||||
8000013c: 00040793 mv a5,s0
|
||||
80000140: 00d90933 add s2,s2,a3
|
||||
80000144: 03368433 mul s0,a3,s3
|
||||
80000148: 00f9d463 bge s3,a5,80000150 <spawn_tasks_callback+0x64>
|
||||
8000014c: 00098793 mv a5,s3
|
||||
80000150: 00f40433 add s0,s0,a5
|
||||
80000154: 0084a683 lw a3,8(s1)
|
||||
80000158: 02c40433 mul s0,s0,a2
|
||||
8000015c: 02e907b3 mul a5,s2,a4
|
||||
80000160: 00d40433 add s0,s0,a3
|
||||
80000164: 00f40433 add s0,s0,a5
|
||||
80000168: 00890933 add s2,s2,s0
|
||||
8000016c: 01245e63 bge s0,s2,80000188 <spawn_tasks_callback+0x9c>
|
||||
80000170: 0004a783 lw a5,0(s1)
|
||||
80000174: 0044a583 lw a1,4(s1)
|
||||
80000178: 00040513 mv a0,s0
|
||||
8000017c: 00140413 addi s0,s0,1
|
||||
80000180: 000780e7 jalr a5
|
||||
80000184: fe8916e3 bne s2,s0,80000170 <spawn_tasks_callback+0x84>
|
||||
80000188: 0019b993 seqz s3,s3
|
||||
8000018c: 0009806b 0x9806b
|
||||
80000190: 01c12083 lw ra,28(sp)
|
||||
80000194: 01812403 lw s0,24(sp)
|
||||
80000198: 01412483 lw s1,20(sp)
|
||||
8000019c: 01012903 lw s2,16(sp)
|
||||
800001a0: 00c12983 lw s3,12(sp)
|
||||
800001a4: 02010113 addi sp,sp,32
|
||||
800001a8: 00008067 ret
|
||||
|
||||
800001ac <vx_spawn_tasks>:
|
||||
800001ac: fc010113 addi sp,sp,-64
|
||||
800001b0: 02112e23 sw ra,60(sp)
|
||||
800001b4: 02812c23 sw s0,56(sp)
|
||||
800001b8: 02912a23 sw s1,52(sp)
|
||||
800001bc: 03212823 sw s2,48(sp)
|
||||
800001c0: 03312623 sw s3,44(sp)
|
||||
800001c4: fc2026f3 csrr a3,0xfc2
|
||||
800001c8: fc102873 csrr a6,0xfc1
|
||||
800001cc: fc002473 csrr s0,0xfc0
|
||||
800001d0: cc5027f3 csrr a5,0xcc5
|
||||
800001d4: 01f00713 li a4,31
|
||||
800001d8: 0cf74463 blt a4,a5,800002a0 <vx_spawn_tasks+0xf4>
|
||||
800001dc: 030408b3 mul a7,s0,a6
|
||||
800001e0: 00100713 li a4,1
|
||||
800001e4: 00a8d463 bge a7,a0,800001ec <vx_spawn_tasks+0x40>
|
||||
800001e8: 03154733 div a4,a0,a7
|
||||
800001ec: 0ce6c863 blt a3,a4,800002bc <vx_spawn_tasks+0x110>
|
||||
800001f0: 0ae7d863 bge a5,a4,800002a0 <vx_spawn_tasks+0xf4>
|
||||
800001f4: fff68693 addi a3,a3,-1
|
||||
800001f8: 02e54333 div t1,a0,a4
|
||||
800001fc: 00030893 mv a7,t1
|
||||
80000200: 00f69663 bne a3,a5,8000020c <vx_spawn_tasks+0x60>
|
||||
80000204: 02e56533 rem a0,a0,a4
|
||||
80000208: 006508b3 add a7,a0,t1
|
||||
8000020c: 0288c4b3 div s1,a7,s0
|
||||
80000210: 0288e933 rem s2,a7,s0
|
||||
80000214: 0b04ca63 blt s1,a6,800002c8 <vx_spawn_tasks+0x11c>
|
||||
80000218: 00100693 li a3,1
|
||||
8000021c: 0304c733 div a4,s1,a6
|
||||
80000220: 00070663 beqz a4,8000022c <vx_spawn_tasks+0x80>
|
||||
80000224: 00070693 mv a3,a4
|
||||
80000228: 0304e733 rem a4,s1,a6
|
||||
8000022c: 800029b7 lui s3,0x80002
|
||||
80000230: d1498993 addi s3,s3,-748 # 80001d14 <__stack_top+0x81001d14>
|
||||
80000234: 00e12e23 sw a4,28(sp)
|
||||
80000238: 00c10713 addi a4,sp,12
|
||||
8000023c: 00b12623 sw a1,12(sp)
|
||||
80000240: 00c12823 sw a2,16(sp)
|
||||
80000244: 00d12c23 sw a3,24(sp)
|
||||
80000248: 02f30333 mul t1,t1,a5
|
||||
8000024c: 00279793 slli a5,a5,0x2
|
||||
80000250: 00f987b3 add a5,s3,a5
|
||||
80000254: 00e7a023 sw a4,0(a5)
|
||||
80000258: 00612a23 sw t1,20(sp)
|
||||
8000025c: 06904c63 bgtz s1,800002d4 <vx_spawn_tasks+0x128>
|
||||
80000260: 04090063 beqz s2,800002a0 <vx_spawn_tasks+0xf4>
|
||||
80000264: 02848433 mul s0,s1,s0
|
||||
80000268: 00812a23 sw s0,20(sp)
|
||||
8000026c: 0009006b 0x9006b
|
||||
80000270: cc5027f3 csrr a5,0xcc5
|
||||
80000274: cc202573 csrr a0,0xcc2
|
||||
80000278: 00279793 slli a5,a5,0x2
|
||||
8000027c: 00f989b3 add s3,s3,a5
|
||||
80000280: 0009a783 lw a5,0(s3)
|
||||
80000284: 0087a683 lw a3,8(a5)
|
||||
80000288: 0007a703 lw a4,0(a5)
|
||||
8000028c: 0047a583 lw a1,4(a5)
|
||||
80000290: 00d50533 add a0,a0,a3
|
||||
80000294: 000700e7 jalr a4
|
||||
80000298: 00100793 li a5,1
|
||||
8000029c: 0007806b 0x7806b
|
||||
800002a0: 03c12083 lw ra,60(sp)
|
||||
800002a4: 03812403 lw s0,56(sp)
|
||||
800002a8: 03412483 lw s1,52(sp)
|
||||
800002ac: 03012903 lw s2,48(sp)
|
||||
800002b0: 02c12983 lw s3,44(sp)
|
||||
800002b4: 04010113 addi sp,sp,64
|
||||
800002b8: 00008067 ret
|
||||
800002bc: 00068713 mv a4,a3
|
||||
800002c0: f2e7cae3 blt a5,a4,800001f4 <vx_spawn_tasks+0x48>
|
||||
800002c4: fddff06f j 800002a0 <vx_spawn_tasks+0xf4>
|
||||
800002c8: 00000713 li a4,0
|
||||
800002cc: 00100693 li a3,1
|
||||
800002d0: f5dff06f j 8000022c <vx_spawn_tasks+0x80>
|
||||
800002d4: 00048713 mv a4,s1
|
||||
800002d8: 00985463 bge a6,s1,800002e0 <vx_spawn_tasks+0x134>
|
||||
800002dc: 00080713 mv a4,a6
|
||||
800002e0: 800007b7 lui a5,0x80000
|
||||
800002e4: 0ec78793 addi a5,a5,236 # 800000ec <__stack_top+0x810000ec>
|
||||
800002e8: 00f7106b 0xf7106b
|
||||
800002ec: e01ff0ef jal ra,800000ec <spawn_tasks_callback>
|
||||
800002f0: f71ff06f j 80000260 <vx_spawn_tasks+0xb4>
|
||||
|
||||
800002f4 <vx_perf_dump>:
|
||||
800002f4: cc5027f3 csrr a5,0xcc5
|
||||
800002f8: 00ff0737 lui a4,0xff0
|
||||
800002fc: 00e787b3 add a5,a5,a4
|
||||
80000300: 00879793 slli a5,a5,0x8
|
||||
80000304: b0002773 csrr a4,mcycle
|
||||
80000308: 00e7a023 sw a4,0(a5)
|
||||
8000030c: b0102773 csrr a4,0xb01
|
||||
80000310: 00e7a223 sw a4,4(a5)
|
||||
80000314: b0202773 csrr a4,minstret
|
||||
80000318: 00e7a423 sw a4,8(a5)
|
||||
8000031c: b0302773 csrr a4,mhpmcounter3
|
||||
80000320: 00e7a623 sw a4,12(a5)
|
||||
80000324: b0402773 csrr a4,mhpmcounter4
|
||||
80000328: 00e7a823 sw a4,16(a5)
|
||||
8000032c: b0502773 csrr a4,mhpmcounter5
|
||||
80000330: 00e7aa23 sw a4,20(a5)
|
||||
80000334: b0602773 csrr a4,mhpmcounter6
|
||||
80000338: 00e7ac23 sw a4,24(a5)
|
||||
8000033c: b0702773 csrr a4,mhpmcounter7
|
||||
80000340: 00e7ae23 sw a4,28(a5)
|
||||
80000344: b0802773 csrr a4,mhpmcounter8
|
||||
80000348: 02e7a023 sw a4,32(a5)
|
||||
8000034c: b0902773 csrr a4,mhpmcounter9
|
||||
80000350: 02e7a223 sw a4,36(a5)
|
||||
80000354: b0a02773 csrr a4,mhpmcounter10
|
||||
80000358: 02e7a423 sw a4,40(a5)
|
||||
8000035c: b0b02773 csrr a4,mhpmcounter11
|
||||
80000360: 02e7a623 sw a4,44(a5)
|
||||
80000364: b0c02773 csrr a4,mhpmcounter12
|
||||
80000368: 02e7a823 sw a4,48(a5)
|
||||
8000036c: b0d02773 csrr a4,mhpmcounter13
|
||||
80000370: 02e7aa23 sw a4,52(a5)
|
||||
80000374: b0e02773 csrr a4,mhpmcounter14
|
||||
80000378: 02e7ac23 sw a4,56(a5)
|
||||
8000037c: b0f02773 csrr a4,mhpmcounter15
|
||||
80000380: 02e7ae23 sw a4,60(a5)
|
||||
80000384: b1002773 csrr a4,mhpmcounter16
|
||||
80000388: 04e7a023 sw a4,64(a5)
|
||||
8000038c: b1102773 csrr a4,mhpmcounter17
|
||||
80000390: 04e7a223 sw a4,68(a5)
|
||||
80000394: b1202773 csrr a4,mhpmcounter18
|
||||
80000398: 04e7a423 sw a4,72(a5)
|
||||
8000039c: b1302773 csrr a4,mhpmcounter19
|
||||
800003a0: 04e7a623 sw a4,76(a5)
|
||||
800003a4: b1402773 csrr a4,mhpmcounter20
|
||||
800003a8: 04e7a823 sw a4,80(a5)
|
||||
800003ac: b1502773 csrr a4,mhpmcounter21
|
||||
800003b0: 04e7aa23 sw a4,84(a5)
|
||||
800003b4: b1602773 csrr a4,mhpmcounter22
|
||||
800003b8: 04e7ac23 sw a4,88(a5)
|
||||
800003bc: b1702773 csrr a4,mhpmcounter23
|
||||
800003c0: 04e7ae23 sw a4,92(a5)
|
||||
800003c4: b1802773 csrr a4,mhpmcounter24
|
||||
800003c8: 06e7a023 sw a4,96(a5)
|
||||
800003cc: b1902773 csrr a4,mhpmcounter25
|
||||
800003d0: 06e7a223 sw a4,100(a5)
|
||||
800003d4: b1a02773 csrr a4,mhpmcounter26
|
||||
800003d8: 06e7a423 sw a4,104(a5)
|
||||
800003dc: b1b02773 csrr a4,mhpmcounter27
|
||||
800003e0: 06e7a623 sw a4,108(a5)
|
||||
800003e4: b1c02773 csrr a4,mhpmcounter28
|
||||
800003e8: 06e7a823 sw a4,112(a5)
|
||||
800003ec: b1d02773 csrr a4,mhpmcounter29
|
||||
800003f0: 06e7aa23 sw a4,116(a5)
|
||||
800003f4: b1e02773 csrr a4,mhpmcounter30
|
||||
800003f8: 06e7ac23 sw a4,120(a5)
|
||||
800003fc: b1f02773 csrr a4,mhpmcounter31
|
||||
80000400: 06e7ae23 sw a4,124(a5)
|
||||
80000404: b8002773 csrr a4,mcycleh
|
||||
80000408: 08e7a023 sw a4,128(a5)
|
||||
8000040c: b8102773 csrr a4,0xb81
|
||||
80000410: 08e7a223 sw a4,132(a5)
|
||||
80000414: b8202773 csrr a4,minstreth
|
||||
80000418: 08e7a423 sw a4,136(a5)
|
||||
8000041c: b8302773 csrr a4,mhpmcounter3h
|
||||
80000420: 08e7a623 sw a4,140(a5)
|
||||
80000424: b8402773 csrr a4,mhpmcounter4h
|
||||
80000428: 08e7a823 sw a4,144(a5)
|
||||
8000042c: b8502773 csrr a4,mhpmcounter5h
|
||||
80000430: 08e7aa23 sw a4,148(a5)
|
||||
80000434: b8602773 csrr a4,mhpmcounter6h
|
||||
80000438: 08e7ac23 sw a4,152(a5)
|
||||
8000043c: b8702773 csrr a4,mhpmcounter7h
|
||||
80000440: 08e7ae23 sw a4,156(a5)
|
||||
80000444: b8802773 csrr a4,mhpmcounter8h
|
||||
80000448: 0ae7a023 sw a4,160(a5)
|
||||
8000044c: b8902773 csrr a4,mhpmcounter9h
|
||||
80000450: 0ae7a223 sw a4,164(a5)
|
||||
80000454: b8a02773 csrr a4,mhpmcounter10h
|
||||
80000458: 0ae7a423 sw a4,168(a5)
|
||||
8000045c: b8b02773 csrr a4,mhpmcounter11h
|
||||
80000460: 0ae7a623 sw a4,172(a5)
|
||||
80000464: b8c02773 csrr a4,mhpmcounter12h
|
||||
80000468: 0ae7a823 sw a4,176(a5)
|
||||
8000046c: b8d02773 csrr a4,mhpmcounter13h
|
||||
80000470: 0ae7aa23 sw a4,180(a5)
|
||||
80000474: b8e02773 csrr a4,mhpmcounter14h
|
||||
80000478: 0ae7ac23 sw a4,184(a5)
|
||||
8000047c: b8f02773 csrr a4,mhpmcounter15h
|
||||
80000480: 0ae7ae23 sw a4,188(a5)
|
||||
80000484: b9002773 csrr a4,mhpmcounter16h
|
||||
80000488: 0ce7a023 sw a4,192(a5)
|
||||
8000048c: b9102773 csrr a4,mhpmcounter17h
|
||||
80000490: 0ce7a223 sw a4,196(a5)
|
||||
80000494: b9202773 csrr a4,mhpmcounter18h
|
||||
80000498: 0ce7a423 sw a4,200(a5)
|
||||
8000049c: b9302773 csrr a4,mhpmcounter19h
|
||||
800004a0: 0ce7a623 sw a4,204(a5)
|
||||
800004a4: b9402773 csrr a4,mhpmcounter20h
|
||||
800004a8: 0ce7a823 sw a4,208(a5)
|
||||
800004ac: b9502773 csrr a4,mhpmcounter21h
|
||||
800004b0: 0ce7aa23 sw a4,212(a5)
|
||||
800004b4: b9602773 csrr a4,mhpmcounter22h
|
||||
800004b8: 0ce7ac23 sw a4,216(a5)
|
||||
800004bc: b9702773 csrr a4,mhpmcounter23h
|
||||
800004c0: 0ce7ae23 sw a4,220(a5)
|
||||
800004c4: b9802773 csrr a4,mhpmcounter24h
|
||||
800004c8: 0ee7a023 sw a4,224(a5)
|
||||
800004cc: b9902773 csrr a4,mhpmcounter25h
|
||||
800004d0: 0ee7a223 sw a4,228(a5)
|
||||
800004d4: b9a02773 csrr a4,mhpmcounter26h
|
||||
800004d8: 0ee7a423 sw a4,232(a5)
|
||||
800004dc: b9b02773 csrr a4,mhpmcounter27h
|
||||
800004e0: 0ee7a623 sw a4,236(a5)
|
||||
800004e4: b9c02773 csrr a4,mhpmcounter28h
|
||||
800004e8: 0ee7a823 sw a4,240(a5)
|
||||
800004ec: b9d02773 csrr a4,mhpmcounter29h
|
||||
800004f0: 0ee7aa23 sw a4,244(a5)
|
||||
800004f4: b9e02773 csrr a4,mhpmcounter30h
|
||||
800004f8: 0ee7ac23 sw a4,248(a5)
|
||||
800004fc: b9f02773 csrr a4,mhpmcounter31h
|
||||
80000500: 0ee7ae23 sw a4,252(a5)
|
||||
80000504: 00008067 ret
|
||||
|
||||
80000508 <atexit>:
|
||||
80000508: 00050593 mv a1,a0
|
||||
8000050c: 00000693 li a3,0
|
||||
80000510: 00000613 li a2,0
|
||||
80000514: 00000513 li a0,0
|
||||
80000518: 20c0006f j 80000724 <__register_exitproc>
|
||||
|
||||
8000051c <exit>:
|
||||
8000051c: ff010113 addi sp,sp,-16
|
||||
80000520: 00000593 li a1,0
|
||||
80000524: 00812423 sw s0,8(sp)
|
||||
80000528: 00112623 sw ra,12(sp)
|
||||
8000052c: 00050413 mv s0,a0
|
||||
80000530: 290000ef jal ra,800007c0 <__call_exitprocs>
|
||||
80000534: 800027b7 lui a5,0x80002
|
||||
80000538: d107a503 lw a0,-752(a5) # 80001d10 <__stack_top+0x81001d10>
|
||||
8000053c: 03c52783 lw a5,60(a0)
|
||||
80000540: 00078463 beqz a5,80000548 <exit+0x2c>
|
||||
80000544: 000780e7 jalr a5
|
||||
80000548: 00040513 mv a0,s0
|
||||
8000054c: b59ff0ef jal ra,800000a4 <_exit>
|
||||
|
||||
80000550 <__libc_fini_array>:
|
||||
80000550: ff010113 addi sp,sp,-16
|
||||
80000554: 00812423 sw s0,8(sp)
|
||||
80000558: 800027b7 lui a5,0x80002
|
||||
8000055c: 80002437 lui s0,0x80002
|
||||
80000560: 8e840413 addi s0,s0,-1816 # 800018e8 <__stack_top+0x810018e8>
|
||||
80000564: 8e878793 addi a5,a5,-1816 # 800018e8 <__stack_top+0x810018e8>
|
||||
80000568: 408787b3 sub a5,a5,s0
|
||||
8000056c: 00912223 sw s1,4(sp)
|
||||
80000570: 00112623 sw ra,12(sp)
|
||||
80000574: 4027d493 srai s1,a5,0x2
|
||||
80000578: 02048063 beqz s1,80000598 <__libc_fini_array+0x48>
|
||||
8000057c: ffc78793 addi a5,a5,-4
|
||||
80000580: 00878433 add s0,a5,s0
|
||||
80000584: 00042783 lw a5,0(s0)
|
||||
80000588: fff48493 addi s1,s1,-1
|
||||
8000058c: ffc40413 addi s0,s0,-4
|
||||
80000590: 000780e7 jalr a5
|
||||
80000594: fe0498e3 bnez s1,80000584 <__libc_fini_array+0x34>
|
||||
80000598: 00c12083 lw ra,12(sp)
|
||||
8000059c: 00812403 lw s0,8(sp)
|
||||
800005a0: 00412483 lw s1,4(sp)
|
||||
800005a4: 01010113 addi sp,sp,16
|
||||
800005a8: 00008067 ret
|
||||
|
||||
800005ac <__libc_init_array>:
|
||||
800005ac: ff010113 addi sp,sp,-16
|
||||
800005b0: 00812423 sw s0,8(sp)
|
||||
800005b4: 01212023 sw s2,0(sp)
|
||||
800005b8: 80002437 lui s0,0x80002
|
||||
800005bc: 80002937 lui s2,0x80002
|
||||
800005c0: 8e440793 addi a5,s0,-1820 # 800018e4 <__stack_top+0x810018e4>
|
||||
800005c4: 8e490913 addi s2,s2,-1820 # 800018e4 <__stack_top+0x810018e4>
|
||||
800005c8: 40f90933 sub s2,s2,a5
|
||||
800005cc: 00112623 sw ra,12(sp)
|
||||
800005d0: 00912223 sw s1,4(sp)
|
||||
800005d4: 40295913 srai s2,s2,0x2
|
||||
800005d8: 02090063 beqz s2,800005f8 <__libc_init_array+0x4c>
|
||||
800005dc: 8e440413 addi s0,s0,-1820
|
||||
800005e0: 00000493 li s1,0
|
||||
800005e4: 00042783 lw a5,0(s0)
|
||||
800005e8: 00148493 addi s1,s1,1
|
||||
800005ec: 00440413 addi s0,s0,4
|
||||
800005f0: 000780e7 jalr a5
|
||||
800005f4: fe9918e3 bne s2,s1,800005e4 <__libc_init_array+0x38>
|
||||
800005f8: 80002437 lui s0,0x80002
|
||||
800005fc: 80002937 lui s2,0x80002
|
||||
80000600: 8e440793 addi a5,s0,-1820 # 800018e4 <__stack_top+0x810018e4>
|
||||
80000604: 8e890913 addi s2,s2,-1816 # 800018e8 <__stack_top+0x810018e8>
|
||||
80000608: 40f90933 sub s2,s2,a5
|
||||
8000060c: 40295913 srai s2,s2,0x2
|
||||
80000610: 02090063 beqz s2,80000630 <__libc_init_array+0x84>
|
||||
80000614: 8e440413 addi s0,s0,-1820
|
||||
80000618: 00000493 li s1,0
|
||||
8000061c: 00042783 lw a5,0(s0)
|
||||
80000620: 00148493 addi s1,s1,1
|
||||
80000624: 00440413 addi s0,s0,4
|
||||
80000628: 000780e7 jalr a5
|
||||
8000062c: fe9918e3 bne s2,s1,8000061c <__libc_init_array+0x70>
|
||||
80000630: 00c12083 lw ra,12(sp)
|
||||
80000634: 00812403 lw s0,8(sp)
|
||||
80000638: 00412483 lw s1,4(sp)
|
||||
8000063c: 00012903 lw s2,0(sp)
|
||||
80000640: 01010113 addi sp,sp,16
|
||||
80000644: 00008067 ret
|
||||
|
||||
80000648 <memset>:
|
||||
80000648: 00f00313 li t1,15
|
||||
8000064c: 00050713 mv a4,a0
|
||||
80000650: 02c37e63 bgeu t1,a2,8000068c <memset+0x44>
|
||||
80000654: 00f77793 andi a5,a4,15
|
||||
80000658: 0a079063 bnez a5,800006f8 <memset+0xb0>
|
||||
8000065c: 08059263 bnez a1,800006e0 <memset+0x98>
|
||||
80000660: ff067693 andi a3,a2,-16
|
||||
80000664: 00f67613 andi a2,a2,15
|
||||
80000668: 00e686b3 add a3,a3,a4
|
||||
8000066c: 00b72023 sw a1,0(a4) # ff0000 <__stack_size+0xfefc00>
|
||||
80000670: 00b72223 sw a1,4(a4)
|
||||
80000674: 00b72423 sw a1,8(a4)
|
||||
80000678: 00b72623 sw a1,12(a4)
|
||||
8000067c: 01070713 addi a4,a4,16
|
||||
80000680: fed766e3 bltu a4,a3,8000066c <memset+0x24>
|
||||
80000684: 00061463 bnez a2,8000068c <memset+0x44>
|
||||
80000688: 00008067 ret
|
||||
8000068c: 40c306b3 sub a3,t1,a2
|
||||
80000690: 00269693 slli a3,a3,0x2
|
||||
80000694: 00000297 auipc t0,0x0
|
||||
80000698: 005686b3 add a3,a3,t0
|
||||
8000069c: 00c68067 jr 12(a3)
|
||||
800006a0: 00b70723 sb a1,14(a4)
|
||||
800006a4: 00b706a3 sb a1,13(a4)
|
||||
800006a8: 00b70623 sb a1,12(a4)
|
||||
800006ac: 00b705a3 sb a1,11(a4)
|
||||
800006b0: 00b70523 sb a1,10(a4)
|
||||
800006b4: 00b704a3 sb a1,9(a4)
|
||||
800006b8: 00b70423 sb a1,8(a4)
|
||||
800006bc: 00b703a3 sb a1,7(a4)
|
||||
800006c0: 00b70323 sb a1,6(a4)
|
||||
800006c4: 00b702a3 sb a1,5(a4)
|
||||
800006c8: 00b70223 sb a1,4(a4)
|
||||
800006cc: 00b701a3 sb a1,3(a4)
|
||||
800006d0: 00b70123 sb a1,2(a4)
|
||||
800006d4: 00b700a3 sb a1,1(a4)
|
||||
800006d8: 00b70023 sb a1,0(a4)
|
||||
800006dc: 00008067 ret
|
||||
800006e0: 0ff5f593 andi a1,a1,255
|
||||
800006e4: 00859693 slli a3,a1,0x8
|
||||
800006e8: 00d5e5b3 or a1,a1,a3
|
||||
800006ec: 01059693 slli a3,a1,0x10
|
||||
800006f0: 00d5e5b3 or a1,a1,a3
|
||||
800006f4: f6dff06f j 80000660 <memset+0x18>
|
||||
800006f8: 00279693 slli a3,a5,0x2
|
||||
800006fc: 00000297 auipc t0,0x0
|
||||
80000700: 005686b3 add a3,a3,t0
|
||||
80000704: 00008293 mv t0,ra
|
||||
80000708: fa0680e7 jalr -96(a3)
|
||||
8000070c: 00028093 mv ra,t0
|
||||
80000710: ff078793 addi a5,a5,-16
|
||||
80000714: 40f70733 sub a4,a4,a5
|
||||
80000718: 00f60633 add a2,a2,a5
|
||||
8000071c: f6c378e3 bgeu t1,a2,8000068c <memset+0x44>
|
||||
80000720: f3dff06f j 8000065c <memset+0x14>
|
||||
|
||||
80000724 <__register_exitproc>:
|
||||
80000724: 800027b7 lui a5,0x80002
|
||||
80000728: d107a703 lw a4,-752(a5) # 80001d10 <__stack_top+0x81001d10>
|
||||
8000072c: 14872783 lw a5,328(a4)
|
||||
80000730: 04078c63 beqz a5,80000788 <__register_exitproc+0x64>
|
||||
80000734: 0047a703 lw a4,4(a5)
|
||||
80000738: 01f00813 li a6,31
|
||||
8000073c: 06e84e63 blt a6,a4,800007b8 <__register_exitproc+0x94>
|
||||
80000740: 00271813 slli a6,a4,0x2
|
||||
80000744: 02050663 beqz a0,80000770 <__register_exitproc+0x4c>
|
||||
80000748: 01078333 add t1,a5,a6
|
||||
8000074c: 08c32423 sw a2,136(t1)
|
||||
80000750: 1887a883 lw a7,392(a5)
|
||||
80000754: 00100613 li a2,1
|
||||
80000758: 00e61633 sll a2,a2,a4
|
||||
8000075c: 00c8e8b3 or a7,a7,a2
|
||||
80000760: 1917a423 sw a7,392(a5)
|
||||
80000764: 10d32423 sw a3,264(t1)
|
||||
80000768: 00200693 li a3,2
|
||||
8000076c: 02d50463 beq a0,a3,80000794 <__register_exitproc+0x70>
|
||||
80000770: 00170713 addi a4,a4,1
|
||||
80000774: 00e7a223 sw a4,4(a5)
|
||||
80000778: 010787b3 add a5,a5,a6
|
||||
8000077c: 00b7a423 sw a1,8(a5)
|
||||
80000780: 00000513 li a0,0
|
||||
80000784: 00008067 ret
|
||||
80000788: 14c70793 addi a5,a4,332
|
||||
8000078c: 14f72423 sw a5,328(a4)
|
||||
80000790: fa5ff06f j 80000734 <__register_exitproc+0x10>
|
||||
80000794: 18c7a683 lw a3,396(a5)
|
||||
80000798: 00170713 addi a4,a4,1
|
||||
8000079c: 00e7a223 sw a4,4(a5)
|
||||
800007a0: 00c6e633 or a2,a3,a2
|
||||
800007a4: 18c7a623 sw a2,396(a5)
|
||||
800007a8: 010787b3 add a5,a5,a6
|
||||
800007ac: 00b7a423 sw a1,8(a5)
|
||||
800007b0: 00000513 li a0,0
|
||||
800007b4: 00008067 ret
|
||||
800007b8: fff00513 li a0,-1
|
||||
800007bc: 00008067 ret
|
||||
|
||||
800007c0 <__call_exitprocs>:
|
||||
800007c0: fd010113 addi sp,sp,-48
|
||||
800007c4: 800027b7 lui a5,0x80002
|
||||
800007c8: 01412c23 sw s4,24(sp)
|
||||
800007cc: d107aa03 lw s4,-752(a5) # 80001d10 <__stack_top+0x81001d10>
|
||||
800007d0: 03212023 sw s2,32(sp)
|
||||
800007d4: 02112623 sw ra,44(sp)
|
||||
800007d8: 148a2903 lw s2,328(s4)
|
||||
800007dc: 02812423 sw s0,40(sp)
|
||||
800007e0: 02912223 sw s1,36(sp)
|
||||
800007e4: 01312e23 sw s3,28(sp)
|
||||
800007e8: 01512a23 sw s5,20(sp)
|
||||
800007ec: 01612823 sw s6,16(sp)
|
||||
800007f0: 01712623 sw s7,12(sp)
|
||||
800007f4: 01812423 sw s8,8(sp)
|
||||
800007f8: 04090063 beqz s2,80000838 <__call_exitprocs+0x78>
|
||||
800007fc: 00050b13 mv s6,a0
|
||||
80000800: 00058b93 mv s7,a1
|
||||
80000804: 00100a93 li s5,1
|
||||
80000808: fff00993 li s3,-1
|
||||
8000080c: 00492483 lw s1,4(s2)
|
||||
80000810: fff48413 addi s0,s1,-1
|
||||
80000814: 02044263 bltz s0,80000838 <__call_exitprocs+0x78>
|
||||
80000818: 00249493 slli s1,s1,0x2
|
||||
8000081c: 009904b3 add s1,s2,s1
|
||||
80000820: 040b8463 beqz s7,80000868 <__call_exitprocs+0xa8>
|
||||
80000824: 1044a783 lw a5,260(s1)
|
||||
80000828: 05778063 beq a5,s7,80000868 <__call_exitprocs+0xa8>
|
||||
8000082c: fff40413 addi s0,s0,-1
|
||||
80000830: ffc48493 addi s1,s1,-4
|
||||
80000834: ff3416e3 bne s0,s3,80000820 <__call_exitprocs+0x60>
|
||||
80000838: 02c12083 lw ra,44(sp)
|
||||
8000083c: 02812403 lw s0,40(sp)
|
||||
80000840: 02412483 lw s1,36(sp)
|
||||
80000844: 02012903 lw s2,32(sp)
|
||||
80000848: 01c12983 lw s3,28(sp)
|
||||
8000084c: 01812a03 lw s4,24(sp)
|
||||
80000850: 01412a83 lw s5,20(sp)
|
||||
80000854: 01012b03 lw s6,16(sp)
|
||||
80000858: 00c12b83 lw s7,12(sp)
|
||||
8000085c: 00812c03 lw s8,8(sp)
|
||||
80000860: 03010113 addi sp,sp,48
|
||||
80000864: 00008067 ret
|
||||
80000868: 00492783 lw a5,4(s2)
|
||||
8000086c: 0044a683 lw a3,4(s1)
|
||||
80000870: fff78793 addi a5,a5,-1
|
||||
80000874: 04878e63 beq a5,s0,800008d0 <__call_exitprocs+0x110>
|
||||
80000878: 0004a223 sw zero,4(s1)
|
||||
8000087c: fa0688e3 beqz a3,8000082c <__call_exitprocs+0x6c>
|
||||
80000880: 18892783 lw a5,392(s2)
|
||||
80000884: 008a9733 sll a4,s5,s0
|
||||
80000888: 00492c03 lw s8,4(s2)
|
||||
8000088c: 00f777b3 and a5,a4,a5
|
||||
80000890: 02079263 bnez a5,800008b4 <__call_exitprocs+0xf4>
|
||||
80000894: 000680e7 jalr a3
|
||||
80000898: 00492703 lw a4,4(s2)
|
||||
8000089c: 148a2783 lw a5,328(s4)
|
||||
800008a0: 01871463 bne a4,s8,800008a8 <__call_exitprocs+0xe8>
|
||||
800008a4: f8f904e3 beq s2,a5,8000082c <__call_exitprocs+0x6c>
|
||||
800008a8: f80788e3 beqz a5,80000838 <__call_exitprocs+0x78>
|
||||
800008ac: 00078913 mv s2,a5
|
||||
800008b0: f5dff06f j 8000080c <__call_exitprocs+0x4c>
|
||||
800008b4: 18c92783 lw a5,396(s2)
|
||||
800008b8: 0844a583 lw a1,132(s1)
|
||||
800008bc: 00f77733 and a4,a4,a5
|
||||
800008c0: 00071c63 bnez a4,800008d8 <__call_exitprocs+0x118>
|
||||
800008c4: 000b0513 mv a0,s6
|
||||
800008c8: 000680e7 jalr a3
|
||||
800008cc: fcdff06f j 80000898 <__call_exitprocs+0xd8>
|
||||
800008d0: 00892223 sw s0,4(s2)
|
||||
800008d4: fa9ff06f j 8000087c <__call_exitprocs+0xbc>
|
||||
800008d8: 00058513 mv a0,a1
|
||||
800008dc: 000680e7 jalr a3
|
||||
800008e0: fb9ff06f j 80000898 <__call_exitprocs+0xd8>
|
||||
|
||||
Disassembly of section .init_array:
|
||||
|
||||
800018e4 <__init_array_start>:
|
||||
800018e4: 0068 addi a0,sp,12
|
||||
800018e6: 8000 0x8000
|
||||
|
||||
Disassembly of section .data:
|
||||
|
||||
800018e8 <impure_data>:
|
||||
800018e8: 0000 unimp
|
||||
800018ea: 0000 unimp
|
||||
800018ec: 1bd4 addi a3,sp,500
|
||||
800018ee: 8000 0x8000
|
||||
800018f0: 1c3c addi a5,sp,568
|
||||
800018f2: 8000 0x8000
|
||||
800018f4: 1ca4 addi s1,sp,632
|
||||
800018f6: 8000 0x8000
|
||||
...
|
||||
80001990: 0001 nop
|
||||
80001992: 0000 unimp
|
||||
80001994: 0000 unimp
|
||||
80001996: 0000 unimp
|
||||
80001998: 330e fld ft6,224(sp)
|
||||
8000199a: abcd j 80001f8c <__BSS_END__+0x1f8>
|
||||
8000199c: 1234 addi a3,sp,296
|
||||
8000199e: e66d bnez a2,80001a88 <impure_data+0x1a0>
|
||||
800019a0: deec sw a1,124(a3)
|
||||
800019a2: 0005 c.nop 1
|
||||
800019a4: 0000000b 0xb
|
||||
...
|
||||
|
||||
Disassembly of section .sdata:
|
||||
|
||||
80001d10 <_global_impure_ptr>:
|
||||
80001d10: 18e8 addi a0,sp,124
|
||||
80001d12: 8000 0x8000
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
80001d14 <g_wspawn_args>:
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3920 fld fs0,112(a0)
|
||||
c: 322e fld ft4,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .riscv.attributes:
|
||||
|
||||
00000000 <.riscv.attributes>:
|
||||
0: 2541 jal 680 <__stack_size+0x280>
|
||||
2: 0000 unimp
|
||||
4: 7200 flw fs0,32(a2)
|
||||
6: 7369 lui t1,0xffffa
|
||||
8: 01007663 bgeu zero,a6,14 <__stack_usage+0x14>
|
||||
c: 0000001b 0x1b
|
||||
10: 1004 addi s1,sp,32
|
||||
12: 7205 lui tp,0xfffe1
|
||||
14: 3376 fld ft6,376(sp)
|
||||
16: 6932 flw fs2,12(sp)
|
||||
18: 7032 flw ft0,44(sp)
|
||||
1a: 5f30 lw a2,120(a4)
|
||||
1c: 326d jal fffff9c6 <__stack_top+0xfff9c6>
|
||||
1e: 3070 fld fa2,224(s0)
|
||||
20: 665f 7032 0030 0x307032665f
|
Binary file not shown.
Binary file not shown.
|
@ -1,731 +0,0 @@
|
|||
|
||||
kernel.elf: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .init:
|
||||
|
||||
80000000 <_start>:
|
||||
80000000: 00000597 auipc a1,0x0
|
||||
80000004: 17458593 addi a1,a1,372 # 80000174 <vx_set_sp>
|
||||
80000008: fc102573 csrr a0,0xfc1
|
||||
8000000c: 00b5106b 0xb5106b
|
||||
80000010: 164000ef jal ra,80000174 <vx_set_sp>
|
||||
80000014: 00100513 li a0,1
|
||||
80000018: 0005006b 0x5006b
|
||||
8000001c: 00002517 auipc a0,0x2
|
||||
80000020: dc050513 addi a0,a0,-576 # 80001ddc <g_wspawn_args>
|
||||
80000024: 00002617 auipc a2,0x2
|
||||
80000028: e3860613 addi a2,a2,-456 # 80001e5c <__BSS_END__>
|
||||
8000002c: 40a60633 sub a2,a2,a0
|
||||
80000030: 00000593 li a1,0
|
||||
80000034: 6d8000ef jal ra,8000070c <memset>
|
||||
80000038: 00000517 auipc a0,0x0
|
||||
8000003c: 5dc50513 addi a0,a0,1500 # 80000614 <__libc_fini_array>
|
||||
80000040: 58c000ef jal ra,800005cc <atexit>
|
||||
80000044: 62c000ef jal ra,80000670 <__libc_init_array>
|
||||
80000048: 008000ef jal ra,80000050 <main>
|
||||
8000004c: 5940006f j 800005e0 <exit>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
80000050 <main>:
|
||||
80000050: 7ffff7b7 lui a5,0x7ffff
|
||||
80000054: 0007a503 lw a0,0(a5) # 7ffff000 <__stack_size+0x7fffec00>
|
||||
80000058: 800005b7 lui a1,0x80000
|
||||
8000005c: 7ffff637 lui a2,0x7ffff
|
||||
80000060: 08058593 addi a1,a1,128 # 80000080 <__stack_top+0x81000080>
|
||||
80000064: 20c0006f j 80000270 <vx_spawn_tasks>
|
||||
|
||||
80000068 <register_fini>:
|
||||
80000068: 00000793 li a5,0
|
||||
8000006c: 00078863 beqz a5,8000007c <register_fini+0x14>
|
||||
80000070: 80000537 lui a0,0x80000
|
||||
80000074: 61450513 addi a0,a0,1556 # 80000614 <__stack_top+0x81000614>
|
||||
80000078: 5540006f j 800005cc <atexit>
|
||||
8000007c: 00008067 ret
|
||||
|
||||
80000080 <kernel_body>:
|
||||
80000080: 0085a783 lw a5,8(a1)
|
||||
80000084: 00c5a603 lw a2,12(a1)
|
||||
80000088: 0105a703 lw a4,16(a1)
|
||||
8000008c: 02f506b3 mul a3,a0,a5
|
||||
80000090: 0145a883 lw a7,20(a1)
|
||||
80000094: 0c078863 beqz a5,80000164 <kernel_body+0xe4>
|
||||
80000098: 00d78833 add a6,a5,a3
|
||||
8000009c: f0000653 fmv.w.x fa2,zero
|
||||
800000a0: 00269693 slli a3,a3,0x2
|
||||
800000a4: 00281813 slli a6,a6,0x2
|
||||
800000a8: 00c686b3 add a3,a3,a2
|
||||
800000ac: 00c80833 add a6,a6,a2
|
||||
800000b0: 40c888b3 sub a7,a7,a2
|
||||
800000b4: 0006a583 lw a1,0(a3)
|
||||
800000b8: 0086a603 lw a2,8(a3)
|
||||
800000bc: 00c6a503 lw a0,12(a3)
|
||||
800000c0: 00259593 slli a1,a1,0x2
|
||||
800000c4: 00b705b3 add a1,a4,a1
|
||||
800000c8: 0005a787 flw fa5,0(a1)
|
||||
800000cc: 0046a583 lw a1,4(a3)
|
||||
800000d0: 00261613 slli a2,a2,0x2
|
||||
800000d4: 10f677d3 fmul.s fa5,fa2,fa5
|
||||
800000d8: 00259593 slli a1,a1,0x2
|
||||
800000dc: 00b705b3 add a1,a4,a1
|
||||
800000e0: 0005a687 flw fa3,0(a1)
|
||||
800000e4: 00c70633 add a2,a4,a2
|
||||
800000e8: 00062707 flw fa4,0(a2) # 7ffff000 <__stack_size+0x7fffec00>
|
||||
800000ec: 10d7f7d3 fmul.s fa5,fa5,fa3
|
||||
800000f0: 00251513 slli a0,a0,0x2
|
||||
800000f4: 00a70533 add a0,a4,a0
|
||||
800000f8: 0106a583 lw a1,16(a3)
|
||||
800000fc: 0146a603 lw a2,20(a3)
|
||||
80000100: 10e7f7d3 fmul.s fa5,fa5,fa4
|
||||
80000104: 00052707 flw fa4,0(a0)
|
||||
80000108: 00259593 slli a1,a1,0x2
|
||||
8000010c: 00b705b3 add a1,a4,a1
|
||||
80000110: 0005a687 flw fa3,0(a1)
|
||||
80000114: 10e7f7d3 fmul.s fa5,fa5,fa4
|
||||
80000118: 00261613 slli a2,a2,0x2
|
||||
8000011c: 00c70633 add a2,a4,a2
|
||||
80000120: 00062707 flw fa4,0(a2)
|
||||
80000124: 0186a583 lw a1,24(a3)
|
||||
80000128: 10d7f7d3 fmul.s fa5,fa5,fa3
|
||||
8000012c: 01c6a603 lw a2,28(a3)
|
||||
80000130: 00259593 slli a1,a1,0x2
|
||||
80000134: 00b705b3 add a1,a4,a1
|
||||
80000138: 00261613 slli a2,a2,0x2
|
||||
8000013c: 10e7f7d3 fmul.s fa5,fa5,fa4
|
||||
80000140: 0005a707 flw fa4,0(a1)
|
||||
80000144: 00c70633 add a2,a4,a2
|
||||
80000148: 00d887b3 add a5,a7,a3
|
||||
8000014c: 00468693 addi a3,a3,4
|
||||
80000150: 10e7f7d3 fmul.s fa5,fa5,fa4
|
||||
80000154: 00062707 flw fa4,0(a2)
|
||||
80000158: 10f777d3 fmul.s fa5,fa4,fa5
|
||||
8000015c: 00f7a027 fsw fa5,0(a5)
|
||||
80000160: f4d81ae3 bne a6,a3,800000b4 <kernel_body+0x34>
|
||||
80000164: 00008067 ret
|
||||
|
||||
80000168 <_exit>:
|
||||
80000168: 250000ef jal ra,800003b8 <vx_perf_dump>
|
||||
8000016c: 00000513 li a0,0
|
||||
80000170: 0005006b 0x5006b
|
||||
|
||||
80000174 <vx_set_sp>:
|
||||
80000174: fc002573 csrr a0,0xfc0
|
||||
80000178: 0005006b 0x5006b
|
||||
8000017c: 00002197 auipc gp,0x2
|
||||
80000180: 03418193 addi gp,gp,52 # 800021b0 <__global_pointer>
|
||||
80000184: 7f000117 auipc sp,0x7f000
|
||||
80000188: e7c10113 addi sp,sp,-388 # ff000000 <__stack_top>
|
||||
8000018c: 40000593 li a1,1024
|
||||
80000190: cc102673 csrr a2,0xcc1
|
||||
80000194: 02c585b3 mul a1,a1,a2
|
||||
80000198: 40b10133 sub sp,sp,a1
|
||||
8000019c: cc3026f3 csrr a3,0xcc3
|
||||
800001a0: 00068663 beqz a3,800001ac <RETURN>
|
||||
800001a4: 00000513 li a0,0
|
||||
800001a8: 0005006b 0x5006b
|
||||
|
||||
800001ac <RETURN>:
|
||||
800001ac: 00008067 ret
|
||||
|
||||
800001b0 <spawn_tasks_callback>:
|
||||
800001b0: fe010113 addi sp,sp,-32
|
||||
800001b4: 00112e23 sw ra,28(sp)
|
||||
800001b8: 00812c23 sw s0,24(sp)
|
||||
800001bc: 00912a23 sw s1,20(sp)
|
||||
800001c0: 01212823 sw s2,16(sp)
|
||||
800001c4: 01312623 sw s3,12(sp)
|
||||
800001c8: fc0027f3 csrr a5,0xfc0
|
||||
800001cc: 0007806b 0x7806b
|
||||
800001d0: cc5026f3 csrr a3,0xcc5
|
||||
800001d4: cc3029f3 csrr s3,0xcc3
|
||||
800001d8: cc002773 csrr a4,0xcc0
|
||||
800001dc: fc002673 csrr a2,0xfc0
|
||||
800001e0: 800027b7 lui a5,0x80002
|
||||
800001e4: 00269693 slli a3,a3,0x2
|
||||
800001e8: ddc78793 addi a5,a5,-548 # 80001ddc <__stack_top+0x81001ddc>
|
||||
800001ec: 00d787b3 add a5,a5,a3
|
||||
800001f0: 0007a483 lw s1,0(a5)
|
||||
800001f4: 0104a403 lw s0,16(s1)
|
||||
800001f8: 00c4a683 lw a3,12(s1)
|
||||
800001fc: 0089a933 slt s2,s3,s0
|
||||
80000200: 00040793 mv a5,s0
|
||||
80000204: 00d90933 add s2,s2,a3
|
||||
80000208: 03368433 mul s0,a3,s3
|
||||
8000020c: 00f9d463 bge s3,a5,80000214 <spawn_tasks_callback+0x64>
|
||||
80000210: 00098793 mv a5,s3
|
||||
80000214: 00f40433 add s0,s0,a5
|
||||
80000218: 0084a683 lw a3,8(s1)
|
||||
8000021c: 02c40433 mul s0,s0,a2
|
||||
80000220: 02e907b3 mul a5,s2,a4
|
||||
80000224: 00d40433 add s0,s0,a3
|
||||
80000228: 00f40433 add s0,s0,a5
|
||||
8000022c: 00890933 add s2,s2,s0
|
||||
80000230: 01245e63 bge s0,s2,8000024c <spawn_tasks_callback+0x9c>
|
||||
80000234: 0004a783 lw a5,0(s1)
|
||||
80000238: 0044a583 lw a1,4(s1)
|
||||
8000023c: 00040513 mv a0,s0
|
||||
80000240: 00140413 addi s0,s0,1
|
||||
80000244: 000780e7 jalr a5
|
||||
80000248: fe8916e3 bne s2,s0,80000234 <spawn_tasks_callback+0x84>
|
||||
8000024c: 0019b993 seqz s3,s3
|
||||
80000250: 0009806b 0x9806b
|
||||
80000254: 01c12083 lw ra,28(sp)
|
||||
80000258: 01812403 lw s0,24(sp)
|
||||
8000025c: 01412483 lw s1,20(sp)
|
||||
80000260: 01012903 lw s2,16(sp)
|
||||
80000264: 00c12983 lw s3,12(sp)
|
||||
80000268: 02010113 addi sp,sp,32
|
||||
8000026c: 00008067 ret
|
||||
|
||||
80000270 <vx_spawn_tasks>:
|
||||
80000270: fc010113 addi sp,sp,-64
|
||||
80000274: 02112e23 sw ra,60(sp)
|
||||
80000278: 02812c23 sw s0,56(sp)
|
||||
8000027c: 02912a23 sw s1,52(sp)
|
||||
80000280: 03212823 sw s2,48(sp)
|
||||
80000284: 03312623 sw s3,44(sp)
|
||||
80000288: fc2026f3 csrr a3,0xfc2
|
||||
8000028c: fc102873 csrr a6,0xfc1
|
||||
80000290: fc002473 csrr s0,0xfc0
|
||||
80000294: cc5027f3 csrr a5,0xcc5
|
||||
80000298: 01f00713 li a4,31
|
||||
8000029c: 0cf74463 blt a4,a5,80000364 <vx_spawn_tasks+0xf4>
|
||||
800002a0: 030408b3 mul a7,s0,a6
|
||||
800002a4: 00100713 li a4,1
|
||||
800002a8: 00a8d463 bge a7,a0,800002b0 <vx_spawn_tasks+0x40>
|
||||
800002ac: 03154733 div a4,a0,a7
|
||||
800002b0: 0ce6c863 blt a3,a4,80000380 <vx_spawn_tasks+0x110>
|
||||
800002b4: 0ae7d863 bge a5,a4,80000364 <vx_spawn_tasks+0xf4>
|
||||
800002b8: fff68693 addi a3,a3,-1
|
||||
800002bc: 02e54333 div t1,a0,a4
|
||||
800002c0: 00030893 mv a7,t1
|
||||
800002c4: 00f69663 bne a3,a5,800002d0 <vx_spawn_tasks+0x60>
|
||||
800002c8: 02e56533 rem a0,a0,a4
|
||||
800002cc: 006508b3 add a7,a0,t1
|
||||
800002d0: 0288c4b3 div s1,a7,s0
|
||||
800002d4: 0288e933 rem s2,a7,s0
|
||||
800002d8: 0b04ca63 blt s1,a6,8000038c <vx_spawn_tasks+0x11c>
|
||||
800002dc: 00100693 li a3,1
|
||||
800002e0: 0304c733 div a4,s1,a6
|
||||
800002e4: 00070663 beqz a4,800002f0 <vx_spawn_tasks+0x80>
|
||||
800002e8: 00070693 mv a3,a4
|
||||
800002ec: 0304e733 rem a4,s1,a6
|
||||
800002f0: 800029b7 lui s3,0x80002
|
||||
800002f4: ddc98993 addi s3,s3,-548 # 80001ddc <__stack_top+0x81001ddc>
|
||||
800002f8: 00e12e23 sw a4,28(sp)
|
||||
800002fc: 00c10713 addi a4,sp,12
|
||||
80000300: 00b12623 sw a1,12(sp)
|
||||
80000304: 00c12823 sw a2,16(sp)
|
||||
80000308: 00d12c23 sw a3,24(sp)
|
||||
8000030c: 02f30333 mul t1,t1,a5
|
||||
80000310: 00279793 slli a5,a5,0x2
|
||||
80000314: 00f987b3 add a5,s3,a5
|
||||
80000318: 00e7a023 sw a4,0(a5)
|
||||
8000031c: 00612a23 sw t1,20(sp)
|
||||
80000320: 06904c63 bgtz s1,80000398 <vx_spawn_tasks+0x128>
|
||||
80000324: 04090063 beqz s2,80000364 <vx_spawn_tasks+0xf4>
|
||||
80000328: 02848433 mul s0,s1,s0
|
||||
8000032c: 00812a23 sw s0,20(sp)
|
||||
80000330: 0009006b 0x9006b
|
||||
80000334: cc5027f3 csrr a5,0xcc5
|
||||
80000338: cc202573 csrr a0,0xcc2
|
||||
8000033c: 00279793 slli a5,a5,0x2
|
||||
80000340: 00f989b3 add s3,s3,a5
|
||||
80000344: 0009a783 lw a5,0(s3)
|
||||
80000348: 0087a683 lw a3,8(a5)
|
||||
8000034c: 0007a703 lw a4,0(a5)
|
||||
80000350: 0047a583 lw a1,4(a5)
|
||||
80000354: 00d50533 add a0,a0,a3
|
||||
80000358: 000700e7 jalr a4
|
||||
8000035c: 00100793 li a5,1
|
||||
80000360: 0007806b 0x7806b
|
||||
80000364: 03c12083 lw ra,60(sp)
|
||||
80000368: 03812403 lw s0,56(sp)
|
||||
8000036c: 03412483 lw s1,52(sp)
|
||||
80000370: 03012903 lw s2,48(sp)
|
||||
80000374: 02c12983 lw s3,44(sp)
|
||||
80000378: 04010113 addi sp,sp,64
|
||||
8000037c: 00008067 ret
|
||||
80000380: 00068713 mv a4,a3
|
||||
80000384: f2e7cae3 blt a5,a4,800002b8 <vx_spawn_tasks+0x48>
|
||||
80000388: fddff06f j 80000364 <vx_spawn_tasks+0xf4>
|
||||
8000038c: 00000713 li a4,0
|
||||
80000390: 00100693 li a3,1
|
||||
80000394: f5dff06f j 800002f0 <vx_spawn_tasks+0x80>
|
||||
80000398: 00048713 mv a4,s1
|
||||
8000039c: 00985463 bge a6,s1,800003a4 <vx_spawn_tasks+0x134>
|
||||
800003a0: 00080713 mv a4,a6
|
||||
800003a4: 800007b7 lui a5,0x80000
|
||||
800003a8: 1b078793 addi a5,a5,432 # 800001b0 <__stack_top+0x810001b0>
|
||||
800003ac: 00f7106b 0xf7106b
|
||||
800003b0: e01ff0ef jal ra,800001b0 <spawn_tasks_callback>
|
||||
800003b4: f71ff06f j 80000324 <vx_spawn_tasks+0xb4>
|
||||
|
||||
800003b8 <vx_perf_dump>:
|
||||
800003b8: cc5027f3 csrr a5,0xcc5
|
||||
800003bc: 00ff0737 lui a4,0xff0
|
||||
800003c0: 00e787b3 add a5,a5,a4
|
||||
800003c4: 00879793 slli a5,a5,0x8
|
||||
800003c8: b0002773 csrr a4,mcycle
|
||||
800003cc: 00e7a023 sw a4,0(a5)
|
||||
800003d0: b0102773 csrr a4,0xb01
|
||||
800003d4: 00e7a223 sw a4,4(a5)
|
||||
800003d8: b0202773 csrr a4,minstret
|
||||
800003dc: 00e7a423 sw a4,8(a5)
|
||||
800003e0: b0302773 csrr a4,mhpmcounter3
|
||||
800003e4: 00e7a623 sw a4,12(a5)
|
||||
800003e8: b0402773 csrr a4,mhpmcounter4
|
||||
800003ec: 00e7a823 sw a4,16(a5)
|
||||
800003f0: b0502773 csrr a4,mhpmcounter5
|
||||
800003f4: 00e7aa23 sw a4,20(a5)
|
||||
800003f8: b0602773 csrr a4,mhpmcounter6
|
||||
800003fc: 00e7ac23 sw a4,24(a5)
|
||||
80000400: b0702773 csrr a4,mhpmcounter7
|
||||
80000404: 00e7ae23 sw a4,28(a5)
|
||||
80000408: b0802773 csrr a4,mhpmcounter8
|
||||
8000040c: 02e7a023 sw a4,32(a5)
|
||||
80000410: b0902773 csrr a4,mhpmcounter9
|
||||
80000414: 02e7a223 sw a4,36(a5)
|
||||
80000418: b0a02773 csrr a4,mhpmcounter10
|
||||
8000041c: 02e7a423 sw a4,40(a5)
|
||||
80000420: b0b02773 csrr a4,mhpmcounter11
|
||||
80000424: 02e7a623 sw a4,44(a5)
|
||||
80000428: b0c02773 csrr a4,mhpmcounter12
|
||||
8000042c: 02e7a823 sw a4,48(a5)
|
||||
80000430: b0d02773 csrr a4,mhpmcounter13
|
||||
80000434: 02e7aa23 sw a4,52(a5)
|
||||
80000438: b0e02773 csrr a4,mhpmcounter14
|
||||
8000043c: 02e7ac23 sw a4,56(a5)
|
||||
80000440: b0f02773 csrr a4,mhpmcounter15
|
||||
80000444: 02e7ae23 sw a4,60(a5)
|
||||
80000448: b1002773 csrr a4,mhpmcounter16
|
||||
8000044c: 04e7a023 sw a4,64(a5)
|
||||
80000450: b1102773 csrr a4,mhpmcounter17
|
||||
80000454: 04e7a223 sw a4,68(a5)
|
||||
80000458: b1202773 csrr a4,mhpmcounter18
|
||||
8000045c: 04e7a423 sw a4,72(a5)
|
||||
80000460: b1302773 csrr a4,mhpmcounter19
|
||||
80000464: 04e7a623 sw a4,76(a5)
|
||||
80000468: b1402773 csrr a4,mhpmcounter20
|
||||
8000046c: 04e7a823 sw a4,80(a5)
|
||||
80000470: b1502773 csrr a4,mhpmcounter21
|
||||
80000474: 04e7aa23 sw a4,84(a5)
|
||||
80000478: b1602773 csrr a4,mhpmcounter22
|
||||
8000047c: 04e7ac23 sw a4,88(a5)
|
||||
80000480: b1702773 csrr a4,mhpmcounter23
|
||||
80000484: 04e7ae23 sw a4,92(a5)
|
||||
80000488: b1802773 csrr a4,mhpmcounter24
|
||||
8000048c: 06e7a023 sw a4,96(a5)
|
||||
80000490: b1902773 csrr a4,mhpmcounter25
|
||||
80000494: 06e7a223 sw a4,100(a5)
|
||||
80000498: b1a02773 csrr a4,mhpmcounter26
|
||||
8000049c: 06e7a423 sw a4,104(a5)
|
||||
800004a0: b1b02773 csrr a4,mhpmcounter27
|
||||
800004a4: 06e7a623 sw a4,108(a5)
|
||||
800004a8: b1c02773 csrr a4,mhpmcounter28
|
||||
800004ac: 06e7a823 sw a4,112(a5)
|
||||
800004b0: b1d02773 csrr a4,mhpmcounter29
|
||||
800004b4: 06e7aa23 sw a4,116(a5)
|
||||
800004b8: b1e02773 csrr a4,mhpmcounter30
|
||||
800004bc: 06e7ac23 sw a4,120(a5)
|
||||
800004c0: b1f02773 csrr a4,mhpmcounter31
|
||||
800004c4: 06e7ae23 sw a4,124(a5)
|
||||
800004c8: b8002773 csrr a4,mcycleh
|
||||
800004cc: 08e7a023 sw a4,128(a5)
|
||||
800004d0: b8102773 csrr a4,0xb81
|
||||
800004d4: 08e7a223 sw a4,132(a5)
|
||||
800004d8: b8202773 csrr a4,minstreth
|
||||
800004dc: 08e7a423 sw a4,136(a5)
|
||||
800004e0: b8302773 csrr a4,mhpmcounter3h
|
||||
800004e4: 08e7a623 sw a4,140(a5)
|
||||
800004e8: b8402773 csrr a4,mhpmcounter4h
|
||||
800004ec: 08e7a823 sw a4,144(a5)
|
||||
800004f0: b8502773 csrr a4,mhpmcounter5h
|
||||
800004f4: 08e7aa23 sw a4,148(a5)
|
||||
800004f8: b8602773 csrr a4,mhpmcounter6h
|
||||
800004fc: 08e7ac23 sw a4,152(a5)
|
||||
80000500: b8702773 csrr a4,mhpmcounter7h
|
||||
80000504: 08e7ae23 sw a4,156(a5)
|
||||
80000508: b8802773 csrr a4,mhpmcounter8h
|
||||
8000050c: 0ae7a023 sw a4,160(a5)
|
||||
80000510: b8902773 csrr a4,mhpmcounter9h
|
||||
80000514: 0ae7a223 sw a4,164(a5)
|
||||
80000518: b8a02773 csrr a4,mhpmcounter10h
|
||||
8000051c: 0ae7a423 sw a4,168(a5)
|
||||
80000520: b8b02773 csrr a4,mhpmcounter11h
|
||||
80000524: 0ae7a623 sw a4,172(a5)
|
||||
80000528: b8c02773 csrr a4,mhpmcounter12h
|
||||
8000052c: 0ae7a823 sw a4,176(a5)
|
||||
80000530: b8d02773 csrr a4,mhpmcounter13h
|
||||
80000534: 0ae7aa23 sw a4,180(a5)
|
||||
80000538: b8e02773 csrr a4,mhpmcounter14h
|
||||
8000053c: 0ae7ac23 sw a4,184(a5)
|
||||
80000540: b8f02773 csrr a4,mhpmcounter15h
|
||||
80000544: 0ae7ae23 sw a4,188(a5)
|
||||
80000548: b9002773 csrr a4,mhpmcounter16h
|
||||
8000054c: 0ce7a023 sw a4,192(a5)
|
||||
80000550: b9102773 csrr a4,mhpmcounter17h
|
||||
80000554: 0ce7a223 sw a4,196(a5)
|
||||
80000558: b9202773 csrr a4,mhpmcounter18h
|
||||
8000055c: 0ce7a423 sw a4,200(a5)
|
||||
80000560: b9302773 csrr a4,mhpmcounter19h
|
||||
80000564: 0ce7a623 sw a4,204(a5)
|
||||
80000568: b9402773 csrr a4,mhpmcounter20h
|
||||
8000056c: 0ce7a823 sw a4,208(a5)
|
||||
80000570: b9502773 csrr a4,mhpmcounter21h
|
||||
80000574: 0ce7aa23 sw a4,212(a5)
|
||||
80000578: b9602773 csrr a4,mhpmcounter22h
|
||||
8000057c: 0ce7ac23 sw a4,216(a5)
|
||||
80000580: b9702773 csrr a4,mhpmcounter23h
|
||||
80000584: 0ce7ae23 sw a4,220(a5)
|
||||
80000588: b9802773 csrr a4,mhpmcounter24h
|
||||
8000058c: 0ee7a023 sw a4,224(a5)
|
||||
80000590: b9902773 csrr a4,mhpmcounter25h
|
||||
80000594: 0ee7a223 sw a4,228(a5)
|
||||
80000598: b9a02773 csrr a4,mhpmcounter26h
|
||||
8000059c: 0ee7a423 sw a4,232(a5)
|
||||
800005a0: b9b02773 csrr a4,mhpmcounter27h
|
||||
800005a4: 0ee7a623 sw a4,236(a5)
|
||||
800005a8: b9c02773 csrr a4,mhpmcounter28h
|
||||
800005ac: 0ee7a823 sw a4,240(a5)
|
||||
800005b0: b9d02773 csrr a4,mhpmcounter29h
|
||||
800005b4: 0ee7aa23 sw a4,244(a5)
|
||||
800005b8: b9e02773 csrr a4,mhpmcounter30h
|
||||
800005bc: 0ee7ac23 sw a4,248(a5)
|
||||
800005c0: b9f02773 csrr a4,mhpmcounter31h
|
||||
800005c4: 0ee7ae23 sw a4,252(a5)
|
||||
800005c8: 00008067 ret
|
||||
|
||||
800005cc <atexit>:
|
||||
800005cc: 00050593 mv a1,a0
|
||||
800005d0: 00000693 li a3,0
|
||||
800005d4: 00000613 li a2,0
|
||||
800005d8: 00000513 li a0,0
|
||||
800005dc: 20c0006f j 800007e8 <__register_exitproc>
|
||||
|
||||
800005e0 <exit>:
|
||||
800005e0: ff010113 addi sp,sp,-16
|
||||
800005e4: 00000593 li a1,0
|
||||
800005e8: 00812423 sw s0,8(sp)
|
||||
800005ec: 00112623 sw ra,12(sp)
|
||||
800005f0: 00050413 mv s0,a0
|
||||
800005f4: 290000ef jal ra,80000884 <__call_exitprocs>
|
||||
800005f8: 800027b7 lui a5,0x80002
|
||||
800005fc: dd87a503 lw a0,-552(a5) # 80001dd8 <__stack_top+0x81001dd8>
|
||||
80000600: 03c52783 lw a5,60(a0)
|
||||
80000604: 00078463 beqz a5,8000060c <exit+0x2c>
|
||||
80000608: 000780e7 jalr a5
|
||||
8000060c: 00040513 mv a0,s0
|
||||
80000610: b59ff0ef jal ra,80000168 <_exit>
|
||||
|
||||
80000614 <__libc_fini_array>:
|
||||
80000614: ff010113 addi sp,sp,-16
|
||||
80000618: 00812423 sw s0,8(sp)
|
||||
8000061c: 800027b7 lui a5,0x80002
|
||||
80000620: 80002437 lui s0,0x80002
|
||||
80000624: 9ac40413 addi s0,s0,-1620 # 800019ac <__stack_top+0x810019ac>
|
||||
80000628: 9ac78793 addi a5,a5,-1620 # 800019ac <__stack_top+0x810019ac>
|
||||
8000062c: 408787b3 sub a5,a5,s0
|
||||
80000630: 00912223 sw s1,4(sp)
|
||||
80000634: 00112623 sw ra,12(sp)
|
||||
80000638: 4027d493 srai s1,a5,0x2
|
||||
8000063c: 02048063 beqz s1,8000065c <__libc_fini_array+0x48>
|
||||
80000640: ffc78793 addi a5,a5,-4
|
||||
80000644: 00878433 add s0,a5,s0
|
||||
80000648: 00042783 lw a5,0(s0)
|
||||
8000064c: fff48493 addi s1,s1,-1
|
||||
80000650: ffc40413 addi s0,s0,-4
|
||||
80000654: 000780e7 jalr a5
|
||||
80000658: fe0498e3 bnez s1,80000648 <__libc_fini_array+0x34>
|
||||
8000065c: 00c12083 lw ra,12(sp)
|
||||
80000660: 00812403 lw s0,8(sp)
|
||||
80000664: 00412483 lw s1,4(sp)
|
||||
80000668: 01010113 addi sp,sp,16
|
||||
8000066c: 00008067 ret
|
||||
|
||||
80000670 <__libc_init_array>:
|
||||
80000670: ff010113 addi sp,sp,-16
|
||||
80000674: 00812423 sw s0,8(sp)
|
||||
80000678: 01212023 sw s2,0(sp)
|
||||
8000067c: 80002437 lui s0,0x80002
|
||||
80000680: 80002937 lui s2,0x80002
|
||||
80000684: 9a840793 addi a5,s0,-1624 # 800019a8 <__stack_top+0x810019a8>
|
||||
80000688: 9a890913 addi s2,s2,-1624 # 800019a8 <__stack_top+0x810019a8>
|
||||
8000068c: 40f90933 sub s2,s2,a5
|
||||
80000690: 00112623 sw ra,12(sp)
|
||||
80000694: 00912223 sw s1,4(sp)
|
||||
80000698: 40295913 srai s2,s2,0x2
|
||||
8000069c: 02090063 beqz s2,800006bc <__libc_init_array+0x4c>
|
||||
800006a0: 9a840413 addi s0,s0,-1624
|
||||
800006a4: 00000493 li s1,0
|
||||
800006a8: 00042783 lw a5,0(s0)
|
||||
800006ac: 00148493 addi s1,s1,1
|
||||
800006b0: 00440413 addi s0,s0,4
|
||||
800006b4: 000780e7 jalr a5
|
||||
800006b8: fe9918e3 bne s2,s1,800006a8 <__libc_init_array+0x38>
|
||||
800006bc: 80002437 lui s0,0x80002
|
||||
800006c0: 80002937 lui s2,0x80002
|
||||
800006c4: 9a840793 addi a5,s0,-1624 # 800019a8 <__stack_top+0x810019a8>
|
||||
800006c8: 9ac90913 addi s2,s2,-1620 # 800019ac <__stack_top+0x810019ac>
|
||||
800006cc: 40f90933 sub s2,s2,a5
|
||||
800006d0: 40295913 srai s2,s2,0x2
|
||||
800006d4: 02090063 beqz s2,800006f4 <__libc_init_array+0x84>
|
||||
800006d8: 9a840413 addi s0,s0,-1624
|
||||
800006dc: 00000493 li s1,0
|
||||
800006e0: 00042783 lw a5,0(s0)
|
||||
800006e4: 00148493 addi s1,s1,1
|
||||
800006e8: 00440413 addi s0,s0,4
|
||||
800006ec: 000780e7 jalr a5
|
||||
800006f0: fe9918e3 bne s2,s1,800006e0 <__libc_init_array+0x70>
|
||||
800006f4: 00c12083 lw ra,12(sp)
|
||||
800006f8: 00812403 lw s0,8(sp)
|
||||
800006fc: 00412483 lw s1,4(sp)
|
||||
80000700: 00012903 lw s2,0(sp)
|
||||
80000704: 01010113 addi sp,sp,16
|
||||
80000708: 00008067 ret
|
||||
|
||||
8000070c <memset>:
|
||||
8000070c: 00f00313 li t1,15
|
||||
80000710: 00050713 mv a4,a0
|
||||
80000714: 02c37e63 bgeu t1,a2,80000750 <memset+0x44>
|
||||
80000718: 00f77793 andi a5,a4,15
|
||||
8000071c: 0a079063 bnez a5,800007bc <memset+0xb0>
|
||||
80000720: 08059263 bnez a1,800007a4 <memset+0x98>
|
||||
80000724: ff067693 andi a3,a2,-16
|
||||
80000728: 00f67613 andi a2,a2,15
|
||||
8000072c: 00e686b3 add a3,a3,a4
|
||||
80000730: 00b72023 sw a1,0(a4) # ff0000 <__stack_size+0xfefc00>
|
||||
80000734: 00b72223 sw a1,4(a4)
|
||||
80000738: 00b72423 sw a1,8(a4)
|
||||
8000073c: 00b72623 sw a1,12(a4)
|
||||
80000740: 01070713 addi a4,a4,16
|
||||
80000744: fed766e3 bltu a4,a3,80000730 <memset+0x24>
|
||||
80000748: 00061463 bnez a2,80000750 <memset+0x44>
|
||||
8000074c: 00008067 ret
|
||||
80000750: 40c306b3 sub a3,t1,a2
|
||||
80000754: 00269693 slli a3,a3,0x2
|
||||
80000758: 00000297 auipc t0,0x0
|
||||
8000075c: 005686b3 add a3,a3,t0
|
||||
80000760: 00c68067 jr 12(a3)
|
||||
80000764: 00b70723 sb a1,14(a4)
|
||||
80000768: 00b706a3 sb a1,13(a4)
|
||||
8000076c: 00b70623 sb a1,12(a4)
|
||||
80000770: 00b705a3 sb a1,11(a4)
|
||||
80000774: 00b70523 sb a1,10(a4)
|
||||
80000778: 00b704a3 sb a1,9(a4)
|
||||
8000077c: 00b70423 sb a1,8(a4)
|
||||
80000780: 00b703a3 sb a1,7(a4)
|
||||
80000784: 00b70323 sb a1,6(a4)
|
||||
80000788: 00b702a3 sb a1,5(a4)
|
||||
8000078c: 00b70223 sb a1,4(a4)
|
||||
80000790: 00b701a3 sb a1,3(a4)
|
||||
80000794: 00b70123 sb a1,2(a4)
|
||||
80000798: 00b700a3 sb a1,1(a4)
|
||||
8000079c: 00b70023 sb a1,0(a4)
|
||||
800007a0: 00008067 ret
|
||||
800007a4: 0ff5f593 andi a1,a1,255
|
||||
800007a8: 00859693 slli a3,a1,0x8
|
||||
800007ac: 00d5e5b3 or a1,a1,a3
|
||||
800007b0: 01059693 slli a3,a1,0x10
|
||||
800007b4: 00d5e5b3 or a1,a1,a3
|
||||
800007b8: f6dff06f j 80000724 <memset+0x18>
|
||||
800007bc: 00279693 slli a3,a5,0x2
|
||||
800007c0: 00000297 auipc t0,0x0
|
||||
800007c4: 005686b3 add a3,a3,t0
|
||||
800007c8: 00008293 mv t0,ra
|
||||
800007cc: fa0680e7 jalr -96(a3)
|
||||
800007d0: 00028093 mv ra,t0
|
||||
800007d4: ff078793 addi a5,a5,-16
|
||||
800007d8: 40f70733 sub a4,a4,a5
|
||||
800007dc: 00f60633 add a2,a2,a5
|
||||
800007e0: f6c378e3 bgeu t1,a2,80000750 <memset+0x44>
|
||||
800007e4: f3dff06f j 80000720 <memset+0x14>
|
||||
|
||||
800007e8 <__register_exitproc>:
|
||||
800007e8: 800027b7 lui a5,0x80002
|
||||
800007ec: dd87a703 lw a4,-552(a5) # 80001dd8 <__stack_top+0x81001dd8>
|
||||
800007f0: 14872783 lw a5,328(a4)
|
||||
800007f4: 04078c63 beqz a5,8000084c <__register_exitproc+0x64>
|
||||
800007f8: 0047a703 lw a4,4(a5)
|
||||
800007fc: 01f00813 li a6,31
|
||||
80000800: 06e84e63 blt a6,a4,8000087c <__register_exitproc+0x94>
|
||||
80000804: 00271813 slli a6,a4,0x2
|
||||
80000808: 02050663 beqz a0,80000834 <__register_exitproc+0x4c>
|
||||
8000080c: 01078333 add t1,a5,a6
|
||||
80000810: 08c32423 sw a2,136(t1)
|
||||
80000814: 1887a883 lw a7,392(a5)
|
||||
80000818: 00100613 li a2,1
|
||||
8000081c: 00e61633 sll a2,a2,a4
|
||||
80000820: 00c8e8b3 or a7,a7,a2
|
||||
80000824: 1917a423 sw a7,392(a5)
|
||||
80000828: 10d32423 sw a3,264(t1)
|
||||
8000082c: 00200693 li a3,2
|
||||
80000830: 02d50463 beq a0,a3,80000858 <__register_exitproc+0x70>
|
||||
80000834: 00170713 addi a4,a4,1
|
||||
80000838: 00e7a223 sw a4,4(a5)
|
||||
8000083c: 010787b3 add a5,a5,a6
|
||||
80000840: 00b7a423 sw a1,8(a5)
|
||||
80000844: 00000513 li a0,0
|
||||
80000848: 00008067 ret
|
||||
8000084c: 14c70793 addi a5,a4,332
|
||||
80000850: 14f72423 sw a5,328(a4)
|
||||
80000854: fa5ff06f j 800007f8 <__register_exitproc+0x10>
|
||||
80000858: 18c7a683 lw a3,396(a5)
|
||||
8000085c: 00170713 addi a4,a4,1
|
||||
80000860: 00e7a223 sw a4,4(a5)
|
||||
80000864: 00c6e633 or a2,a3,a2
|
||||
80000868: 18c7a623 sw a2,396(a5)
|
||||
8000086c: 010787b3 add a5,a5,a6
|
||||
80000870: 00b7a423 sw a1,8(a5)
|
||||
80000874: 00000513 li a0,0
|
||||
80000878: 00008067 ret
|
||||
8000087c: fff00513 li a0,-1
|
||||
80000880: 00008067 ret
|
||||
|
||||
80000884 <__call_exitprocs>:
|
||||
80000884: fd010113 addi sp,sp,-48
|
||||
80000888: 800027b7 lui a5,0x80002
|
||||
8000088c: 01412c23 sw s4,24(sp)
|
||||
80000890: dd87aa03 lw s4,-552(a5) # 80001dd8 <__stack_top+0x81001dd8>
|
||||
80000894: 03212023 sw s2,32(sp)
|
||||
80000898: 02112623 sw ra,44(sp)
|
||||
8000089c: 148a2903 lw s2,328(s4)
|
||||
800008a0: 02812423 sw s0,40(sp)
|
||||
800008a4: 02912223 sw s1,36(sp)
|
||||
800008a8: 01312e23 sw s3,28(sp)
|
||||
800008ac: 01512a23 sw s5,20(sp)
|
||||
800008b0: 01612823 sw s6,16(sp)
|
||||
800008b4: 01712623 sw s7,12(sp)
|
||||
800008b8: 01812423 sw s8,8(sp)
|
||||
800008bc: 04090063 beqz s2,800008fc <__call_exitprocs+0x78>
|
||||
800008c0: 00050b13 mv s6,a0
|
||||
800008c4: 00058b93 mv s7,a1
|
||||
800008c8: 00100a93 li s5,1
|
||||
800008cc: fff00993 li s3,-1
|
||||
800008d0: 00492483 lw s1,4(s2)
|
||||
800008d4: fff48413 addi s0,s1,-1
|
||||
800008d8: 02044263 bltz s0,800008fc <__call_exitprocs+0x78>
|
||||
800008dc: 00249493 slli s1,s1,0x2
|
||||
800008e0: 009904b3 add s1,s2,s1
|
||||
800008e4: 040b8463 beqz s7,8000092c <__call_exitprocs+0xa8>
|
||||
800008e8: 1044a783 lw a5,260(s1)
|
||||
800008ec: 05778063 beq a5,s7,8000092c <__call_exitprocs+0xa8>
|
||||
800008f0: fff40413 addi s0,s0,-1
|
||||
800008f4: ffc48493 addi s1,s1,-4
|
||||
800008f8: ff3416e3 bne s0,s3,800008e4 <__call_exitprocs+0x60>
|
||||
800008fc: 02c12083 lw ra,44(sp)
|
||||
80000900: 02812403 lw s0,40(sp)
|
||||
80000904: 02412483 lw s1,36(sp)
|
||||
80000908: 02012903 lw s2,32(sp)
|
||||
8000090c: 01c12983 lw s3,28(sp)
|
||||
80000910: 01812a03 lw s4,24(sp)
|
||||
80000914: 01412a83 lw s5,20(sp)
|
||||
80000918: 01012b03 lw s6,16(sp)
|
||||
8000091c: 00c12b83 lw s7,12(sp)
|
||||
80000920: 00812c03 lw s8,8(sp)
|
||||
80000924: 03010113 addi sp,sp,48
|
||||
80000928: 00008067 ret
|
||||
8000092c: 00492783 lw a5,4(s2)
|
||||
80000930: 0044a683 lw a3,4(s1)
|
||||
80000934: fff78793 addi a5,a5,-1
|
||||
80000938: 04878e63 beq a5,s0,80000994 <__call_exitprocs+0x110>
|
||||
8000093c: 0004a223 sw zero,4(s1)
|
||||
80000940: fa0688e3 beqz a3,800008f0 <__call_exitprocs+0x6c>
|
||||
80000944: 18892783 lw a5,392(s2)
|
||||
80000948: 008a9733 sll a4,s5,s0
|
||||
8000094c: 00492c03 lw s8,4(s2)
|
||||
80000950: 00f777b3 and a5,a4,a5
|
||||
80000954: 02079263 bnez a5,80000978 <__call_exitprocs+0xf4>
|
||||
80000958: 000680e7 jalr a3
|
||||
8000095c: 00492703 lw a4,4(s2)
|
||||
80000960: 148a2783 lw a5,328(s4)
|
||||
80000964: 01871463 bne a4,s8,8000096c <__call_exitprocs+0xe8>
|
||||
80000968: f8f904e3 beq s2,a5,800008f0 <__call_exitprocs+0x6c>
|
||||
8000096c: f80788e3 beqz a5,800008fc <__call_exitprocs+0x78>
|
||||
80000970: 00078913 mv s2,a5
|
||||
80000974: f5dff06f j 800008d0 <__call_exitprocs+0x4c>
|
||||
80000978: 18c92783 lw a5,396(s2)
|
||||
8000097c: 0844a583 lw a1,132(s1)
|
||||
80000980: 00f77733 and a4,a4,a5
|
||||
80000984: 00071c63 bnez a4,8000099c <__call_exitprocs+0x118>
|
||||
80000988: 000b0513 mv a0,s6
|
||||
8000098c: 000680e7 jalr a3
|
||||
80000990: fcdff06f j 8000095c <__call_exitprocs+0xd8>
|
||||
80000994: 00892223 sw s0,4(s2)
|
||||
80000998: fa9ff06f j 80000940 <__call_exitprocs+0xbc>
|
||||
8000099c: 00058513 mv a0,a1
|
||||
800009a0: 000680e7 jalr a3
|
||||
800009a4: fb9ff06f j 8000095c <__call_exitprocs+0xd8>
|
||||
|
||||
Disassembly of section .init_array:
|
||||
|
||||
800019a8 <__init_array_start>:
|
||||
800019a8: 0068 addi a0,sp,12
|
||||
800019aa: 8000 0x8000
|
||||
|
||||
Disassembly of section .data:
|
||||
|
||||
800019b0 <impure_data>:
|
||||
800019b0: 0000 unimp
|
||||
800019b2: 0000 unimp
|
||||
800019b4: 1c9c addi a5,sp,624
|
||||
800019b6: 8000 0x8000
|
||||
800019b8: 1d04 addi s1,sp,688
|
||||
800019ba: 8000 0x8000
|
||||
800019bc: 1d6c addi a1,sp,700
|
||||
800019be: 8000 0x8000
|
||||
...
|
||||
80001a58: 0001 nop
|
||||
80001a5a: 0000 unimp
|
||||
80001a5c: 0000 unimp
|
||||
80001a5e: 0000 unimp
|
||||
80001a60: 330e fld ft6,224(sp)
|
||||
80001a62: abcd j 80002054 <__BSS_END__+0x1f8>
|
||||
80001a64: 1234 addi a3,sp,296
|
||||
80001a66: e66d bnez a2,80001b50 <impure_data+0x1a0>
|
||||
80001a68: deec sw a1,124(a3)
|
||||
80001a6a: 0005 c.nop 1
|
||||
80001a6c: 0000000b 0xb
|
||||
...
|
||||
|
||||
Disassembly of section .sdata:
|
||||
|
||||
80001dd8 <_global_impure_ptr>:
|
||||
80001dd8: 19b0 addi a2,sp,248
|
||||
80001dda: 8000 0x8000
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
80001ddc <g_wspawn_args>:
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3920 fld fs0,112(a0)
|
||||
c: 322e fld ft4,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .riscv.attributes:
|
||||
|
||||
00000000 <.riscv.attributes>:
|
||||
0: 2541 jal 680 <__stack_size+0x280>
|
||||
2: 0000 unimp
|
||||
4: 7200 flw fs0,32(a2)
|
||||
6: 7369 lui t1,0xffffa
|
||||
8: 01007663 bgeu zero,a6,14 <__stack_usage+0x14>
|
||||
c: 0000001b 0x1b
|
||||
10: 1004 addi s1,sp,32
|
||||
12: 7205 lui tp,0xfffe1
|
||||
14: 3376 fld ft6,376(sp)
|
||||
16: 6932 flw fs2,12(sp)
|
||||
18: 7032 flw ft0,44(sp)
|
||||
1a: 5f30 lw a2,120(a4)
|
||||
1c: 326d jal fffff9c6 <__stack_top+0xfff9c6>
|
||||
1e: 3070 fld fa2,224(s0)
|
||||
20: 665f 7032 0030 0x307032665f
|
Binary file not shown.
70
tests/regression/no_mf_ext/Makefile
Normal file
70
tests/regression/no_mf_ext/Makefile
Normal file
|
@ -0,0 +1,70 @@
|
|||
RISCV_TOOLCHAIN_PATH ?= /opt/riscv-gnu-toolchain
|
||||
VORTEX_DRV_PATH ?= $(realpath ../../../driver)
|
||||
VORTEX_RT_PATH ?= $(realpath ../../../runtime)
|
||||
|
||||
OPTS ?= -n8
|
||||
|
||||
VX_CC = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-gcc
|
||||
VX_CXX = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-g++
|
||||
VX_DP = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-objdump
|
||||
VX_CP = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-objcopy
|
||||
|
||||
VX_CFLAGS += -march=rv32imf -mabi=ilp32f -O3 -Wstack-usage=1024 -ffreestanding -nostartfiles -fdata-sections -ffunction-sections
|
||||
VX_CFLAGS += -I$(VORTEX_RT_PATH)/include -I$(VORTEX_RT_PATH)/../hw
|
||||
|
||||
VX_LDFLAGS += -Wl,-Bstatic,-T,$(VORTEX_RT_PATH)/linker/vx_link.ld -Wl,--gc-sections $(VORTEX_RT_PATH)/libvortexrt.a
|
||||
|
||||
VX_SRCS = kernel.c
|
||||
|
||||
#CXXFLAGS += -std=c++11 -O2 -Wall -Wextra -pedantic -Wfatal-errors
|
||||
CXXFLAGS += -std=c++11 -O0 -g -Wall -Wextra -pedantic -Wfatal-errors
|
||||
|
||||
CXXFLAGS += -I$(VORTEX_DRV_PATH)/include
|
||||
|
||||
LDFLAGS += -L$(VORTEX_DRV_PATH)/stub -lvortex
|
||||
|
||||
PROJECT = no_mf_ext
|
||||
|
||||
SRCS = main.cpp
|
||||
|
||||
all: $(PROJECT) kernel.bin kernel.dump
|
||||
|
||||
kernel.dump: kernel.elf
|
||||
$(VX_DP) -D kernel.elf > kernel.dump
|
||||
|
||||
kernel.bin: kernel.elf
|
||||
$(VX_CP) -O binary kernel.elf kernel.bin
|
||||
|
||||
kernel.elf: $(VX_SRCS)
|
||||
$(VX_CC) $(VX_CFLAGS) $(VX_SRCS) $(VX_LDFLAGS) -o kernel.elf
|
||||
|
||||
$(PROJECT): $(SRCS)
|
||||
$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@
|
||||
|
||||
run-simx: $(PROJECT) kernel.bin
|
||||
LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/simx:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS)
|
||||
|
||||
run-fpga: $(PROJECT) kernel.bin
|
||||
LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/opae:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS)
|
||||
|
||||
run-asesim: $(PROJECT) kernel.bin
|
||||
LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/opae/ase:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS)
|
||||
|
||||
run-vlsim: $(PROJECT) kernel.bin
|
||||
LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/opae/vlsim:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS)
|
||||
|
||||
run-rtlsim: $(PROJECT) kernel.bin
|
||||
LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/rtlsim:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS)
|
||||
|
||||
.depend: $(SRCS)
|
||||
$(CXX) $(CXXFLAGS) -MM $^ > .depend;
|
||||
|
||||
clean:
|
||||
rm -rf $(PROJECT) *.o .depend
|
||||
|
||||
clean-all: clean
|
||||
rm -rf *.elf *.bin *.dump
|
||||
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
-include .depend
|
||||
endif
|
12
tests/regression/no_mf_ext/common.h
Normal file
12
tests/regression/no_mf_ext/common.h
Normal file
|
@ -0,0 +1,12 @@
|
|||
#ifndef _COMMON_H_
|
||||
#define _COMMON_H_
|
||||
|
||||
#define KERNEL_ARG_DEV_MEM_ADDR 0x7ffff000
|
||||
|
||||
struct kernel_arg_t {
|
||||
uint32_t size;
|
||||
uint32_t src_ptr;
|
||||
uint32_t dst_ptr;
|
||||
};
|
||||
|
||||
#endif
|
16
tests/regression/no_mf_ext/kernel.c
Normal file
16
tests/regression/no_mf_ext/kernel.c
Normal file
|
@ -0,0 +1,16 @@
|
|||
#include <stdint.h>
|
||||
#include <vx_intrinsics.h>
|
||||
#include <vx_spawn.h>
|
||||
#include "common.h"
|
||||
|
||||
void main() {
|
||||
struct kernel_arg_t* arg = (struct kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||
|
||||
uint32_t size = arg->size;
|
||||
int32_t* src_ptr = (int32_t*)arg->src_ptr;
|
||||
int32_t* dst_ptr = (int32_t*)arg->dst_ptr;
|
||||
|
||||
for (uint32_t i = 0; i < size; ++i) {
|
||||
dst_ptr[i] = src_ptr[i];
|
||||
}
|
||||
}
|
183
tests/regression/no_mf_ext/main.cpp
Normal file
183
tests/regression/no_mf_ext/main.cpp
Normal file
|
@ -0,0 +1,183 @@
|
|||
#include <iostream>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <vortex.h>
|
||||
#include "common.h"
|
||||
|
||||
#define RT_CHECK(_expr) \
|
||||
do { \
|
||||
int _ret = _expr; \
|
||||
if (0 == _ret) \
|
||||
break; \
|
||||
printf("Error: '%s' returned %d!\n", #_expr, (int)_ret); \
|
||||
cleanup(); \
|
||||
exit(-1); \
|
||||
} while (false)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
const char* kernel_file = "kernel.bin";
|
||||
uint32_t count = 0;
|
||||
|
||||
vx_device_h device = nullptr;
|
||||
vx_buffer_h staging_buf = nullptr;
|
||||
|
||||
static void show_usage() {
|
||||
std::cout << "Vortex Test." << std::endl;
|
||||
std::cout << "Usage: [-k: kernel] [-n words] [-h: help]" << std::endl;
|
||||
}
|
||||
|
||||
static void parse_args(int argc, char **argv) {
|
||||
int c;
|
||||
while ((c = getopt(argc, argv, "n:k:h?")) != -1) {
|
||||
switch (c) {
|
||||
case 'n':
|
||||
count = atoi(optarg);
|
||||
break;
|
||||
case 'k':
|
||||
kernel_file = optarg;
|
||||
break;
|
||||
case 'h':
|
||||
case '?': {
|
||||
show_usage();
|
||||
exit(0);
|
||||
} break;
|
||||
default:
|
||||
show_usage();
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void cleanup() {
|
||||
if (staging_buf) {
|
||||
vx_buf_release(staging_buf);
|
||||
}
|
||||
if (device) {
|
||||
vx_dev_close(device);
|
||||
}
|
||||
}
|
||||
|
||||
int run_test(const kernel_arg_t& kernel_arg,
|
||||
uint32_t buf_size,
|
||||
uint32_t num_points) {
|
||||
// start device
|
||||
std::cout << "start device" << std::endl;
|
||||
RT_CHECK(vx_start(device));
|
||||
|
||||
// wait for completion
|
||||
std::cout << "wait for completion" << std::endl;
|
||||
RT_CHECK(vx_ready_wait(device, -1));
|
||||
|
||||
// download destination buffer
|
||||
std::cout << "download destination buffer" << std::endl;
|
||||
RT_CHECK(vx_copy_from_dev(staging_buf, kernel_arg.dst_ptr, buf_size, 0));
|
||||
|
||||
// verify result
|
||||
std::cout << "verify result" << std::endl;
|
||||
{
|
||||
int errors = 0;
|
||||
auto buf_ptr = (int32_t*)vx_host_ptr(staging_buf);
|
||||
for (uint32_t i = 0; i < num_points; ++i) {
|
||||
int ref = i-1;
|
||||
int cur = buf_ptr[i];
|
||||
if (cur != ref) {
|
||||
std::cout << "error at result #" << std::dec << i
|
||||
<< std::hex << ": actual 0x" << cur << ", expected 0x" << ref << std::endl;
|
||||
++errors;
|
||||
}
|
||||
}
|
||||
if (errors != 0) {
|
||||
std::cout << "Found " << std::dec << errors << " errors!" << std::endl;
|
||||
std::cout << "FAILED!" << std::endl;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
size_t value;
|
||||
kernel_arg_t kernel_arg;
|
||||
|
||||
// parse command arguments
|
||||
parse_args(argc, argv);
|
||||
|
||||
if (count == 0) {
|
||||
count = 1;
|
||||
}
|
||||
|
||||
// open device connection
|
||||
std::cout << "open device connection" << std::endl;
|
||||
RT_CHECK(vx_dev_open(&device));
|
||||
|
||||
uint32_t num_points = count;
|
||||
uint32_t buf_size = num_points * sizeof(int32_t);
|
||||
|
||||
std::cout << "number of points: " << num_points << std::endl;
|
||||
std::cout << "buffer size: " << buf_size << " bytes" << std::endl;
|
||||
|
||||
// upload program
|
||||
std::cout << "upload program" << std::endl;
|
||||
RT_CHECK(vx_upload_kernel_file(device, kernel_file));
|
||||
|
||||
// allocate device memory
|
||||
std::cout << "allocate device memory" << std::endl;
|
||||
|
||||
RT_CHECK(vx_alloc_dev_mem(device, buf_size, &value));
|
||||
kernel_arg.src_ptr = value;
|
||||
|
||||
RT_CHECK(vx_alloc_dev_mem(device, buf_size, &value));
|
||||
kernel_arg.dst_ptr = value;
|
||||
|
||||
kernel_arg.size = num_points;
|
||||
|
||||
std::cout << "dev_src=" << std::hex << kernel_arg.src_ptr << std::endl;
|
||||
std::cout << "dev_dst=" << std::hex << kernel_arg.dst_ptr << std::endl;
|
||||
|
||||
// allocate shared memory
|
||||
std::cout << "allocate shared memory" << std::endl;
|
||||
uint32_t alloc_size = std::max<uint32_t>(buf_size, sizeof(kernel_arg_t));
|
||||
RT_CHECK(vx_alloc_shared_mem(device, alloc_size, &staging_buf));
|
||||
|
||||
// upload kernel argument
|
||||
std::cout << "upload kernel argument" << std::endl;
|
||||
{
|
||||
auto buf_ptr = (int*)vx_host_ptr(staging_buf);
|
||||
memcpy(buf_ptr, &kernel_arg, sizeof(kernel_arg_t));
|
||||
RT_CHECK(vx_copy_to_dev(staging_buf, KERNEL_ARG_DEV_MEM_ADDR, sizeof(kernel_arg_t), 0));
|
||||
}
|
||||
|
||||
// upload source buffer0
|
||||
{
|
||||
auto buf_ptr = (int32_t*)vx_host_ptr(staging_buf);
|
||||
for (uint32_t i = 0; i < num_points; ++i) {
|
||||
buf_ptr[i] = i-1;
|
||||
}
|
||||
}
|
||||
std::cout << "upload source buffer" << std::endl;
|
||||
RT_CHECK(vx_copy_to_dev(staging_buf, kernel_arg.src_ptr, buf_size, 0));
|
||||
|
||||
// clear destination buffer
|
||||
{
|
||||
auto buf_ptr = (int32_t*)vx_host_ptr(staging_buf);
|
||||
for (uint32_t i = 0; i < num_points; ++i) {
|
||||
buf_ptr[i] = 0xdeadbeef;
|
||||
}
|
||||
}
|
||||
std::cout << "clear destination buffer" << std::endl;
|
||||
RT_CHECK(vx_copy_to_dev(staging_buf, kernel_arg.dst_ptr, buf_size, 0));
|
||||
|
||||
// run tests
|
||||
std::cout << "run tests" << std::endl;
|
||||
RT_CHECK(run_test(kernel_arg, buf_size, num_points));
|
||||
|
||||
// cleanup
|
||||
std::cout << "cleanup" << std::endl;
|
||||
cleanup();
|
||||
|
||||
std::cout << "PASSED!" << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
72
tests/regression/no_smem/Makefile
Normal file
72
tests/regression/no_smem/Makefile
Normal file
|
@ -0,0 +1,72 @@
|
|||
RISCV_TOOLCHAIN_PATH ?= /opt/riscv-gnu-toolchain
|
||||
VORTEX_DRV_PATH ?= $(realpath ../../../driver)
|
||||
VORTEX_RT_PATH ?= $(realpath ../../../runtime)
|
||||
|
||||
OPTS ?= -n8
|
||||
|
||||
VX_CC = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-gcc
|
||||
VX_CXX = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-g++
|
||||
VX_DP = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-objdump
|
||||
VX_CP = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-objcopy
|
||||
|
||||
VX_CFLAGS += -march=rv32imf -mabi=ilp32f -O3 -Wstack-usage=1024 -ffreestanding -nostartfiles -fdata-sections -ffunction-sections
|
||||
VX_CFLAGS += -DSM_ENABLE=0 -I$(VORTEX_RT_PATH)/include -I$(VORTEX_RT_PATH)/../hw
|
||||
|
||||
VX_LDFLAGS += -Wl,-Bstatic,-T,$(VORTEX_RT_PATH)/linker/vx_link.ld -Wl,--gc-sections,--defsym=__stack_top=0xfefff000
|
||||
|
||||
VX_RUNTIME = $(VORTEX_RT_PATH)/src/vx_start.S $(VORTEX_RT_PATH)/src/vx_perf.c
|
||||
|
||||
VX_SRCS = kernel.c $(VX_RUNTIME)
|
||||
|
||||
#CXXFLAGS += -std=c++11 -O2 -Wall -Wextra -pedantic -Wfatal-errors
|
||||
CXXFLAGS += -std=c++11 -O0 -g -Wall -Wextra -pedantic -Wfatal-errors
|
||||
|
||||
CXXFLAGS += -I$(VORTEX_DRV_PATH)/include
|
||||
|
||||
LDFLAGS += -L$(VORTEX_DRV_PATH)/stub -lvortex
|
||||
|
||||
PROJECT = no_smem
|
||||
|
||||
SRCS = main.cpp
|
||||
|
||||
all: $(PROJECT) kernel.bin kernel.dump
|
||||
|
||||
kernel.dump: kernel.elf
|
||||
$(VX_DP) -D kernel.elf > kernel.dump
|
||||
|
||||
kernel.bin: kernel.elf
|
||||
$(VX_CP) -O binary kernel.elf kernel.bin
|
||||
|
||||
kernel.elf: $(VX_SRCS)
|
||||
$(VX_CC) $(VX_CFLAGS) $(VX_SRCS) $(VX_LDFLAGS) -o kernel.elf
|
||||
|
||||
$(PROJECT): $(SRCS)
|
||||
$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@
|
||||
|
||||
run-simx: $(PROJECT) kernel.bin
|
||||
LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/simx:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS)
|
||||
|
||||
run-fpga: $(PROJECT) kernel.bin
|
||||
LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/opae:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS)
|
||||
|
||||
run-asesim: $(PROJECT) kernel.bin
|
||||
LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/opae/ase:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS)
|
||||
|
||||
run-vlsim: $(PROJECT) kernel.bin
|
||||
LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/opae/vlsim:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS)
|
||||
|
||||
run-rtlsim: $(PROJECT) kernel.bin
|
||||
LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/rtlsim:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS)
|
||||
|
||||
.depend: $(SRCS)
|
||||
$(CXX) $(CXXFLAGS) -MM $^ > .depend;
|
||||
|
||||
clean:
|
||||
rm -rf $(PROJECT) *.o .depend
|
||||
|
||||
clean-all: clean
|
||||
rm -rf *.elf *.bin *.dump
|
||||
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
-include .depend
|
||||
endif
|
12
tests/regression/no_smem/common.h
Normal file
12
tests/regression/no_smem/common.h
Normal file
|
@ -0,0 +1,12 @@
|
|||
#ifndef _COMMON_H_
|
||||
#define _COMMON_H_
|
||||
|
||||
#define KERNEL_ARG_DEV_MEM_ADDR 0x7ffff000
|
||||
|
||||
struct kernel_arg_t {
|
||||
uint32_t size;
|
||||
uint32_t src_ptr;
|
||||
uint32_t dst_ptr;
|
||||
};
|
||||
|
||||
#endif
|
16
tests/regression/no_smem/kernel.c
Normal file
16
tests/regression/no_smem/kernel.c
Normal file
|
@ -0,0 +1,16 @@
|
|||
#include <stdint.h>
|
||||
#include <vx_intrinsics.h>
|
||||
#include <vx_spawn.h>
|
||||
#include "common.h"
|
||||
|
||||
void main() {
|
||||
struct kernel_arg_t* arg = (struct kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||
|
||||
uint32_t size = arg->size;
|
||||
int32_t* src_ptr = (int32_t*)arg->src_ptr;
|
||||
int32_t* dst_ptr = (int32_t*)arg->dst_ptr;
|
||||
|
||||
for (uint32_t i = 0; i < size; ++i) {
|
||||
dst_ptr[i] = src_ptr[i];
|
||||
}
|
||||
}
|
183
tests/regression/no_smem/main.cpp
Normal file
183
tests/regression/no_smem/main.cpp
Normal file
|
@ -0,0 +1,183 @@
|
|||
#include <iostream>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <vortex.h>
|
||||
#include "common.h"
|
||||
|
||||
#define RT_CHECK(_expr) \
|
||||
do { \
|
||||
int _ret = _expr; \
|
||||
if (0 == _ret) \
|
||||
break; \
|
||||
printf("Error: '%s' returned %d!\n", #_expr, (int)_ret); \
|
||||
cleanup(); \
|
||||
exit(-1); \
|
||||
} while (false)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
const char* kernel_file = "kernel.bin";
|
||||
uint32_t count = 0;
|
||||
|
||||
vx_device_h device = nullptr;
|
||||
vx_buffer_h staging_buf = nullptr;
|
||||
|
||||
static void show_usage() {
|
||||
std::cout << "Vortex Test." << std::endl;
|
||||
std::cout << "Usage: [-k: kernel] [-n words] [-h: help]" << std::endl;
|
||||
}
|
||||
|
||||
static void parse_args(int argc, char **argv) {
|
||||
int c;
|
||||
while ((c = getopt(argc, argv, "n:k:h?")) != -1) {
|
||||
switch (c) {
|
||||
case 'n':
|
||||
count = atoi(optarg);
|
||||
break;
|
||||
case 'k':
|
||||
kernel_file = optarg;
|
||||
break;
|
||||
case 'h':
|
||||
case '?': {
|
||||
show_usage();
|
||||
exit(0);
|
||||
} break;
|
||||
default:
|
||||
show_usage();
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void cleanup() {
|
||||
if (staging_buf) {
|
||||
vx_buf_release(staging_buf);
|
||||
}
|
||||
if (device) {
|
||||
vx_dev_close(device);
|
||||
}
|
||||
}
|
||||
|
||||
int run_test(const kernel_arg_t& kernel_arg,
|
||||
uint32_t buf_size,
|
||||
uint32_t num_points) {
|
||||
// start device
|
||||
std::cout << "start device" << std::endl;
|
||||
RT_CHECK(vx_start(device));
|
||||
|
||||
// wait for completion
|
||||
std::cout << "wait for completion" << std::endl;
|
||||
RT_CHECK(vx_ready_wait(device, -1));
|
||||
|
||||
// download destination buffer
|
||||
std::cout << "download destination buffer" << std::endl;
|
||||
RT_CHECK(vx_copy_from_dev(staging_buf, kernel_arg.dst_ptr, buf_size, 0));
|
||||
|
||||
// verify result
|
||||
std::cout << "verify result" << std::endl;
|
||||
{
|
||||
int errors = 0;
|
||||
auto buf_ptr = (int32_t*)vx_host_ptr(staging_buf);
|
||||
for (uint32_t i = 0; i < num_points; ++i) {
|
||||
int ref = i-1;
|
||||
int cur = buf_ptr[i];
|
||||
if (cur != ref) {
|
||||
std::cout << "error at result #" << std::dec << i
|
||||
<< std::hex << ": actual 0x" << cur << ", expected 0x" << ref << std::endl;
|
||||
++errors;
|
||||
}
|
||||
}
|
||||
if (errors != 0) {
|
||||
std::cout << "Found " << std::dec << errors << " errors!" << std::endl;
|
||||
std::cout << "FAILED!" << std::endl;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
size_t value;
|
||||
kernel_arg_t kernel_arg;
|
||||
|
||||
// parse command arguments
|
||||
parse_args(argc, argv);
|
||||
|
||||
if (count == 0) {
|
||||
count = 1;
|
||||
}
|
||||
|
||||
// open device connection
|
||||
std::cout << "open device connection" << std::endl;
|
||||
RT_CHECK(vx_dev_open(&device));
|
||||
|
||||
uint32_t num_points = count;
|
||||
uint32_t buf_size = num_points * sizeof(int32_t);
|
||||
|
||||
std::cout << "number of points: " << num_points << std::endl;
|
||||
std::cout << "buffer size: " << buf_size << " bytes" << std::endl;
|
||||
|
||||
// upload program
|
||||
std::cout << "upload program" << std::endl;
|
||||
RT_CHECK(vx_upload_kernel_file(device, kernel_file));
|
||||
|
||||
// allocate device memory
|
||||
std::cout << "allocate device memory" << std::endl;
|
||||
|
||||
RT_CHECK(vx_alloc_dev_mem(device, buf_size, &value));
|
||||
kernel_arg.src_ptr = value;
|
||||
|
||||
RT_CHECK(vx_alloc_dev_mem(device, buf_size, &value));
|
||||
kernel_arg.dst_ptr = value;
|
||||
|
||||
kernel_arg.size = num_points;
|
||||
|
||||
std::cout << "dev_src=" << std::hex << kernel_arg.src_ptr << std::endl;
|
||||
std::cout << "dev_dst=" << std::hex << kernel_arg.dst_ptr << std::endl;
|
||||
|
||||
// allocate shared memory
|
||||
std::cout << "allocate shared memory" << std::endl;
|
||||
uint32_t alloc_size = std::max<uint32_t>(buf_size, sizeof(kernel_arg_t));
|
||||
RT_CHECK(vx_alloc_shared_mem(device, alloc_size, &staging_buf));
|
||||
|
||||
// upload kernel argument
|
||||
std::cout << "upload kernel argument" << std::endl;
|
||||
{
|
||||
auto buf_ptr = (int*)vx_host_ptr(staging_buf);
|
||||
memcpy(buf_ptr, &kernel_arg, sizeof(kernel_arg_t));
|
||||
RT_CHECK(vx_copy_to_dev(staging_buf, KERNEL_ARG_DEV_MEM_ADDR, sizeof(kernel_arg_t), 0));
|
||||
}
|
||||
|
||||
// upload source buffer0
|
||||
{
|
||||
auto buf_ptr = (int32_t*)vx_host_ptr(staging_buf);
|
||||
for (uint32_t i = 0; i < num_points; ++i) {
|
||||
buf_ptr[i] = i-1;
|
||||
}
|
||||
}
|
||||
std::cout << "upload source buffer" << std::endl;
|
||||
RT_CHECK(vx_copy_to_dev(staging_buf, kernel_arg.src_ptr, buf_size, 0));
|
||||
|
||||
// clear destination buffer
|
||||
{
|
||||
auto buf_ptr = (int32_t*)vx_host_ptr(staging_buf);
|
||||
for (uint32_t i = 0; i < num_points; ++i) {
|
||||
buf_ptr[i] = 0xdeadbeef;
|
||||
}
|
||||
}
|
||||
std::cout << "clear destination buffer" << std::endl;
|
||||
RT_CHECK(vx_copy_to_dev(staging_buf, kernel_arg.dst_ptr, buf_size, 0));
|
||||
|
||||
// run tests
|
||||
std::cout << "run tests" << std::endl;
|
||||
RT_CHECK(run_test(kernel_arg, buf_size, num_points));
|
||||
|
||||
// cleanup
|
||||
std::cout << "cleanup" << std::endl;
|
||||
cleanup();
|
||||
|
||||
std::cout << "PASSED!" << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue