diff --git a/emulator/test_riscv.sh b/emulator/test_riscv.sh index 656aeeac..b158e362 100755 --- a/emulator/test_riscv.sh +++ b/emulator/test_riscv.sh @@ -1,4 +1,4 @@ echo start > results.txt -echo ../kernel/vortex_test.hex -./harptool -E -a rv32i --core ../runtime/mains/dev/vx_dev_main.hex -s -b 1> emulator.debug +# echo ../kernel/vortex_test.hex +./harptool -E -a rv32i --core ../runtime/mains/simple/vx_simple_main.hex -s -b 1> emulator.debug diff --git a/rtl/VX_define.v b/rtl/VX_define.v index d16cc89d..6d10bd97 100644 --- a/rtl/VX_define.v +++ b/rtl/VX_define.v @@ -128,20 +128,24 @@ //Cache configurations //Cache configurations -`define ICACHE_SIZE 4096 //Bytes + //Bytes +`define ICACHE_SIZE 1024 `ifdef SYN `define ICACHE_WAYS 1 `else `define ICACHE_WAYS 2 `endif -`define ICACHE_BLOCK 128 //Bytes +//Bytes +`define ICACHE_BLOCK 8 `define ICACHE_BANKS 1 `define ICACHE_LOG_NUM_BANKS `CLOG2(`ICACHE_BANKS) -`define ICACHE_NUM_WORDS_PER_BLOCK 16 + +`define ICACHE_NUM_WORDS_PER_BLOCK (`ICACHE_BLOCK / (`ICACHE_BANKS * 4)) `define ICACHE_NUM_REQ 1 `define ICACHE_LOG_NUM_REQ `CLOG2(`ICACHE_NUM_REQ) -`define ICACHE_WAY_INDEX `CLOG2(`ICACHE_WAYS) //set this to 1 if CACHE_WAYS is 1 + //set this to 1 if CACHE_WAYS is 1 +`define ICACHE_WAY_INDEX `CLOG2(`ICACHE_WAYS) //`define ICACHE_WAY_INDEX 1 `define ICACHE_BLOCK_PER_BANK (`ICACHE_BLOCK / `ICACHE_BANKS) @@ -180,20 +184,24 @@ `define ICACHE_ADDR_TAG_END 31 //Cache configurations -`define DCACHE_SIZE 4096 //Bytes +//Bytes +`define DCACHE_SIZE 4096 `ifdef SYN `define DCACHE_WAYS 1 `else -`define DCACHE_WAYS 4 +`define DCACHE_WAYS 2 `endif -`define DCACHE_BLOCK 128 //Bytes + +//Bytes +`define DCACHE_BLOCK 64 `define DCACHE_BANKS 4 `define DCACHE_LOG_NUM_BANKS $clog2(`DCACHE_BANKS) -`define DCACHE_NUM_WORDS_PER_BLOCK 4 +`define DCACHE_NUM_WORDS_PER_BLOCK (`DCACHE_BLOCK / (`DCACHE_BANKS * 4)) `define DCACHE_NUM_REQ `NT `define DCACHE_LOG_NUM_REQ $clog2(`DCACHE_NUM_REQ) -`define DCACHE_WAY_INDEX $clog2(`DCACHE_WAYS) //set this to 1 if CACHE_WAYS is 1 +//set this to 1 if CACHE_WAYS is 1 +`define DCACHE_WAY_INDEX $clog2(`DCACHE_WAYS) //`define DCACHE_WAY_INDEX 1 `define DCACHE_BLOCK_PER_BANK (`DCACHE_BLOCK / `DCACHE_BANKS) diff --git a/rtl/VX_fetch.v b/rtl/VX_fetch.v index b535394d..d71df00f 100644 --- a/rtl/VX_fetch.v +++ b/rtl/VX_fetch.v @@ -26,6 +26,7 @@ module VX_fetch ( wire[`NT_M1:0] thread_mask; wire[`NW_M1:0] warp_num; wire[31:0] warp_pc; + wire scheduled_warp; VX_warp_scheduler warp_scheduler( .clk (clk), .reset (reset), @@ -78,7 +79,8 @@ module VX_fetch ( .thread_mask (thread_mask), .warp_num (warp_num), .warp_pc (warp_pc), - .out_ebreak (out_ebreak) + .out_ebreak (out_ebreak), + .scheduled_warp (scheduled_warp) ); // always @(*) begin @@ -86,7 +88,7 @@ module VX_fetch ( // end assign icache_request.pc_address = warp_pc; - assign icache_request.out_cache_driver_in_valid = !schedule_delay; + assign icache_request.out_cache_driver_in_valid = !schedule_delay && scheduled_warp; assign icache_request.out_cache_driver_in_mem_read = `LW_MEM_READ; assign icache_request.out_cache_driver_in_mem_write = `NO_MEM_WRITE; assign icache_request.out_cache_driver_in_data = 32'b0; diff --git a/rtl/VX_warp_scheduler.v b/rtl/VX_warp_scheduler.v index f5b5ecf4..81589b99 100644 --- a/rtl/VX_warp_scheduler.v +++ b/rtl/VX_warp_scheduler.v @@ -53,7 +53,8 @@ module VX_warp_scheduler ( output wire[`NT_M1:0] thread_mask, output wire[`NW_M1:0] warp_num, output wire[31:0] warp_pc, - output wire out_ebreak + output wire out_ebreak, + output wire scheduled_warp ); @@ -278,6 +279,7 @@ module VX_warp_scheduler ( assign global_stall = (stall || wstall_this_cycle || hazard || !real_schedule || is_join); + assign scheduled_warp = !(wstall_this_cycle || hazard || !real_schedule || is_join); wire real_use_wspawn = use_wsapwn[warp_to_schedule]; diff --git a/rtl/cache/VX_cache_data_per_index.v b/rtl/cache/VX_cache_data_per_index.v index 7cad5702..a364a55e 100644 --- a/rtl/cache/VX_cache_data_per_index.v +++ b/rtl/cache/VX_cache_data_per_index.v @@ -46,7 +46,7 @@ module VX_cache_data_per_index wire [CACHE_WAYS-1:0] valid_use_per_way; wire [CACHE_WAYS-1:0] dirty_use_per_way; wire [CACHE_WAYS-1:0] hit_per_way; - reg [NUM_IND-1:0][CACHE_WAY_INDEX-1:0] eviction_way_index; + reg [CACHE_WAY_INDEX-1:0] eviction_way_index; wire [CACHE_WAYS-1:0][NUM_WORDS_PER_BLOCK-1:0][3:0] we_per_way; wire [CACHE_WAYS-1:0][NUM_WORDS_PER_BLOCK-1:0][31:0] data_write_per_way; wire [CACHE_WAYS-1:0] write_from_mem_per_way; @@ -89,11 +89,11 @@ module VX_cache_data_per_index wire update = |we && !miss; wire valid = &valid_use_per_way; - assign way = hit ? way_index : (valid ? eviction_way_index[addr] : (invalid_found ? invalid_index : 0)); - assign tag_use = hit ? tag_use_per_way[way_index] : (valid ? tag_use_per_way[eviction_way_index[addr]] : (invalid_found ? tag_use_per_way[invalid_index] : 0)); - assign data_use = hit ? data_use_per_way[way_index] : (valid ? data_use_per_way[eviction_way_index[addr]] : (invalid_found ? data_use_per_way[invalid_index] : 0)); - assign valid_use = hit ? valid_use_per_way[way_index] : (valid ? valid_use_per_way[eviction_way_index[addr]] : (invalid_found ? valid_use_per_way[invalid_index] : 0)); - assign dirty_use = hit ? dirty_use_per_way[way_index] : (valid ? dirty_use_per_way[eviction_way_index[addr]] : (invalid_found ? dirty_use_per_way[invalid_index] : 0)); + assign way = hit ? way_index : (valid ? eviction_way_index : (invalid_found ? invalid_index : 0)); + assign tag_use = hit ? tag_use_per_way[way_index] : (valid ? tag_use_per_way[eviction_way_index] : (invalid_found ? tag_use_per_way[invalid_index] : 0)); + assign data_use = hit ? data_use_per_way[way_index] : (valid ? data_use_per_way[eviction_way_index] : (invalid_found ? data_use_per_way[invalid_index] : 0)); + assign valid_use = hit ? valid_use_per_way[way_index] : (valid ? valid_use_per_way[eviction_way_index] : (invalid_found ? valid_use_per_way[invalid_index] : 0)); + assign dirty_use = hit ? dirty_use_per_way[way_index] : (valid ? dirty_use_per_way[eviction_way_index] : (invalid_found ? dirty_use_per_way[invalid_index] : 0)); @@ -132,11 +132,12 @@ module VX_cache_data_per_index if (rst) begin eviction_way_index <= 0; end else begin - if((miss && dirty_use && valid_use && !evict && valid_in)) begin // can be either evict or invalid cache entries - if((eviction_way_index[addr]+1) == CACHE_WAYS) begin - eviction_way_index[addr] <= 0; + // if((miss && dirty_use && valid_use && !evict && valid_in)) begin // can be either evict or invalid cache entries + if((state == SEND_MEM_REQ)) begin // can be either evict or invalid cache entries + if((eviction_way_index+1) == CACHE_WAYS) begin + eviction_way_index <= 0; end else begin - eviction_way_index[addr] <= (eviction_way_index[addr] + 1); + eviction_way_index <= (eviction_way_index + 1); end end end diff --git a/runtime/mains/simple/vx_simple_main.c b/runtime/mains/simple/vx_simple_main.c index cbf59936..98cefffa 100644 --- a/runtime/mains/simple/vx_simple_main.c +++ b/runtime/mains/simple/vx_simple_main.c @@ -52,48 +52,48 @@ int main() // Main is called with all threads active of warp 0 vx_tmc(1); - vx_print_str("Simple Main\n"); + // vx_print_str("Simple Main\n"); - // // TMC test - test_tmc(); + // // // TMC test + // test_tmc(); - // Control Divergence Test - vx_print_str("test_divergence\n"); - vx_tmc(4); - test_divergence(); - vx_tmc(1); + // // Control Divergence Test + // vx_print_str("test_divergence\n"); + // vx_tmc(4); + // test_divergence(); + // vx_tmc(1); // Test wspawn - vx_print_str("test_wspawn\n"); + // vx_print_str("test_wspawn\n"); test_wsapwn(); - vx_print_str("vx_spawnWarps mat_add_kernel\n"); + // vx_print_str("vx_spawnWarps mat_add_kernel\n"); - mat_add_args_t arguments; - arguments.x = x; - arguments.y = y; - arguments.z = z; - arguments.numColums = 4; - arguments.numRows = 4; + // mat_add_args_t arguments; + // arguments.x = x; + // arguments.y = y; + // arguments.z = z; + // arguments.numColums = 4; + // arguments.numRows = 4; - int numWarps = 4; - int numThreads = 4; + // int numWarps = 4; + // int numThreads = 4; - vx_spawnWarps(numWarps, numThreads, mat_add_kernel, &arguments); + // vx_spawnWarps(numWarps, numThreads, mat_add_kernel, &arguments); - for (int i = 0; i < arguments.numRows; i++) - { - for (int j = 0; j < arguments.numColums; j++) - { - unsigned index = (i * arguments.numColums) + j; - vx_print_hex(z[index]); - vx_print_str(" "); - } - vx_print_str("\n"); - } + // for (int i = 0; i < arguments.numRows; i++) + // { + // for (int j = 0; j < arguments.numColums; j++) + // { + // unsigned index = (i * arguments.numColums) + j; + // vx_print_hex(z[index]); + // vx_print_str(" "); + // } + // vx_print_str("\n"); + // } return 0; } \ No newline at end of file diff --git a/runtime/mains/simple/vx_simple_main.dump b/runtime/mains/simple/vx_simple_main.dump index 6de47810..353f06aa 100644 --- a/runtime/mains/simple/vx_simple_main.dump +++ b/runtime/mains/simple/vx_simple_main.dump @@ -114,7 +114,7 @@ Disassembly of section .text: 80000128: 810007b7 lui a5,0x81000 8000012c: fec42703 lw a4,-20(s0) 80000130: 00271713 slli a4,a4,0x2 -80000134: 15478793 addi a5,a5,340 # 81000154 +80000134: 0f878793 addi a5,a5,248 # 810000f8 80000138: 00f707b3 add a5,a4,a5 8000013c: 0007a783 lw a5,0(a5) 80000140: 00078513 mv a0,a5 @@ -137,7 +137,7 @@ Disassembly of section .text: 8000017c: fe842503 lw a0,-24(s0) 80000180: f95ff0ef jal ra,80000114 80000184: 810007b7 lui a5,0x81000 -80000188: 04078513 addi a0,a5,64 # 81000040 +80000188: 04078513 addi a0,a5,64 # 81000040 8000018c: f4dff0ef jal ra,800000d8 80000190: 00000013 nop 80000194: 01c12083 lw ra,28(sp) @@ -151,13 +151,13 @@ Disassembly of section .text: 800001ac: 00812c23 sw s0,24(sp) 800001b0: 02010413 addi s0,sp,32 800001b4: 810007b7 lui a5,0x81000 -800001b8: 2ac7a783 lw a5,684(a5) # 810002ac +800001b8: 2507a783 lw a5,592(a5) # 81000250 800001bc: 00078513 mv a0,a5 800001c0: ea9ff0ef jal ra,80000068 800001c4: 810007b7 lui a5,0x81000 -800001c8: 2a87a703 lw a4,680(a5) # 810002a8 +800001c8: 24c7a703 lw a4,588(a5) # 8100024c 800001cc: 810007b7 lui a5,0x81000 -800001d0: 2a47a783 lw a5,676(a5) # 810002a4 +800001d0: 2487a783 lw a5,584(a5) # 81000248 800001d4: 00078513 mv a0,a5 800001d8: 000700e7 jalr a4 800001dc: eadff0ef jal ra,80000088 @@ -186,15 +186,15 @@ Disassembly of section .text: 80000230: fed42023 sw a3,-32(s0) 80000234: 810007b7 lui a5,0x81000 80000238: fe442703 lw a4,-28(s0) -8000023c: 2ae7a423 sw a4,680(a5) # 810002a8 +8000023c: 24e7a623 sw a4,588(a5) # 8100024c 80000240: 810007b7 lui a5,0x81000 80000244: fe042703 lw a4,-32(s0) -80000248: 2ae7a223 sw a4,676(a5) # 810002a4 +80000248: 24e7a423 sw a4,584(a5) # 81000248 8000024c: 810007b7 lui a5,0x81000 80000250: fe842703 lw a4,-24(s0) -80000254: 2ae7a623 sw a4,684(a5) # 810002ac +80000254: 24e7a823 sw a4,592(a5) # 81000250 80000258: 800007b7 lui a5,0x80000 -8000025c: 1a478793 addi a5,a5,420 # 800001a4 +8000025c: 1a478793 addi a5,a5,420 # 800001a4 80000260: 00078593 mv a1,a5 80000264: fec42503 lw a0,-20(s0) 80000268: df9ff0ef jal ra,80000060 @@ -211,7 +211,7 @@ Disassembly of section .text: 8000028c: 00812c23 sw s0,24(sp) 80000290: 02010413 addi s0,sp,32 80000294: 810007b7 lui a5,0x81000 -80000298: 08478513 addi a0,a5,132 # 81000084 +80000298: 08478513 addi a0,a5,132 # 81000084 8000029c: e3dff0ef jal ra,800000d8 800002a0: 00400513 li a0,4 800002a4: dc5ff0ef jal ra,80000068 @@ -221,41 +221,41 @@ Disassembly of section .text: 800002b4: 810007b7 lui a5,0x81000 800002b8: fec42683 lw a3,-20(s0) 800002bc: 00269693 slli a3,a3,0x2 -800002c0: 1d478793 addi a5,a5,468 # 810001d4 +800002c0: 17878793 addi a5,a5,376 # 81000178 800002c4: 00f687b3 add a5,a3,a5 800002c8: 00e7a023 sw a4,0(a5) 800002cc: 00100513 li a0,1 800002d0: d99ff0ef jal ra,80000068 800002d4: 810007b7 lui a5,0x81000 -800002d8: 1d47a783 lw a5,468(a5) # 810001d4 +800002d8: 1787a783 lw a5,376(a5) # 81000178 800002dc: 00078513 mv a0,a5 800002e0: e35ff0ef jal ra,80000114 800002e4: 810007b7 lui a5,0x81000 -800002e8: 09478513 addi a0,a5,148 # 81000094 +800002e8: 09478513 addi a0,a5,148 # 81000094 800002ec: dedff0ef jal ra,800000d8 800002f0: 810007b7 lui a5,0x81000 -800002f4: 1d478793 addi a5,a5,468 # 810001d4 +800002f4: 17878793 addi a5,a5,376 # 81000178 800002f8: 0047a783 lw a5,4(a5) 800002fc: 00078513 mv a0,a5 80000300: e15ff0ef jal ra,80000114 80000304: 810007b7 lui a5,0x81000 -80000308: 09478513 addi a0,a5,148 # 81000094 +80000308: 09478513 addi a0,a5,148 # 81000094 8000030c: dcdff0ef jal ra,800000d8 80000310: 810007b7 lui a5,0x81000 -80000314: 1d478793 addi a5,a5,468 # 810001d4 +80000314: 17878793 addi a5,a5,376 # 81000178 80000318: 0087a783 lw a5,8(a5) 8000031c: 00078513 mv a0,a5 80000320: df5ff0ef jal ra,80000114 80000324: 810007b7 lui a5,0x81000 -80000328: 09478513 addi a0,a5,148 # 81000094 +80000328: 09478513 addi a0,a5,148 # 81000094 8000032c: dadff0ef jal ra,800000d8 80000330: 810007b7 lui a5,0x81000 -80000334: 1d478793 addi a5,a5,468 # 810001d4 +80000334: 17878793 addi a5,a5,376 # 81000178 80000338: 00c7a783 lw a5,12(a5) 8000033c: 00078513 mv a0,a5 80000340: dd5ff0ef jal ra,80000114 80000344: 810007b7 lui a5,0x81000 -80000348: 09478513 addi a0,a5,148 # 81000094 +80000348: 09478513 addi a0,a5,148 # 81000094 8000034c: d8dff0ef jal ra,800000d8 80000350: 00000013 nop 80000354: 01c12083 lw ra,28(sp) @@ -289,7 +289,7 @@ Disassembly of section .text: 800003bc: 810007b7 lui a5,0x81000 800003c0: fec42703 lw a4,-20(s0) 800003c4: 00271713 slli a4,a4,0x2 -800003c8: 2c078793 addi a5,a5,704 # 810002c0 +800003c8: 26478793 addi a5,a5,612 # 81000264 800003cc: 00f707b3 add a5,a4,a5 800003d0: 00a00713 li a4,10 800003d4: 00e7a023 sw a4,0(a5) @@ -297,7 +297,7 @@ Disassembly of section .text: 800003dc: 810007b7 lui a5,0x81000 800003e0: fec42703 lw a4,-20(s0) 800003e4: 00271713 slli a4,a4,0x2 -800003e8: 2c078793 addi a5,a5,704 # 810002c0 +800003e8: 26478793 addi a5,a5,612 # 81000264 800003ec: 00f707b3 add a5,a4,a5 800003f0: 00b00713 li a4,11 800003f4: 00e7a023 sw a4,0(a5) @@ -314,7 +314,7 @@ Disassembly of section .text: 80000420: 810007b7 lui a5,0x81000 80000424: fec42703 lw a4,-20(s0) 80000428: 00271713 slli a4,a4,0x2 -8000042c: 2c078793 addi a5,a5,704 # 810002c0 +8000042c: 26478793 addi a5,a5,612 # 81000264 80000430: 00f707b3 add a5,a4,a5 80000434: 00c00713 li a4,12 80000438: 00e7a023 sw a4,0(a5) @@ -322,42 +322,42 @@ Disassembly of section .text: 80000440: 810007b7 lui a5,0x81000 80000444: fec42703 lw a4,-20(s0) 80000448: 00271713 slli a4,a4,0x2 -8000044c: 2c078793 addi a5,a5,704 # 810002c0 +8000044c: 26478793 addi a5,a5,612 # 81000264 80000450: 00f707b3 add a5,a4,a5 80000454: 00d00713 li a4,13 80000458: 00e7a023 sw a4,0(a5) 8000045c: c25ff0ef jal ra,80000080 80000460: c21ff0ef jal ra,80000080 80000464: 810007b7 lui a5,0x81000 -80000468: 2c07a783 lw a5,704(a5) # 810002c0 +80000468: 2647a783 lw a5,612(a5) # 81000264 8000046c: 00078513 mv a0,a5 80000470: ca5ff0ef jal ra,80000114 80000474: 810007b7 lui a5,0x81000 -80000478: 09478513 addi a0,a5,148 # 81000094 +80000478: 09478513 addi a0,a5,148 # 81000094 8000047c: c5dff0ef jal ra,800000d8 80000480: 810007b7 lui a5,0x81000 -80000484: 2c078793 addi a5,a5,704 # 810002c0 +80000484: 26478793 addi a5,a5,612 # 81000264 80000488: 0047a783 lw a5,4(a5) 8000048c: 00078513 mv a0,a5 80000490: c85ff0ef jal ra,80000114 80000494: 810007b7 lui a5,0x81000 -80000498: 09478513 addi a0,a5,148 # 81000094 +80000498: 09478513 addi a0,a5,148 # 81000094 8000049c: c3dff0ef jal ra,800000d8 800004a0: 810007b7 lui a5,0x81000 -800004a4: 2c078793 addi a5,a5,704 # 810002c0 +800004a4: 26478793 addi a5,a5,612 # 81000264 800004a8: 0087a783 lw a5,8(a5) 800004ac: 00078513 mv a0,a5 800004b0: c65ff0ef jal ra,80000114 800004b4: 810007b7 lui a5,0x81000 -800004b8: 09478513 addi a0,a5,148 # 81000094 +800004b8: 09478513 addi a0,a5,148 # 81000094 800004bc: c1dff0ef jal ra,800000d8 800004c0: 810007b7 lui a5,0x81000 -800004c4: 2c078793 addi a5,a5,704 # 810002c0 +800004c4: 26478793 addi a5,a5,612 # 81000264 800004c8: 00c7a783 lw a5,12(a5) 800004cc: 00078513 mv a0,a5 800004d0: c45ff0ef jal ra,80000114 800004d4: 810007b7 lui a5,0x81000 -800004d8: 09478513 addi a0,a5,148 # 81000094 +800004d8: 09478513 addi a0,a5,148 # 81000094 800004dc: bfdff0ef jal ra,800000d8 800004e0: 00000013 nop 800004e4: 01c12083 lw ra,28(sp) @@ -375,7 +375,7 @@ Disassembly of section .text: 8000050c: 810007b7 lui a5,0x81000 80000510: fec42703 lw a4,-20(s0) 80000514: 00271713 slli a4,a4,0x2 -80000518: 2b078793 addi a5,a5,688 # 810002b0 +80000518: 25478793 addi a5,a5,596 # 81000254 8000051c: 00f707b3 add a5,a4,a5 80000520: fec42703 lw a4,-20(s0) 80000524: 00e7a023 sw a4,0(a5) @@ -395,42 +395,42 @@ Disassembly of section .text: 80000554: 00812c23 sw s0,24(sp) 80000558: 02010413 addi s0,sp,32 8000055c: 800007b7 lui a5,0x80000 -80000560: 4f478793 addi a5,a5,1268 # 800004f4 +80000560: 4f478793 addi a5,a5,1268 # 800004f4 80000564: fef42623 sw a5,-20(s0) 80000568: fec42583 lw a1,-20(s0) 8000056c: 00400513 li a0,4 80000570: af1ff0ef jal ra,80000060 80000574: f81ff0ef jal ra,800004f4 80000578: 810007b7 lui a5,0x81000 -8000057c: 2b07a783 lw a5,688(a5) # 810002b0 +8000057c: 2547a783 lw a5,596(a5) # 81000254 80000580: 00078513 mv a0,a5 80000584: b91ff0ef jal ra,80000114 80000588: 810007b7 lui a5,0x81000 -8000058c: 09478513 addi a0,a5,148 # 81000094 +8000058c: 09478513 addi a0,a5,148 # 81000094 80000590: b49ff0ef jal ra,800000d8 80000594: 810007b7 lui a5,0x81000 -80000598: 2b078793 addi a5,a5,688 # 810002b0 +80000598: 25478793 addi a5,a5,596 # 81000254 8000059c: 0047a783 lw a5,4(a5) 800005a0: 00078513 mv a0,a5 800005a4: b71ff0ef jal ra,80000114 800005a8: 810007b7 lui a5,0x81000 -800005ac: 09478513 addi a0,a5,148 # 81000094 +800005ac: 09478513 addi a0,a5,148 # 81000094 800005b0: b29ff0ef jal ra,800000d8 800005b4: 810007b7 lui a5,0x81000 -800005b8: 2b078793 addi a5,a5,688 # 810002b0 +800005b8: 25478793 addi a5,a5,596 # 81000254 800005bc: 0087a783 lw a5,8(a5) 800005c0: 00078513 mv a0,a5 800005c4: b51ff0ef jal ra,80000114 800005c8: 810007b7 lui a5,0x81000 -800005cc: 09478513 addi a0,a5,148 # 81000094 +800005cc: 09478513 addi a0,a5,148 # 81000094 800005d0: b09ff0ef jal ra,800000d8 800005d4: 810007b7 lui a5,0x81000 -800005d8: 2b078793 addi a5,a5,688 # 810002b0 +800005d8: 25478793 addi a5,a5,596 # 81000254 800005dc: 00c7a783 lw a5,12(a5) 800005e0: 00078513 mv a0,a5 800005e4: b31ff0ef jal ra,80000114 800005e8: 810007b7 lui a5,0x81000 -800005ec: 09478513 addi a0,a5,148 # 81000094 +800005ec: 09478513 addi a0,a5,148 # 81000094 800005f0: ae9ff0ef jal ra,800000d8 800005f4: 00000013 nop 800005f8: 01c12083 lw ra,28(sp) @@ -445,7 +445,7 @@ Disassembly of section .text: 80000614: 01010413 addi s0,sp,16 80000618: c6dff0ef jal ra,80000284 8000061c: 810007b7 lui a5,0x81000 -80000620: 09878513 addi a0,a5,152 # 81000098 +80000620: 09878513 addi a0,a5,152 # 81000098 80000624: ab5ff0ef jal ra,800000d8 80000628: 00400513 li a0,4 8000062c: a3dff0ef jal ra,80000068 @@ -453,7 +453,7 @@ Disassembly of section .text: 80000634: 00100513 li a0,1 80000638: a31ff0ef jal ra,80000068 8000063c: 810007b7 lui a5,0x81000 -80000640: 0ac78513 addi a0,a5,172 # 810000ac +80000640: 0ac78513 addi a0,a5,172 # 810000ac 80000644: a95ff0ef jal ra,800000d8 80000648: f05ff0ef jal ra,8000054c 8000064c: 00000013 nop @@ -528,98 +528,19 @@ Disassembly of section .text: 80000758: 00008067 ret 8000075c
: -8000075c: fc010113 addi sp,sp,-64 -80000760: 02112e23 sw ra,60(sp) -80000764: 02812c23 sw s0,56(sp) -80000768: 04010413 addi s0,sp,64 +8000075c: ff010113 addi sp,sp,-16 +80000760: 00112623 sw ra,12(sp) +80000764: 00812423 sw s0,8(sp) +80000768: 01010413 addi s0,sp,16 8000076c: 00100513 li a0,1 80000770: 8f9ff0ef jal ra,80000068 -80000774: 810007b7 lui a5,0x81000 -80000778: 0f878513 addi a0,a5,248 # 810000f8 -8000077c: 95dff0ef jal ra,800000d8 -80000780: b05ff0ef jal ra,80000284 -80000784: 810007b7 lui a5,0x81000 -80000788: 10878513 addi a0,a5,264 # 81000108 -8000078c: 94dff0ef jal ra,800000d8 -80000790: 00400513 li a0,4 -80000794: 8d5ff0ef jal ra,80000068 -80000798: bcdff0ef jal ra,80000364 -8000079c: 00100513 li a0,1 -800007a0: 8c9ff0ef jal ra,80000068 -800007a4: 810007b7 lui a5,0x81000 -800007a8: 11c78513 addi a0,a5,284 # 8100011c -800007ac: 92dff0ef jal ra,800000d8 -800007b0: d9dff0ef jal ra,8000054c -800007b4: 810007b7 lui a5,0x81000 -800007b8: 12c78513 addi a0,a5,300 # 8100012c -800007bc: 91dff0ef jal ra,800000d8 -800007c0: 810007b7 lui a5,0x81000 -800007c4: 22478793 addi a5,a5,548 # 81000224 -800007c8: fcf42423 sw a5,-56(s0) -800007cc: 810007b7 lui a5,0x81000 -800007d0: 26478793 addi a5,a5,612 # 81000264 -800007d4: fcf42623 sw a5,-52(s0) -800007d8: 810007b7 lui a5,0x81000 -800007dc: 2d078793 addi a5,a5,720 # 810002d0 -800007e0: fcf42823 sw a5,-48(s0) -800007e4: 00400793 li a5,4 -800007e8: fcf42a23 sw a5,-44(s0) -800007ec: 00400793 li a5,4 -800007f0: fcf42c23 sw a5,-40(s0) -800007f4: 00400793 li a5,4 -800007f8: fef42223 sw a5,-28(s0) -800007fc: 00400793 li a5,4 -80000800: fef42023 sw a5,-32(s0) -80000804: fe442703 lw a4,-28(s0) -80000808: fe042583 lw a1,-32(s0) -8000080c: fc840793 addi a5,s0,-56 -80000810: 00078693 mv a3,a5 -80000814: 800007b7 lui a5,0x80000 -80000818: 66078613 addi a2,a5,1632 # 80000660 -8000081c: 00070513 mv a0,a4 -80000820: 9f5ff0ef jal ra,80000214 -80000824: fe042623 sw zero,-20(s0) -80000828: 0800006f j 800008a8 -8000082c: fe042423 sw zero,-24(s0) -80000830: 0540006f j 80000884 -80000834: fd442703 lw a4,-44(s0) -80000838: fec42783 lw a5,-20(s0) -8000083c: 02f70733 mul a4,a4,a5 -80000840: fe842783 lw a5,-24(s0) -80000844: 00f707b3 add a5,a4,a5 -80000848: fcf42e23 sw a5,-36(s0) -8000084c: 810007b7 lui a5,0x81000 -80000850: fdc42703 lw a4,-36(s0) -80000854: 00271713 slli a4,a4,0x2 -80000858: 2d078793 addi a5,a5,720 # 810002d0 -8000085c: 00f707b3 add a5,a4,a5 -80000860: 0007a783 lw a5,0(a5) -80000864: 00078513 mv a0,a5 -80000868: 8adff0ef jal ra,80000114 -8000086c: 810007b7 lui a5,0x81000 -80000870: 14c78513 addi a0,a5,332 # 8100014c -80000874: 865ff0ef jal ra,800000d8 -80000878: fe842783 lw a5,-24(s0) -8000087c: 00178793 addi a5,a5,1 -80000880: fef42423 sw a5,-24(s0) -80000884: fd442703 lw a4,-44(s0) -80000888: fe842783 lw a5,-24(s0) -8000088c: fae7e4e3 bltu a5,a4,80000834 -80000890: 810007b7 lui a5,0x81000 -80000894: 15078513 addi a0,a5,336 # 81000150 -80000898: 841ff0ef jal ra,800000d8 -8000089c: fec42783 lw a5,-20(s0) -800008a0: 00178793 addi a5,a5,1 -800008a4: fef42623 sw a5,-20(s0) -800008a8: fd842703 lw a4,-40(s0) -800008ac: fec42783 lw a5,-20(s0) -800008b0: f6e7eee3 bltu a5,a4,8000082c -800008b4: 00000793 li a5,0 -800008b8: 00078513 mv a0,a5 -800008bc: 03c12083 lw ra,60(sp) -800008c0: 03812403 lw s0,56(sp) -800008c4: 04010113 addi sp,sp,64 -800008c8: 00008067 ret +80000774: dd9ff0ef jal ra,8000054c +80000778: 00000793 li a5,0 +8000077c: 00078513 mv a0,a5 +80000780: 00c12083 lw ra,12(sp) +80000784: 00812403 lw s0,8(sp) +80000788: 01010113 addi sp,sp,16 +8000078c: 00008067 ret Disassembly of section .rodata: @@ -731,242 +652,206 @@ Disassembly of section .rodata: 810000f0: 0065 c.nop 25 810000f2: 0000 unimp 810000f4: 0066 c.slli zero,0x19 -810000f6: 0000 unimp -810000f8: 706d6953 0x706d6953 -810000fc: 656c flw fa1,76(a0) -810000fe: 4d20 lw s0,88(a0) -81000100: 6961 lui s2,0x18 -81000102: 0a6e slli s4,s4,0x1b -81000104: 0000 unimp -81000106: 0000 unimp -81000108: 6574 flw fa3,76(a0) -8100010a: 645f7473 csrrci s0,0x645,30 -8100010e: 7669 lui a2,0xffffa -81000110: 7265 lui tp,0xffff9 -81000112: 636e6567 0x636e6567 -81000116: 0a65 addi s4,s4,25 -81000118: 0000 unimp -8100011a: 0000 unimp -8100011c: 6574 flw fa3,76(a0) -8100011e: 775f7473 csrrci s0,0x775,30 -81000122: 77617073 csrci 0x776,2 -81000126: 0a6e slli s4,s4,0x1b -81000128: 0000 unimp -8100012a: 0000 unimp -8100012c: 7876 flw fa6,124(sp) -8100012e: 735f 6170 6e77 0x6e776170735f -81000134: 70726157 0x70726157 -81000138: 616d2073 csrs 0x616,s10 -8100013c: 5f74 lw a3,124(a4) -8100013e: 6461 lui s0,0x18 -81000140: 5f64 lw s1,124(a4) -81000142: 6e72656b 0x6e72656b -81000146: 6c65 lui s8,0x19 -81000148: 000a c.slli zero,0x2 -8100014a: 0000 unimp -8100014c: 0020 addi s0,sp,8 -8100014e: 0000 unimp -81000150: 000a c.slli zero,0x2 Disassembly of section .data: -81000154 : -81000154: 0000 unimp +810000f8 : +810000f8: 0000 unimp +810000fa: 8100 0x8100 +810000fc: 0004 0x4 +810000fe: 8100 0x8100 +81000100: 0008 0x8 +81000102: 8100 0x8100 +81000104: 000c 0xc +81000106: 8100 0x8100 +81000108: 0010 0x10 +8100010a: 8100 0x8100 +8100010c: 0014 0x14 +8100010e: 8100 0x8100 +81000110: 0018 0x18 +81000112: 8100 0x8100 +81000114: 001c 0x1c +81000116: 8100 0x8100 +81000118: 0020 addi s0,sp,8 +8100011a: 8100 0x8100 +8100011c: 0024 addi s1,sp,8 +8100011e: 8100 0x8100 +81000120: 0028 addi a0,sp,8 +81000122: 8100 0x8100 +81000124: 002c addi a1,sp,8 +81000126: 8100 0x8100 +81000128: 0030 addi a2,sp,8 +8100012a: 8100 0x8100 +8100012c: 0034 addi a3,sp,8 +8100012e: 8100 0x8100 +81000130: 0038 addi a4,sp,8 +81000132: 8100 0x8100 +81000134: 003c addi a5,sp,8 +81000136: 8100 0x8100 + +81000138 : +81000138: 0044 addi s1,sp,4 +8100013a: 8100 0x8100 +8100013c: 0048 addi a0,sp,4 +8100013e: 8100 0x8100 +81000140: 004c addi a1,sp,4 +81000142: 8100 0x8100 +81000144: 0050 addi a2,sp,4 +81000146: 8100 0x8100 +81000148: 0054 addi a3,sp,4 +8100014a: 8100 0x8100 +8100014c: 0058 addi a4,sp,4 +8100014e: 8100 0x8100 +81000150: 005c addi a5,sp,4 +81000152: 8100 0x8100 +81000154: 0060 addi s0,sp,12 81000156: 8100 0x8100 -81000158: 0004 0x4 +81000158: 0064 addi s1,sp,12 8100015a: 8100 0x8100 -8100015c: 0008 0x8 +8100015c: 0068 addi a0,sp,12 8100015e: 8100 0x8100 -81000160: 000c 0xc +81000160: 006c addi a1,sp,12 81000162: 8100 0x8100 -81000164: 0010 0x10 +81000164: 0070 addi a2,sp,12 81000166: 8100 0x8100 -81000168: 0014 0x14 +81000168: 0074 addi a3,sp,12 8100016a: 8100 0x8100 -8100016c: 0018 0x18 +8100016c: 0078 addi a4,sp,12 8100016e: 8100 0x8100 -81000170: 001c 0x1c +81000170: 007c addi a5,sp,12 81000172: 8100 0x8100 -81000174: 0020 addi s0,sp,8 +81000174: 0080 addi s0,sp,64 81000176: 8100 0x8100 -81000178: 0024 addi s1,sp,8 -8100017a: 8100 0x8100 -8100017c: 0028 addi a0,sp,8 -8100017e: 8100 0x8100 -81000180: 002c addi a1,sp,8 -81000182: 8100 0x8100 -81000184: 0030 addi a2,sp,8 -81000186: 8100 0x8100 -81000188: 0034 addi a3,sp,8 + +81000178 : +81000178: 0005 c.nop 1 +8100017a: 0000 unimp +8100017c: 0005 c.nop 1 +8100017e: 0000 unimp +81000180: 0005 c.nop 1 +81000182: 0000 unimp +81000184: 0005 c.nop 1 + ... + +81000188 : +81000188: 00b8 addi a4,sp,72 8100018a: 8100 0x8100 -8100018c: 0038 addi a4,sp,8 +8100018c: 00bc addi a5,sp,72 8100018e: 8100 0x8100 -81000190: 003c addi a5,sp,8 +81000190: 00c0 addi s0,sp,68 81000192: 8100 0x8100 - -81000194 : -81000194: 0044 addi s1,sp,4 +81000194: 00c4 addi s1,sp,68 81000196: 8100 0x8100 -81000198: 0048 addi a0,sp,4 +81000198: 00c8 addi a0,sp,68 8100019a: 8100 0x8100 -8100019c: 004c addi a1,sp,4 +8100019c: 00cc addi a1,sp,68 8100019e: 8100 0x8100 -810001a0: 0050 addi a2,sp,4 +810001a0: 00d0 addi a2,sp,68 810001a2: 8100 0x8100 -810001a4: 0054 addi a3,sp,4 +810001a4: 00d4 addi a3,sp,68 810001a6: 8100 0x8100 -810001a8: 0058 addi a4,sp,4 +810001a8: 00d8 addi a4,sp,68 810001aa: 8100 0x8100 -810001ac: 005c addi a5,sp,4 +810001ac: 00dc addi a5,sp,68 810001ae: 8100 0x8100 -810001b0: 0060 addi s0,sp,12 +810001b0: 00e0 addi s0,sp,76 810001b2: 8100 0x8100 -810001b4: 0064 addi s1,sp,12 +810001b4: 00e4 addi s1,sp,76 810001b6: 8100 0x8100 -810001b8: 0068 addi a0,sp,12 +810001b8: 00e8 addi a0,sp,76 810001ba: 8100 0x8100 -810001bc: 006c addi a1,sp,12 +810001bc: 00ec addi a1,sp,76 810001be: 8100 0x8100 -810001c0: 0070 addi a2,sp,12 +810001c0: 00f0 addi a2,sp,76 810001c2: 8100 0x8100 -810001c4: 0074 addi a3,sp,12 +810001c4: 00f4 addi a3,sp,76 810001c6: 8100 0x8100 -810001c8: 0078 addi a4,sp,12 -810001ca: 8100 0x8100 -810001cc: 007c addi a5,sp,12 -810001ce: 8100 0x8100 -810001d0: 0080 addi s0,sp,64 -810001d2: 8100 0x8100 -810001d4 : +810001c8 : +810001c8: 0005 c.nop 1 +810001ca: 0000 unimp +810001cc: 0005 c.nop 1 +810001ce: 0000 unimp +810001d0: 0005 c.nop 1 +810001d2: 0000 unimp 810001d4: 0005 c.nop 1 810001d6: 0000 unimp -810001d8: 0005 c.nop 1 +810001d8: 0006 c.slli zero,0x1 810001da: 0000 unimp -810001dc: 0005 c.nop 1 +810001dc: 0006 c.slli zero,0x1 810001de: 0000 unimp -810001e0: 0005 c.nop 1 +810001e0: 0006 c.slli zero,0x1 +810001e2: 0000 unimp +810001e4: 0006 c.slli zero,0x1 +810001e6: 0000 unimp +810001e8: 00000007 0x7 +810001ec: 00000007 0x7 +810001f0: 00000007 0x7 +810001f4: 00000007 0x7 +810001f8: 0008 0x8 +810001fa: 0000 unimp +810001fc: 0008 0x8 +810001fe: 0000 unimp +81000200: 0008 0x8 +81000202: 0000 unimp +81000204: 0008 0x8 ... -810001e4 : -810001e4: 00b8 addi a4,sp,72 -810001e6: 8100 0x8100 -810001e8: 00bc addi a5,sp,72 -810001ea: 8100 0x8100 -810001ec: 00c0 addi s0,sp,68 -810001ee: 8100 0x8100 -810001f0: 00c4 addi s1,sp,68 -810001f2: 8100 0x8100 -810001f4: 00c8 addi a0,sp,68 -810001f6: 8100 0x8100 -810001f8: 00cc addi a1,sp,68 -810001fa: 8100 0x8100 -810001fc: 00d0 addi a2,sp,68 -810001fe: 8100 0x8100 -81000200: 00d4 addi a3,sp,68 -81000202: 8100 0x8100 -81000204: 00d8 addi a4,sp,68 -81000206: 8100 0x8100 -81000208: 00dc addi a5,sp,68 -8100020a: 8100 0x8100 -8100020c: 00e0 addi s0,sp,76 -8100020e: 8100 0x8100 -81000210: 00e4 addi s1,sp,76 -81000212: 8100 0x8100 -81000214: 00e8 addi a0,sp,76 -81000216: 8100 0x8100 -81000218: 00ec addi a1,sp,76 -8100021a: 8100 0x8100 -8100021c: 00f0 addi a2,sp,76 -8100021e: 8100 0x8100 -81000220: 00f4 addi a3,sp,76 -81000222: 8100 0x8100 - -81000224 : -81000224: 0005 c.nop 1 +81000208 : +81000208: 0001 nop +8100020a: 0000 unimp +8100020c: 0001 nop +8100020e: 0000 unimp +81000210: 0001 nop +81000212: 0000 unimp +81000214: 0001 nop +81000216: 0000 unimp +81000218: 0001 nop +8100021a: 0000 unimp +8100021c: 0001 nop +8100021e: 0000 unimp +81000220: 0001 nop +81000222: 0000 unimp +81000224: 0001 nop 81000226: 0000 unimp -81000228: 0005 c.nop 1 +81000228: 0001 nop 8100022a: 0000 unimp -8100022c: 0005 c.nop 1 +8100022c: 0001 nop 8100022e: 0000 unimp -81000230: 0005 c.nop 1 +81000230: 0001 nop 81000232: 0000 unimp -81000234: 0006 c.slli zero,0x1 +81000234: 0001 nop 81000236: 0000 unimp -81000238: 0006 c.slli zero,0x1 +81000238: 0001 nop 8100023a: 0000 unimp -8100023c: 0006 c.slli zero,0x1 +8100023c: 0001 nop 8100023e: 0000 unimp -81000240: 0006 c.slli zero,0x1 +81000240: 0001 nop 81000242: 0000 unimp -81000244: 00000007 0x7 -81000248: 00000007 0x7 -8100024c: 00000007 0x7 -81000250: 00000007 0x7 -81000254: 0008 0x8 -81000256: 0000 unimp -81000258: 0008 0x8 -8100025a: 0000 unimp -8100025c: 0008 0x8 -8100025e: 0000 unimp -81000260: 0008 0x8 - ... - -81000264 : -81000264: 0001 nop -81000266: 0000 unimp -81000268: 0001 nop -8100026a: 0000 unimp -8100026c: 0001 nop -8100026e: 0000 unimp -81000270: 0001 nop -81000272: 0000 unimp -81000274: 0001 nop -81000276: 0000 unimp -81000278: 0001 nop -8100027a: 0000 unimp -8100027c: 0001 nop -8100027e: 0000 unimp -81000280: 0001 nop -81000282: 0000 unimp -81000284: 0001 nop -81000286: 0000 unimp -81000288: 0001 nop -8100028a: 0000 unimp -8100028c: 0001 nop -8100028e: 0000 unimp -81000290: 0001 nop -81000292: 0000 unimp -81000294: 0001 nop -81000296: 0000 unimp -81000298: 0001 nop -8100029a: 0000 unimp -8100029c: 0001 nop -8100029e: 0000 unimp -810002a0: 0001 nop +81000244: 0001 nop ... Disassembly of section .bss: -810002a4 : -810002a4: 0000 unimp +81000248 : +81000248: 0000 unimp ... -810002a8 : -810002a8: 0000 unimp +8100024c : +8100024c: 0000 unimp ... -810002ac : -810002ac: 0000 unimp +81000250 : +81000250: 0000 unimp ... -810002b0 : +81000254 : ... -810002c0 : +81000264 : ... -810002d0 : +81000274 : ... Disassembly of section .comment: diff --git a/runtime/mains/simple/vx_simple_main.elf b/runtime/mains/simple/vx_simple_main.elf index f92ab27c..73922c4b 100644 Binary files a/runtime/mains/simple/vx_simple_main.elf and b/runtime/mains/simple/vx_simple_main.elf differ diff --git a/runtime/mains/simple/vx_simple_main.hex b/runtime/mains/simple/vx_simple_main.hex index 6ab91db0..4ac6cbdc 100644 --- a/runtime/mains/simple/vx_simple_main.hex +++ b/runtime/mains/simple/vx_simple_main.hex @@ -18,7 +18,7 @@ :100100001301C10067800000B702010023A0B20004 :1001100067800000130101FE232E1100232C8100B3 :10012000130401022326A4FEB70700810327C4FE9F -:100130001317270093874715B307F70083A7070016 +:10013000131727009387870FB307F70083A70700DC :1001400013850700EFF05FF9130000008320C10161 :10015000032481011301010267800000130101FEE5 :10016000232E1100232C8100130401022326A4FE58 @@ -26,31 +26,31 @@ :10018000EFF05FF9B707008113850704EFF0DFF4A4 :10019000130000008320C101032481011301010227 :1001A00067800000130101FE232E1100232C810023 -:1001B00013040102B707008183A7C72A138507002C -:1001C000EFF09FEAB707008103A7872AB7070081EE -:1001D00083A7472A13850700E7000700EFF0DFEA4F +:1001B00013040102B707008183A7072513850700F1 +:1001C000EFF09FEAB707008103A7C724B7070081B4 +:1001D00083A7872413850700E7000700EFF0DFEA15 :1001E0002326A4FE8327C4FE6388070013050000AE :1001F000EFF09FE76F00C00013051000EFF0DFE69F :10020000130000008320C1010324810113010102B6 :1002100067800000130101FE232E1100232C8100B2 :10022000130401022326A4FE2324B4FE2322C4FEC9 -:100230002320D4FEB7070081032744FE23A4E72A26 -:10024000B7070081032704FE23A2E72AB70700812E -:10025000032784FE23A6E72AB70700809387471A5F +:100230002320D4FEB7070081032744FE23A6E7242A +:10024000B7070081032704FE23A4E724B707008132 +:10025000032784FE23A8E724B70700809387471A63 :10026000938507000325C4FEEFF09FDFEFF09FF3B7 :10027000130000008320C101032481011301010246 :1002800067800000130101FE232E1100232C810042 :1002900013040102B707008113854708EFF0DFE37D :1002A00013054000EFF05FDCEFF09FDE2326A4FE95 :1002B0000327C4FEB70700818326C4FE9396260059 -:1002C0009387471DB387F60023A0E70013051000AE -:1002D000EFF09FD9B707008183A7471D138507005B +:1002C00093878717B387F60023A0E7001305100074 +:1002D000EFF09FD9B707008183A787171385070021 :1002E000EFF05FE3B707008113854709EFF0DFDE2A -:1002F000B70700819387471D83A747001385070031 +:1002F000B70700819387871783A7470013850700F7 :10030000EFF05FE1B707008113854709EFF0DFDC0D -:10031000B70700819387471D83A7870013850700D0 +:10031000B70700819387871783A787001385070096 :10032000EFF05FDFB707008113854709EFF0DFDAF1 -:10033000B70700819387471D83A7C7001385070070 +:10033000B70700819387871783A7C7001385070036 :10034000EFF05FDDB707008113854709EFF0DFD8D5 :10035000130000008320C101032481011301010265 :1003600067800000130101FE232E1100232C810061 @@ -59,40 +59,40 @@ :10039000EFF09FCE8347B4FE638407068327C4FE35 :1003A00093B717002305F4FE8347A4FE13850700C7 :1003B000EFF09FCC8347A4FE63820702B70700815A -:1003C0000327C4FE131727009387072CB307F700F2 +:1003C0000327C4FE1317270093874726B307F700B8 :1003D0001307A00023A0E7006F000002B707008109 -:1003E0000327C4FE131727009387072CB307F700D2 +:1003E0000327C4FE1317270093874726B307F70098 :1003F0001307B00023A0E700EFF09FC86F0040068E :100400008327C4FE93B73700A304F4FE834794FE0A :1004100013850700EFF05FC6834794FE63820702EF -:10042000B70700810327C4FE131727009387072C03 +:10042000B70700810327C4FE1317270093874726C9 :10043000B307F7001307C00023A0E7006F00000216 -:10044000B70700810327C4FE131727009387072CE3 +:10044000B70700810327C4FE1317270093874726A9 :10045000B307F7001307D00023A0E700EFF05FC257 -:10046000EFF01FC2B707008183A7072C1385070091 +:10046000EFF01FC2B707008183A747261385070057 :10047000EFF05FCAB707008113854709EFF0DFC5CA -:10048000B70700819387072C83A7470013850700D0 +:10048000B70700819387472683A747001385070096 :10049000EFF05FC8B707008113854709EFF0DFC3AE -:1004A000B70700819387072C83A787001385070070 +:1004A000B70700819387472683A787001385070036 :1004B000EFF05FC6B707008113854709EFF0DFC192 -:1004C000B70700819387072C83A7C7001385070010 +:1004C000B70700819387472683A7C70013850700D6 :1004D000EFF05FC4B707008113854709EFF0DFBF76 :1004E000130000008320C1010324810113010102D4 :1004F00067800000130101FE232E1100232C8100D0 :1005000013040102EFF05FB82326A4FEB7070081B1 -:100510000327C4FE131727009387072BB307F700A1 +:100510000327C4FE1317270093874725B307F70067 :100520000327C4FE23A0E7008327C4FE63860700D9 :1005300013050000EFF05FB3130000008320C1013A :10054000032481011301010267800000130101FEF1 :10055000232E1100232C810013040102B707008011 :100560009387474F2326F4FE8325C4FE13054000DE -:10057000EFF01FAFEFF01FF8B707008183A7072B3D +:10057000EFF01FAFEFF01FF8B707008183A7472503 :1005800013850700EFF01FB9B707008113854709EE -:10059000EFF09FB4B70700819387072B83A747002D +:10059000EFF09FB4B70700819387472583A74700F3 :1005A00013850700EFF01FB7B707008113854709D0 -:1005B000EFF09FB2B70700819387072B83A78700CF +:1005B000EFF09FB2B70700819387472583A7870095 :1005C00013850700EFF01FB5B707008113854709B2 -:1005D000EFF09FB0B70700819387072B83A7C70071 +:1005D000EFF09FB0B70700819387472583A7C70037 :1005E00013850700EFF01FB3B70700811385470994 :1005F000EFF09FAE130000008320C10103248101AE :100600001301010267800000130101FF232611007E @@ -116,30 +116,10 @@ :10072000B307F70003A707008327C4FE03A68700CB :100730008327C4FD93972700B307F6003387E600AD :1007400023A0E700EFF0DF93130000008320C10334 -:10075000032481031301010467800000130101FCDD -:10076000232E1102232C810213040104130510000F -:10077000EFF09F8FB70700811385870FEFF0DF95AC -:10078000EFF05FB0B707008113858710EFF0DF94BB -:1007900013054000EFF05F8DEFF0DFBC1305100094 -:1007A000EFF09F8CB70700811385C711EFF0DF9240 -:1007B000EFF0DFD9B70700811385C712EFF0DF91A3 -:1007C000B7070081938747222324F4FCB7070081F1 -:1007D000938747262326F4FCB70700819387072DCC -:1007E0002328F4FC93074000232AF4FC93074000DD -:1007F000232CF4FC930740002322F4FE93074000CF -:100800002320F4FE032744FE832504FE930784FC83 -:1008100093860700B7070080138607661305070055 -:10082000EFF05F9F232604FE6F000008232404FEE0 -:100830006F004005032744FD8327C4FE3307F702FA -:10084000832784FEB307F700232EF4FCB70700814B -:100850000327C4FD131727009387072DB307F7005D -:1008600083A7070013850700EFF0DF8AB707008131 -:100870001385C714EFF05F86832784FE93871700E4 -:100880002324F4FE032744FD832784FEE3E4E7FAF0 -:10089000B707008113850715EFF01F848327C4FE77 -:1008A000938717002326F4FE032784FD8327C4FEC5 -:1008B000E3EEE7F693070000138507008320C103EA -:0C08C00003248103130101046780000081 +:10075000032481031301010467800000130101FFDA +:100760002326110023248100130401011305100026 +:10077000EFF09F8FEFF09FDD9307000013850700D8 +:100780008320C10003248100130101016780000060 :02000004810079 :10000000300000003100000032000000330000002A :10001000340000003500000036000000370000000A @@ -156,33 +136,27 @@ :1000C0003200000033000000340000003500000062 :1000D0003600000037000000380000003900000042 :1000E0006100000062000000630000006400000086 -:1000F000650000006600000053696D706C65204D5E -:1001000061696E0A00000000746573745F6469764B -:10011000657267656E63650A00000000746573743C -:100120005F77737061776E0A0000000076785F7306 -:100130007061776E5761727073206D61745F616476 -:10014000645F6B65726E656C0A0000002000000041 -:020150000A00A3 -:100154000000008104000081080000810C0000817F -:100164001000008114000081180000811C0000812F -:100174002000008124000081280000812C000081DF -:100184003000008134000081380000813C0000818F -:1001940044000081480000814C000081500000812F -:1001A40054000081580000815C00008160000081DF -:1001B40064000081680000816C000081700000818F -:1001C40074000081780000817C000081800000813F -:1001D4000500000005000000050000000500000007 -:1001E400B8000081BC000081C0000081C40000810F -:1001F400C8000081CC000081D0000081D4000081BF -:10020400D8000081DC000081E0000081E40000816E -:10021400E8000081EC000081F0000081F40000811E -:1002240005000000050000000500000005000000B6 -:1002340006000000060000000600000006000000A2 -:10024400070000000700000007000000070000008E -:10025400080000000800000008000000080000007A -:100264000100000001000000010000000100000086 -:100274000100000001000000010000000100000076 -:100284000100000001000000010000000100000066 -:100294000100000001000000010000000100000056 +:0600F0006500000066003F +:1000F8000000008104000081080000810C000081DC +:100108001000008114000081180000811C0000818B +:100118002000008124000081280000812C0000813B +:100128003000008134000081380000813C000081EB +:1001380044000081480000814C000081500000818B +:1001480054000081580000815C000081600000813B +:1001580064000081680000816C00008170000081EB +:1001680074000081780000817C000081800000819B +:100178000500000005000000050000000500000063 +:10018800B8000081BC000081C0000081C40000816B +:10019800C8000081CC000081D0000081D40000811B +:1001A800D8000081DC000081E0000081E4000081CB +:1001B800E8000081EC000081F0000081F40000817B +:1001C8000500000005000000050000000500000013 +:1001D80006000000060000000600000006000000FF +:1001E80007000000070000000700000007000000EB +:1001F80008000000080000000800000008000000D7 +:1002080001000000010000000100000001000000E2 +:1002180001000000010000000100000001000000D2 +:1002280001000000010000000100000001000000C2 +:1002380001000000010000000100000001000000B2 :040000058000000077 :00000001FF