diff --git a/emulator/.DS_Store b/emulator/.DS_Store index a6a3aa02..89ac1078 100644 Binary files a/emulator/.DS_Store and b/emulator/.DS_Store differ diff --git a/rtl/VX_gpr.v b/rtl/VX_gpr.v index 65969492..f0289229 100644 --- a/rtl/VX_gpr.v +++ b/rtl/VX_gpr.v @@ -51,7 +51,8 @@ module VX_gpr ( - wire cenb = !going_to_write; + // wire cenb = !going_to_write; + wire cenb = 0; // wire cena_1 = (VX_gpr_read.rs1 == 0); // wire cena_2 = (VX_gpr_read.rs2 == 0); @@ -68,8 +69,8 @@ module VX_gpr ( begin for (curr_bit = 0; curr_bit < 32; curr_bit=curr_bit+1) begin - assign out_a_reg_data[thread][curr_bit] = (temp_a[thread][curr_bit] === 1'dx) ? 1'b0 : temp_a[thread][curr_bit]; - assign out_b_reg_data[thread][curr_bit] = (temp_b[thread][curr_bit] === 1'dx) ? 1'b0 : temp_b[thread][curr_bit]; + assign out_a_reg_data[thread][curr_bit] = ((temp_a[thread][curr_bit] === 1'dx) || cena_1 )? 1'b0 : temp_a[thread][curr_bit]; + assign out_b_reg_data[thread][curr_bit] = ((temp_b[thread][curr_bit] === 1'dx) || cena_2) ? 1'b0 : temp_b[thread][curr_bit]; end end diff --git a/rtl/VX_gpr_wrapper.v b/rtl/VX_gpr_wrapper.v index b9325eb2..2f2ec4e0 100644 --- a/rtl/VX_gpr_wrapper.v +++ b/rtl/VX_gpr_wrapper.v @@ -22,8 +22,27 @@ module VX_gpr_wrapper ( end - assign out_a_reg_data = (VX_gpr_jal.is_jal ? jal_data : (temp_a_reg_data[VX_gpr_read.warp_num])); - assign out_b_reg_data = (temp_b_reg_data[VX_gpr_read.warp_num]); + `ifndef ASIC + assign out_a_reg_data = (VX_gpr_jal.is_jal ? jal_data : (temp_a_reg_data[VX_gpr_read.warp_num])); + assign out_b_reg_data = (temp_b_reg_data[VX_gpr_read.warp_num]); + `else + + wire zer = 0; + + wire[`NW_M1:0] old_warp_num; + VX_generic_register #(`NW_M1+1) store_wn( + .clk (clk), + .reset(reset), + .stall(zer), + .flush(zer), + .in (VX_gpr_read.warp_num), + .out (old_warp_num) + ); + + assign out_a_reg_data = (VX_gpr_jal.is_jal ? jal_data : (temp_a_reg_data[old_warp_num])); + assign out_b_reg_data = (temp_b_reg_data[old_warp_num]); + + `endif genvar warp_index; generate diff --git a/rtl/VX_scheduler.v b/rtl/VX_scheduler.v index 0a563201..ce54db63 100644 --- a/rtl/VX_scheduler.v +++ b/rtl/VX_scheduler.v @@ -16,40 +16,52 @@ module VX_scheduler ( - reg rename_table[31:0]; + reg[31:0] rename_table[`NW-1:0]; wire valid_wb = (VX_writeback_inter.wb != 0) && (|VX_writeback_inter.wb_valid) && (VX_writeback_inter.rd != 0); wire wb_inc = (VX_bckE_req.wb != 0) && (VX_bckE_req.rd != 0); - - // wire pass_through = ((VX_bckE_req.rs1 == VX_writeback_inter.rd) || (VX_bckE_req.rs2 == VX_writeback_inter.rd)) && valid_wb; - // wire pass_through = 0; - - wire rs1_rename = rename_table[VX_bckE_req.rs1]; - wire rs2_rename = rename_table[VX_bckE_req.rs2]; + wire rs1_rename = rename_table[VX_bckE_req.warp_num][VX_bckE_req.rs1]; + wire rs2_rename = rename_table[VX_bckE_req.warp_num][VX_bckE_req.rs2]; wire is_store = (VX_bckE_req.mem_write != `NO_MEM_WRITE); wire is_load = (VX_bckE_req.mem_read != `NO_MEM_READ); wire is_mem = is_store || is_load; - wire rs1_rename_qual = (rs1_rename && (VX_bckE_req.rs1 != 0)); - wire rs2_rename_qual = (rs2_rename && (VX_bckE_req.rs2 != 0) && ((VX_bckE_req.rs2_src == `RS2_REG) || is_store)) || (VX_bckE_req.is_barrier) || (VX_bckE_req.is_wspawn); + + wire rs1_pass = ((valid_wb && (VX_writeback_inter.rd == VX_bckE_req.rs1))); + wire rs2_pass = ((valid_wb && (VX_writeback_inter.rd == VX_bckE_req.rs2))); + + // wire rs1_pass = 0; + // wire rs2_pass = 0; + + wire using_rs2 = (VX_bckE_req.rs2_src == `RS2_REG) || is_store || VX_bckE_req.is_barrier || VX_bckE_req.is_wspawn; + + wire rs1_rename_qual = ((rs1_rename || (rs1_pass && 0)) && (VX_bckE_req.rs1 != 0)); + wire rs2_rename_qual = ((rs2_rename || (rs2_pass && 0)) && (VX_bckE_req.rs2 != 0 && using_rs2)); + wire rename_valid = rs1_rename_qual || rs2_rename_qual ; - assign schedule_delay = (rename_valid) && (|VX_bckE_req.valid) || (memory_delay && (is_mem)) || (gpr_stage_delay && is_mem); + assign schedule_delay = ((rename_valid) && (|VX_bckE_req.valid)) || (memory_delay && (is_mem)) || (gpr_stage_delay && is_mem); integer i; - + integer w; always @(posedge clk or posedge reset) begin if (reset) begin - for (i = 0; i < 32; i = i + 1) rename_table[i] <= 0; + for (w = 0; w < `NW; w=w+1) + begin + for (i = 0; i < 32; i = i + 1) + begin + rename_table[w][i] <= 0; + end + end end else begin - if (valid_wb ) rename_table[VX_writeback_inter.rd] <= 0; - if (!schedule_delay && wb_inc) rename_table[VX_bckE_req.rd] <= 1; + if (valid_wb ) rename_table[VX_writeback_inter.wb_warp_num][VX_writeback_inter.rd] <= 0; + if (!schedule_delay && wb_inc) rename_table[VX_bckE_req.warp_num ][VX_bckE_req.rd] <= 1; end end diff --git a/rtl/modelsim/Makefile b/rtl/modelsim/Makefile index b4cf0720..e906236f 100644 --- a/rtl/modelsim/Makefile +++ b/rtl/modelsim/Makefile @@ -103,6 +103,9 @@ LOG= # setup: source cshrc.modelsim # vlib +lib: + vlib vortex_lib + comp: vlog $(OPT) -work $(LIB) $(SRC) # vlog -O0 -dpiheader vortex_dpi.h $(OPT) -work $(LIB) $(SRC) diff --git a/runtime/startup/vx_start.s b/runtime/startup/vx_start.s index 4c631124..2d527a32 100644 --- a/runtime/startup/vx_start.s +++ b/runtime/startup/vx_start.s @@ -3,9 +3,15 @@ .type _start, @function .global _start _start: - # la a1, vx_set_sp - # li a0, 8 - # .word 0x00b5106b # wspawn a0(numWarps), a1(PC SPAWN) + # li a0, 2 + # add a1, a0, a0 + # add a2, a1, a0 + # li a0, 0 + # .word 0x0005006b # tmc a0 + ########################### + la a1, vx_set_sp + li a0, 4 + .word 0x00b5106b # wspawn a0(numWarps), a1(PC SPAWN) jal vx_set_sp jal main li a0, 0 @@ -33,8 +39,6 @@ vx_set_sp: li a0, 0 .word 0x0005006b # tmc 0 RETURN: - li a0, 1 - .word 0x0005006b # tmc 1 ret diff --git a/runtime/vortex_runtime.dump b/runtime/vortex_runtime.dump index 7ac83d05..e8c619c6 100644 --- a/runtime/vortex_runtime.dump +++ b/runtime/vortex_runtime.dump @@ -7,10 +7,10 @@ Disassembly of section .text: 80000000 <_start>: 80000000: 00000597 auipc a1,0x0 80000004: 02058593 addi a1,a1,32 # 80000020 -80000008: 00800513 li a0,8 +80000008: 00400513 li a0,4 8000000c: 00b5106b 0xb5106b 80000010: 010000ef jal ra,80000020 -80000014: 4dc000ef jal ra,800004f0
+80000014: 4d4000ef jal ra,800004e8
80000018: 00000513 li a0,0 8000001c: 0005006b 0x5006b @@ -32,356 +32,354 @@ Disassembly of section .text: 80000058: 0005006b 0x5006b 8000005c : -8000005c: 00100513 li a0,1 -80000060: 0005006b 0x5006b +8000005c: 00008067 ret + +80000060 : +80000060: 00b5106b 0xb5106b 80000064: 00008067 ret -80000068 : -80000068: 00b5106b 0xb5106b +80000068 : +80000068: 0005006b 0x5006b 8000006c: 00008067 ret -80000070 : -80000070: 0005006b 0x5006b +80000070 : +80000070: 00b5406b 0xb5406b 80000074: 00008067 ret -80000078 : -80000078: 00b5406b 0xb5406b +80000078 : +80000078: 0005206b 0x5206b 8000007c: 00008067 ret -80000080 : -80000080: 0005206b 0x5206b +80000080 : +80000080: 0000306b 0x306b 80000084: 00008067 ret -80000088 : -80000088: 0000306b 0x306b +80000088 : +80000088: 02102573 csrr a0,0x21 8000008c: 00008067 ret -80000090 : -80000090: 02102573 csrr a0,0x21 +80000090 : +80000090: 02002573 csrr a0,0x20 80000094: 00008067 ret -80000098 : -80000098: 02002573 csrr a0,0x20 -8000009c: 00008067 ret +80000098 : +80000098: ff410113 addi sp,sp,-12 # 6fffeff4 <_start-0x1000100c> +8000009c: 00112023 sw ra,0(sp) +800000a0: 00b12223 sw a1,4(sp) -800000a0 : -800000a0: ff410113 addi sp,sp,-12 # 6fffeff4 <_start-0x1000100c> -800000a4: 00112023 sw ra,0(sp) -800000a8: 00b12223 sw a1,4(sp) +800000a4 : +800000a4: 00054583 lbu a1,0(a0) +800000a8: 00058863 beqz a1,800000b8 +800000ac: 01c000ef jal ra,800000c8 +800000b0: 00150513 addi a0,a0,1 +800000b4: ff1ff06f j 800000a4 -800000ac : -800000ac: 00054583 lbu a1,0(a0) -800000b0: 00058863 beqz a1,800000c0 -800000b4: 01c000ef jal ra,800000d0 -800000b8: 00150513 addi a0,a0,1 -800000bc: ff1ff06f j 800000ac +800000b8 : +800000b8: 00012083 lw ra,0(sp) +800000bc: 00412583 lw a1,4(sp) +800000c0: 00c10113 addi sp,sp,12 +800000c4: 00008067 ret -800000c0 : -800000c0: 00012083 lw ra,0(sp) -800000c4: 00412583 lw a1,4(sp) -800000c8: 00c10113 addi sp,sp,12 -800000cc: 00008067 ret +800000c8 : +800000c8: 000102b7 lui t0,0x10 +800000cc: 00b2a023 sw a1,0(t0) # 10000 <_start-0x7fff0000> +800000d0: 00008067 ret -800000d0 : -800000d0: 000102b7 lui t0,0x10 -800000d4: 00b2a023 sw a1,0(t0) # 10000 <_start-0x7fff0000> -800000d8: 00008067 ret +800000d4 : +800000d4: fe010113 addi sp,sp,-32 +800000d8: 00112e23 sw ra,28(sp) +800000dc: 00812c23 sw s0,24(sp) +800000e0: 02010413 addi s0,sp,32 +800000e4: fea42623 sw a0,-20(s0) +800000e8: 810007b7 lui a5,0x81000 +800000ec: fec42703 lw a4,-20(s0) +800000f0: 00271713 slli a4,a4,0x2 +800000f4: 0e878793 addi a5,a5,232 # 810000e8 +800000f8: 00f707b3 add a5,a4,a5 +800000fc: 0007a783 lw a5,0(a5) +80000100: 00078513 mv a0,a5 +80000104: f95ff0ef jal ra,80000098 +80000108: 00000013 nop +8000010c: 01c12083 lw ra,28(sp) +80000110: 01812403 lw s0,24(sp) +80000114: 02010113 addi sp,sp,32 +80000118: 00008067 ret -800000dc : -800000dc: fe010113 addi sp,sp,-32 -800000e0: 00112e23 sw ra,28(sp) -800000e4: 00812c23 sw s0,24(sp) -800000e8: 02010413 addi s0,sp,32 -800000ec: fea42623 sw a0,-20(s0) -800000f0: 810007b7 lui a5,0x81000 -800000f4: fec42703 lw a4,-20(s0) -800000f8: 00271713 slli a4,a4,0x2 -800000fc: 0e878793 addi a5,a5,232 # 810000e8 -80000100: 00f707b3 add a5,a4,a5 -80000104: 0007a783 lw a5,0(a5) -80000108: 00078513 mv a0,a5 -8000010c: f95ff0ef jal ra,800000a0 -80000110: 00000013 nop -80000114: 01c12083 lw ra,28(sp) -80000118: 01812403 lw s0,24(sp) -8000011c: 02010113 addi sp,sp,32 -80000120: 00008067 ret +8000011c : +8000011c: fe010113 addi sp,sp,-32 +80000120: 00112e23 sw ra,28(sp) +80000124: 00812c23 sw s0,24(sp) +80000128: 02010413 addi s0,sp,32 +8000012c: fea42623 sw a0,-20(s0) +80000130: feb42423 sw a1,-24(s0) +80000134: fec42503 lw a0,-20(s0) +80000138: f61ff0ef jal ra,80000098 +8000013c: fe842503 lw a0,-24(s0) +80000140: f95ff0ef jal ra,800000d4 +80000144: 810007b7 lui a5,0x81000 +80000148: 04078513 addi a0,a5,64 # 81000040 +8000014c: f4dff0ef jal ra,80000098 +80000150: 00000013 nop +80000154: 01c12083 lw ra,28(sp) +80000158: 01812403 lw s0,24(sp) +8000015c: 02010113 addi sp,sp,32 +80000160: 00008067 ret -80000124 : -80000124: fe010113 addi sp,sp,-32 -80000128: 00112e23 sw ra,28(sp) -8000012c: 00812c23 sw s0,24(sp) -80000130: 02010413 addi s0,sp,32 -80000134: fea42623 sw a0,-20(s0) -80000138: feb42423 sw a1,-24(s0) -8000013c: fec42503 lw a0,-20(s0) -80000140: f61ff0ef jal ra,800000a0 -80000144: fe842503 lw a0,-24(s0) -80000148: f95ff0ef jal ra,800000dc -8000014c: 810007b7 lui a5,0x81000 -80000150: 04078513 addi a0,a5,64 # 81000040 -80000154: f4dff0ef jal ra,800000a0 -80000158: 00000013 nop -8000015c: 01c12083 lw ra,28(sp) -80000160: 01812403 lw s0,24(sp) -80000164: 02010113 addi sp,sp,32 -80000168: 00008067 ret +80000164 : +80000164: fe010113 addi sp,sp,-32 +80000168: 00112e23 sw ra,28(sp) +8000016c: 00812c23 sw s0,24(sp) +80000170: 02010413 addi s0,sp,32 +80000174: 810007b7 lui a5,0x81000 +80000178: 08478513 addi a0,a5,132 # 81000084 +8000017c: f1dff0ef jal ra,80000098 +80000180: 00400513 li a0,4 +80000184: ee5ff0ef jal ra,80000068 +80000188: f09ff0ef jal ra,80000090 +8000018c: fea42623 sw a0,-20(s0) +80000190: fec42703 lw a4,-20(s0) +80000194: 810007b7 lui a5,0x81000 +80000198: fec42683 lw a3,-20(s0) +8000019c: 00269693 slli a3,a3,0x2 +800001a0: 1a878793 addi a5,a5,424 # 810001a8 +800001a4: 00f687b3 add a5,a3,a5 +800001a8: 00e7a023 sw a4,0(a5) +800001ac: 00100513 li a0,1 +800001b0: eb9ff0ef jal ra,80000068 +800001b4: 810007b7 lui a5,0x81000 +800001b8: 1a87a783 lw a5,424(a5) # 810001a8 +800001bc: 00078513 mv a0,a5 +800001c0: f15ff0ef jal ra,800000d4 +800001c4: 810007b7 lui a5,0x81000 +800001c8: 09078513 addi a0,a5,144 # 81000090 +800001cc: ecdff0ef jal ra,80000098 +800001d0: 810007b7 lui a5,0x81000 +800001d4: 1a878793 addi a5,a5,424 # 810001a8 +800001d8: 0047a783 lw a5,4(a5) +800001dc: 00078513 mv a0,a5 +800001e0: ef5ff0ef jal ra,800000d4 +800001e4: 810007b7 lui a5,0x81000 +800001e8: 09078513 addi a0,a5,144 # 81000090 +800001ec: eadff0ef jal ra,80000098 +800001f0: 810007b7 lui a5,0x81000 +800001f4: 1a878793 addi a5,a5,424 # 810001a8 +800001f8: 0087a783 lw a5,8(a5) +800001fc: 00078513 mv a0,a5 +80000200: ed5ff0ef jal ra,800000d4 +80000204: 810007b7 lui a5,0x81000 +80000208: 09078513 addi a0,a5,144 # 81000090 +8000020c: e8dff0ef jal ra,80000098 +80000210: 810007b7 lui a5,0x81000 +80000214: 1a878793 addi a5,a5,424 # 810001a8 +80000218: 00c7a783 lw a5,12(a5) +8000021c: 00078513 mv a0,a5 +80000220: eb5ff0ef jal ra,800000d4 +80000224: 810007b7 lui a5,0x81000 +80000228: 09078513 addi a0,a5,144 # 81000090 +8000022c: e6dff0ef jal ra,80000098 +80000230: 00000013 nop +80000234: 01c12083 lw ra,28(sp) +80000238: 01812403 lw s0,24(sp) +8000023c: 02010113 addi sp,sp,32 +80000240: 00008067 ret -8000016c : -8000016c: fe010113 addi sp,sp,-32 -80000170: 00112e23 sw ra,28(sp) -80000174: 00812c23 sw s0,24(sp) -80000178: 02010413 addi s0,sp,32 -8000017c: 810007b7 lui a5,0x81000 -80000180: 08478513 addi a0,a5,132 # 81000084 -80000184: f1dff0ef jal ra,800000a0 -80000188: 00400513 li a0,4 -8000018c: ee5ff0ef jal ra,80000070 -80000190: f09ff0ef jal ra,80000098 -80000194: fea42623 sw a0,-20(s0) -80000198: fec42703 lw a4,-20(s0) -8000019c: 810007b7 lui a5,0x81000 -800001a0: fec42683 lw a3,-20(s0) -800001a4: 00269693 slli a3,a3,0x2 -800001a8: 1a878793 addi a5,a5,424 # 810001a8 -800001ac: 00f687b3 add a5,a3,a5 -800001b0: 00e7a023 sw a4,0(a5) -800001b4: 00100513 li a0,1 -800001b8: eb9ff0ef jal ra,80000070 -800001bc: 810007b7 lui a5,0x81000 -800001c0: 1a87a783 lw a5,424(a5) # 810001a8 -800001c4: 00078513 mv a0,a5 -800001c8: f15ff0ef jal ra,800000dc -800001cc: 810007b7 lui a5,0x81000 -800001d0: 09078513 addi a0,a5,144 # 81000090 -800001d4: ecdff0ef jal ra,800000a0 -800001d8: 810007b7 lui a5,0x81000 -800001dc: 1a878793 addi a5,a5,424 # 810001a8 -800001e0: 0047a783 lw a5,4(a5) -800001e4: 00078513 mv a0,a5 -800001e8: ef5ff0ef jal ra,800000dc -800001ec: 810007b7 lui a5,0x81000 -800001f0: 09078513 addi a0,a5,144 # 81000090 -800001f4: eadff0ef jal ra,800000a0 -800001f8: 810007b7 lui a5,0x81000 -800001fc: 1a878793 addi a5,a5,424 # 810001a8 -80000200: 0087a783 lw a5,8(a5) -80000204: 00078513 mv a0,a5 -80000208: ed5ff0ef jal ra,800000dc -8000020c: 810007b7 lui a5,0x81000 -80000210: 09078513 addi a0,a5,144 # 81000090 -80000214: e8dff0ef jal ra,800000a0 -80000218: 810007b7 lui a5,0x81000 -8000021c: 1a878793 addi a5,a5,424 # 810001a8 -80000220: 00c7a783 lw a5,12(a5) -80000224: 00078513 mv a0,a5 -80000228: eb5ff0ef jal ra,800000dc -8000022c: 810007b7 lui a5,0x81000 -80000230: 09078513 addi a0,a5,144 # 81000090 -80000234: e6dff0ef jal ra,800000a0 -80000238: 00000013 nop -8000023c: 01c12083 lw ra,28(sp) -80000240: 01812403 lw s0,24(sp) -80000244: 02010113 addi sp,sp,32 -80000248: 00008067 ret +80000244 : +80000244: fe010113 addi sp,sp,-32 +80000248: 00112e23 sw ra,28(sp) +8000024c: 00812c23 sw s0,24(sp) +80000250: 02010413 addi s0,sp,32 +80000254: e3dff0ef jal ra,80000090 +80000258: fea42623 sw a0,-20(s0) +8000025c: fec42783 lw a5,-20(s0) +80000260: 0027b793 sltiu a5,a5,2 +80000264: fef405a3 sb a5,-21(s0) +80000268: feb44783 lbu a5,-21(s0) +8000026c: 00078513 mv a0,a5 +80000270: e09ff0ef jal ra,80000078 +80000274: feb44783 lbu a5,-21(s0) +80000278: 06078463 beqz a5,800002e0 +8000027c: fec42783 lw a5,-20(s0) +80000280: 0017b793 seqz a5,a5 +80000284: fef40523 sb a5,-22(s0) +80000288: fea44783 lbu a5,-22(s0) +8000028c: 00078513 mv a0,a5 +80000290: de9ff0ef jal ra,80000078 +80000294: fea44783 lbu a5,-22(s0) +80000298: 02078263 beqz a5,800002bc +8000029c: 810007b7 lui a5,0x81000 +800002a0: fec42703 lw a4,-20(s0) +800002a4: 00271713 slli a4,a4,0x2 +800002a8: 1a878793 addi a5,a5,424 # 810001a8 +800002ac: 00f707b3 add a5,a4,a5 +800002b0: 00a00713 li a4,10 +800002b4: 00e7a023 sw a4,0(a5) +800002b8: 0200006f j 800002d8 +800002bc: 810007b7 lui a5,0x81000 +800002c0: fec42703 lw a4,-20(s0) +800002c4: 00271713 slli a4,a4,0x2 +800002c8: 1a878793 addi a5,a5,424 # 810001a8 +800002cc: 00f707b3 add a5,a4,a5 +800002d0: 00b00713 li a4,11 +800002d4: 00e7a023 sw a4,0(a5) +800002d8: da9ff0ef jal ra,80000080 +800002dc: 0640006f j 80000340 +800002e0: fec42783 lw a5,-20(s0) +800002e4: 0037b793 sltiu a5,a5,3 +800002e8: fef404a3 sb a5,-23(s0) +800002ec: fe944783 lbu a5,-23(s0) +800002f0: 00078513 mv a0,a5 +800002f4: d85ff0ef jal ra,80000078 +800002f8: fe944783 lbu a5,-23(s0) +800002fc: 02078263 beqz a5,80000320 +80000300: 810007b7 lui a5,0x81000 +80000304: fec42703 lw a4,-20(s0) +80000308: 00271713 slli a4,a4,0x2 +8000030c: 1a878793 addi a5,a5,424 # 810001a8 +80000310: 00f707b3 add a5,a4,a5 +80000314: 00c00713 li a4,12 +80000318: 00e7a023 sw a4,0(a5) +8000031c: 0200006f j 8000033c +80000320: 810007b7 lui a5,0x81000 +80000324: fec42703 lw a4,-20(s0) +80000328: 00271713 slli a4,a4,0x2 +8000032c: 1a878793 addi a5,a5,424 # 810001a8 +80000330: 00f707b3 add a5,a4,a5 +80000334: 00d00713 li a4,13 +80000338: 00e7a023 sw a4,0(a5) +8000033c: d45ff0ef jal ra,80000080 +80000340: d41ff0ef jal ra,80000080 +80000344: 810007b7 lui a5,0x81000 +80000348: 1a87a783 lw a5,424(a5) # 810001a8 +8000034c: 00078513 mv a0,a5 +80000350: d85ff0ef jal ra,800000d4 +80000354: 810007b7 lui a5,0x81000 +80000358: 09078513 addi a0,a5,144 # 81000090 +8000035c: d3dff0ef jal ra,80000098 +80000360: 810007b7 lui a5,0x81000 +80000364: 1a878793 addi a5,a5,424 # 810001a8 +80000368: 0047a783 lw a5,4(a5) +8000036c: 00078513 mv a0,a5 +80000370: d65ff0ef jal ra,800000d4 +80000374: 810007b7 lui a5,0x81000 +80000378: 09078513 addi a0,a5,144 # 81000090 +8000037c: d1dff0ef jal ra,80000098 +80000380: 810007b7 lui a5,0x81000 +80000384: 1a878793 addi a5,a5,424 # 810001a8 +80000388: 0087a783 lw a5,8(a5) +8000038c: 00078513 mv a0,a5 +80000390: d45ff0ef jal ra,800000d4 +80000394: 810007b7 lui a5,0x81000 +80000398: 09078513 addi a0,a5,144 # 81000090 +8000039c: cfdff0ef jal ra,80000098 +800003a0: 810007b7 lui a5,0x81000 +800003a4: 1a878793 addi a5,a5,424 # 810001a8 +800003a8: 00c7a783 lw a5,12(a5) +800003ac: 00078513 mv a0,a5 +800003b0: d25ff0ef jal ra,800000d4 +800003b4: 810007b7 lui a5,0x81000 +800003b8: 09078513 addi a0,a5,144 # 81000090 +800003bc: cddff0ef jal ra,80000098 +800003c0: 00000013 nop +800003c4: 01c12083 lw ra,28(sp) +800003c8: 01812403 lw s0,24(sp) +800003cc: 02010113 addi sp,sp,32 +800003d0: 00008067 ret -8000024c : -8000024c: fe010113 addi sp,sp,-32 -80000250: 00112e23 sw ra,28(sp) -80000254: 00812c23 sw s0,24(sp) -80000258: 02010413 addi s0,sp,32 -8000025c: e3dff0ef jal ra,80000098 -80000260: fea42623 sw a0,-20(s0) -80000264: fec42783 lw a5,-20(s0) -80000268: 0027b793 sltiu a5,a5,2 -8000026c: fef405a3 sb a5,-21(s0) -80000270: feb44783 lbu a5,-21(s0) -80000274: 00078513 mv a0,a5 -80000278: e09ff0ef jal ra,80000080 -8000027c: feb44783 lbu a5,-21(s0) -80000280: 06078463 beqz a5,800002e8 -80000284: fec42783 lw a5,-20(s0) -80000288: 0017b793 seqz a5,a5 -8000028c: fef40523 sb a5,-22(s0) -80000290: fea44783 lbu a5,-22(s0) -80000294: 00078513 mv a0,a5 -80000298: de9ff0ef jal ra,80000080 -8000029c: fea44783 lbu a5,-22(s0) -800002a0: 02078263 beqz a5,800002c4 -800002a4: 810007b7 lui a5,0x81000 -800002a8: fec42703 lw a4,-20(s0) -800002ac: 00271713 slli a4,a4,0x2 -800002b0: 1a878793 addi a5,a5,424 # 810001a8 -800002b4: 00f707b3 add a5,a4,a5 -800002b8: 00a00713 li a4,10 -800002bc: 00e7a023 sw a4,0(a5) -800002c0: 0200006f j 800002e0 -800002c4: 810007b7 lui a5,0x81000 -800002c8: fec42703 lw a4,-20(s0) -800002cc: 00271713 slli a4,a4,0x2 -800002d0: 1a878793 addi a5,a5,424 # 810001a8 -800002d4: 00f707b3 add a5,a4,a5 -800002d8: 00b00713 li a4,11 -800002dc: 00e7a023 sw a4,0(a5) -800002e0: da9ff0ef jal ra,80000088 -800002e4: 0640006f j 80000348 -800002e8: fec42783 lw a5,-20(s0) -800002ec: 0037b793 sltiu a5,a5,3 -800002f0: fef404a3 sb a5,-23(s0) -800002f4: fe944783 lbu a5,-23(s0) -800002f8: 00078513 mv a0,a5 -800002fc: d85ff0ef jal ra,80000080 -80000300: fe944783 lbu a5,-23(s0) -80000304: 02078263 beqz a5,80000328 -80000308: 810007b7 lui a5,0x81000 -8000030c: fec42703 lw a4,-20(s0) -80000310: 00271713 slli a4,a4,0x2 -80000314: 1a878793 addi a5,a5,424 # 810001a8 -80000318: 00f707b3 add a5,a4,a5 -8000031c: 00c00713 li a4,12 -80000320: 00e7a023 sw a4,0(a5) -80000324: 0200006f j 80000344 -80000328: 810007b7 lui a5,0x81000 -8000032c: fec42703 lw a4,-20(s0) -80000330: 00271713 slli a4,a4,0x2 -80000334: 1a878793 addi a5,a5,424 # 810001a8 -80000338: 00f707b3 add a5,a4,a5 -8000033c: 00d00713 li a4,13 -80000340: 00e7a023 sw a4,0(a5) -80000344: d45ff0ef jal ra,80000088 -80000348: d41ff0ef jal ra,80000088 -8000034c: 810007b7 lui a5,0x81000 -80000350: 1a87a783 lw a5,424(a5) # 810001a8 -80000354: 00078513 mv a0,a5 -80000358: d85ff0ef jal ra,800000dc -8000035c: 810007b7 lui a5,0x81000 -80000360: 09078513 addi a0,a5,144 # 81000090 -80000364: d3dff0ef jal ra,800000a0 -80000368: 810007b7 lui a5,0x81000 -8000036c: 1a878793 addi a5,a5,424 # 810001a8 -80000370: 0047a783 lw a5,4(a5) -80000374: 00078513 mv a0,a5 -80000378: d65ff0ef jal ra,800000dc -8000037c: 810007b7 lui a5,0x81000 -80000380: 09078513 addi a0,a5,144 # 81000090 -80000384: d1dff0ef jal ra,800000a0 -80000388: 810007b7 lui a5,0x81000 -8000038c: 1a878793 addi a5,a5,424 # 810001a8 -80000390: 0087a783 lw a5,8(a5) -80000394: 00078513 mv a0,a5 -80000398: d45ff0ef jal ra,800000dc -8000039c: 810007b7 lui a5,0x81000 -800003a0: 09078513 addi a0,a5,144 # 81000090 -800003a4: cfdff0ef jal ra,800000a0 -800003a8: 810007b7 lui a5,0x81000 -800003ac: 1a878793 addi a5,a5,424 # 810001a8 -800003b0: 00c7a783 lw a5,12(a5) -800003b4: 00078513 mv a0,a5 -800003b8: d25ff0ef jal ra,800000dc -800003bc: 810007b7 lui a5,0x81000 -800003c0: 09078513 addi a0,a5,144 # 81000090 -800003c4: cddff0ef jal ra,800000a0 -800003c8: 00000013 nop -800003cc: 01c12083 lw ra,28(sp) -800003d0: 01812403 lw s0,24(sp) -800003d4: 02010113 addi sp,sp,32 -800003d8: 00008067 ret +800003d4 : +800003d4: fe010113 addi sp,sp,-32 +800003d8: 00112e23 sw ra,28(sp) +800003dc: 00812c23 sw s0,24(sp) +800003e0: 02010413 addi s0,sp,32 +800003e4: ca5ff0ef jal ra,80000088 +800003e8: fea42623 sw a0,-20(s0) +800003ec: 810007b7 lui a5,0x81000 +800003f0: fec42703 lw a4,-20(s0) +800003f4: 00271713 slli a4,a4,0x2 +800003f8: 1b878793 addi a5,a5,440 # 810001b8 +800003fc: 00f707b3 add a5,a4,a5 +80000400: fec42703 lw a4,-20(s0) +80000404: 00e7a023 sw a4,0(a5) +80000408: fec42783 lw a5,-20(s0) +8000040c: 00078663 beqz a5,80000418 +80000410: 00000513 li a0,0 +80000414: c55ff0ef jal ra,80000068 +80000418: 00000013 nop +8000041c: 01c12083 lw ra,28(sp) +80000420: 01812403 lw s0,24(sp) +80000424: 02010113 addi sp,sp,32 +80000428: 00008067 ret -800003dc : -800003dc: fe010113 addi sp,sp,-32 -800003e0: 00112e23 sw ra,28(sp) -800003e4: 00812c23 sw s0,24(sp) -800003e8: 02010413 addi s0,sp,32 -800003ec: ca5ff0ef jal ra,80000090 -800003f0: fea42623 sw a0,-20(s0) -800003f4: 810007b7 lui a5,0x81000 -800003f8: fec42703 lw a4,-20(s0) -800003fc: 00271713 slli a4,a4,0x2 -80000400: 1b878793 addi a5,a5,440 # 810001b8 -80000404: 00f707b3 add a5,a4,a5 -80000408: fec42703 lw a4,-20(s0) -8000040c: 00e7a023 sw a4,0(a5) -80000410: fec42783 lw a5,-20(s0) -80000414: 00078663 beqz a5,80000420 -80000418: 00000513 li a0,0 -8000041c: c55ff0ef jal ra,80000070 -80000420: 00000013 nop -80000424: 01c12083 lw ra,28(sp) -80000428: 01812403 lw s0,24(sp) -8000042c: 02010113 addi sp,sp,32 -80000430: 00008067 ret +8000042c : +8000042c: fe010113 addi sp,sp,-32 +80000430: 00112e23 sw ra,28(sp) +80000434: 00812c23 sw s0,24(sp) +80000438: 02010413 addi s0,sp,32 +8000043c: 800007b7 lui a5,0x80000 +80000440: 3d478793 addi a5,a5,980 # 800003d4 +80000444: fef42623 sw a5,-20(s0) +80000448: fec42583 lw a1,-20(s0) +8000044c: 00400513 li a0,4 +80000450: c11ff0ef jal ra,80000060 +80000454: f81ff0ef jal ra,800003d4 +80000458: 810007b7 lui a5,0x81000 +8000045c: 1b87a783 lw a5,440(a5) # 810001b8 +80000460: 00078513 mv a0,a5 +80000464: c71ff0ef jal ra,800000d4 +80000468: 810007b7 lui a5,0x81000 +8000046c: 09078513 addi a0,a5,144 # 81000090 +80000470: c29ff0ef jal ra,80000098 +80000474: 810007b7 lui a5,0x81000 +80000478: 1b878793 addi a5,a5,440 # 810001b8 +8000047c: 0047a783 lw a5,4(a5) +80000480: 00078513 mv a0,a5 +80000484: c51ff0ef jal ra,800000d4 +80000488: 810007b7 lui a5,0x81000 +8000048c: 09078513 addi a0,a5,144 # 81000090 +80000490: c09ff0ef jal ra,80000098 +80000494: 810007b7 lui a5,0x81000 +80000498: 1b878793 addi a5,a5,440 # 810001b8 +8000049c: 0087a783 lw a5,8(a5) +800004a0: 00078513 mv a0,a5 +800004a4: c31ff0ef jal ra,800000d4 +800004a8: 810007b7 lui a5,0x81000 +800004ac: 09078513 addi a0,a5,144 # 81000090 +800004b0: be9ff0ef jal ra,80000098 +800004b4: 810007b7 lui a5,0x81000 +800004b8: 1b878793 addi a5,a5,440 # 810001b8 +800004bc: 00c7a783 lw a5,12(a5) +800004c0: 00078513 mv a0,a5 +800004c4: c11ff0ef jal ra,800000d4 +800004c8: 810007b7 lui a5,0x81000 +800004cc: 09078513 addi a0,a5,144 # 81000090 +800004d0: bc9ff0ef jal ra,80000098 +800004d4: 00000013 nop +800004d8: 01c12083 lw ra,28(sp) +800004dc: 01812403 lw s0,24(sp) +800004e0: 02010113 addi sp,sp,32 +800004e4: 00008067 ret -80000434 : -80000434: fe010113 addi sp,sp,-32 -80000438: 00112e23 sw ra,28(sp) -8000043c: 00812c23 sw s0,24(sp) -80000440: 02010413 addi s0,sp,32 -80000444: 800007b7 lui a5,0x80000 -80000448: 3dc78793 addi a5,a5,988 # 800003dc -8000044c: fef42623 sw a5,-20(s0) -80000450: fec42583 lw a1,-20(s0) -80000454: 00400513 li a0,4 -80000458: c11ff0ef jal ra,80000068 -8000045c: f81ff0ef jal ra,800003dc -80000460: 810007b7 lui a5,0x81000 -80000464: 1b87a783 lw a5,440(a5) # 810001b8 -80000468: 00078513 mv a0,a5 -8000046c: c71ff0ef jal ra,800000dc -80000470: 810007b7 lui a5,0x81000 -80000474: 09078513 addi a0,a5,144 # 81000090 -80000478: c29ff0ef jal ra,800000a0 -8000047c: 810007b7 lui a5,0x81000 -80000480: 1b878793 addi a5,a5,440 # 810001b8 -80000484: 0047a783 lw a5,4(a5) -80000488: 00078513 mv a0,a5 -8000048c: c51ff0ef jal ra,800000dc -80000490: 810007b7 lui a5,0x81000 -80000494: 09078513 addi a0,a5,144 # 81000090 -80000498: c09ff0ef jal ra,800000a0 -8000049c: 810007b7 lui a5,0x81000 -800004a0: 1b878793 addi a5,a5,440 # 810001b8 -800004a4: 0087a783 lw a5,8(a5) -800004a8: 00078513 mv a0,a5 -800004ac: c31ff0ef jal ra,800000dc -800004b0: 810007b7 lui a5,0x81000 -800004b4: 09078513 addi a0,a5,144 # 81000090 -800004b8: be9ff0ef jal ra,800000a0 -800004bc: 810007b7 lui a5,0x81000 -800004c0: 1b878793 addi a5,a5,440 # 810001b8 -800004c4: 00c7a783 lw a5,12(a5) -800004c8: 00078513 mv a0,a5 -800004cc: c11ff0ef jal ra,800000dc -800004d0: 810007b7 lui a5,0x81000 -800004d4: 09078513 addi a0,a5,144 # 81000090 -800004d8: bc9ff0ef jal ra,800000a0 -800004dc: 00000013 nop -800004e0: 01c12083 lw ra,28(sp) -800004e4: 01812403 lw s0,24(sp) -800004e8: 02010113 addi sp,sp,32 -800004ec: 00008067 ret - -800004f0
: -800004f0: ff010113 addi sp,sp,-16 -800004f4: 00112623 sw ra,12(sp) -800004f8: 00812423 sw s0,8(sp) -800004fc: 01010413 addi s0,sp,16 -80000500: 00100513 li a0,1 -80000504: b6dff0ef jal ra,80000070 -80000508: c65ff0ef jal ra,8000016c -8000050c: 810007b7 lui a5,0x81000 -80000510: 0d478513 addi a0,a5,212 # 810000d4 -80000514: b8dff0ef jal ra,800000a0 -80000518: 00400513 li a0,4 -8000051c: b55ff0ef jal ra,80000070 -80000520: d2dff0ef jal ra,8000024c -80000524: 00100513 li a0,1 -80000528: b49ff0ef jal ra,80000070 -8000052c: 00000793 li a5,0 -80000530: 00078513 mv a0,a5 -80000534: 00c12083 lw ra,12(sp) -80000538: 00812403 lw s0,8(sp) -8000053c: 01010113 addi sp,sp,16 -80000540: 00008067 ret +800004e8
: +800004e8: ff010113 addi sp,sp,-16 +800004ec: 00112623 sw ra,12(sp) +800004f0: 00812423 sw s0,8(sp) +800004f4: 01010413 addi s0,sp,16 +800004f8: 00100513 li a0,1 +800004fc: b6dff0ef jal ra,80000068 +80000500: c65ff0ef jal ra,80000164 +80000504: 810007b7 lui a5,0x81000 +80000508: 0d478513 addi a0,a5,212 # 810000d4 +8000050c: b8dff0ef jal ra,80000098 +80000510: 00400513 li a0,4 +80000514: b55ff0ef jal ra,80000068 +80000518: d2dff0ef jal ra,80000244 +8000051c: 00100513 li a0,1 +80000520: b49ff0ef jal ra,80000068 +80000524: 00000793 li a5,0 +80000528: 00078513 mv a0,a5 +8000052c: 00c12083 lw ra,12(sp) +80000530: 00812403 lw s0,8(sp) +80000534: 01010113 addi sp,sp,16 +80000538: 00008067 ret Disassembly of section .rodata: @@ -408,7 +406,7 @@ Disassembly of section .rodata: 8100002a: 0000 unimp 8100002c: 0062 c.slli zero,0x18 8100002e: 0000 unimp -81000030: 00000063 beqz zero,81000030 +81000030: 00000063 beqz zero,81000030 81000034: 0064 addi s1,sp,12 81000036: 0000 unimp 81000038: 0065 c.nop 25 @@ -439,7 +437,7 @@ Disassembly of section .rodata: 8100006e: 0000 unimp 81000070: 0062 c.slli zero,0x18 81000072: 0000 unimp -81000074: 00000063 beqz zero,81000074 +81000074: 00000063 beqz zero,81000074 81000078: 0064 addi s1,sp,12 8100007a: 0000 unimp 8100007c: 0065 c.nop 25 @@ -475,7 +473,7 @@ Disassembly of section .rodata: 810000be: 0000 unimp 810000c0: 0062 c.slli zero,0x18 810000c2: 0000 unimp -810000c4: 00000063 beqz zero,810000c4 +810000c4: 00000063 beqz zero,810000c4 810000c8: 0064 addi s1,sp,12 810000ca: 0000 unimp 810000cc: 0065 c.nop 25 diff --git a/runtime/vortex_runtime.elf b/runtime/vortex_runtime.elf index d92ccd76..f451ec33 100644 Binary files a/runtime/vortex_runtime.elf and b/runtime/vortex_runtime.elf differ diff --git a/runtime/vortex_runtime.hex b/runtime/vortex_runtime.hex index d3287642..0f722c55 100644 --- a/runtime/vortex_runtime.hex +++ b/runtime/vortex_runtime.hex @@ -1,89 +1,88 @@ :0200000480007A -:100000009705000093850502130580006B10B5006D -:10001000EF000001EF00C04D130500006B0005006C +:100000009705000093850502130540006B10B500AD +:10001000EF000001EF00404D130500006B000500EC :10002000130540006B000500F32610029396F600BE :10003000732600029315A6001316260037F1FF6FF2 :100040003301B1403301D1403301C100F326100226 -:1000500063860600130500006B0005001305100001 -:100060006B000500678000006B10B5006780000022 -:100070006B000500678000006B40B50067800000E2 -:100080006B200500678000006B3000006780000077 -:10009000732510026780000073250002678000004E -:1000A000130141FF232011002322B10083450500E5 -:1000B00063880500EF00C001130515006FF01FFFF6 -:1000C00083200100832541001301C10067800000E7 -:1000D000B702010023A0B20067800000130101FEF7 -:1000E000232E1100232C8100130401022326A4FED9 -:1000F000B70700810327C4FE131727009387870ED5 -:10010000B307F70083A7070013850700EFF05FF937 -:10011000130000008320C1010324810113010102A7 -:1001200067800000130101FE232E1100232C8100A3 -:10013000130401022326A4FE2324B4FE0325C4FED7 -:10014000EFF01FF6032584FEEFF05FF9B70700819B -:1001500013850704EFF0DFF4130000008320C101D2 -:10016000032481011301010267800000130101FED5 -:10017000232E1100232C810013040102B7070081F4 -:1001800013854708EFF0DFF113054000EFF05FEE55 -:10019000EFF09FF02326A4FE0327C4FEB7070081DB -:1001A0008326C4FE939626009387871AB387F600AA -:1001B00023A0E70013051000EFF09FEBB7070081C5 -:1001C00083A7871A13850700EFF05FF1B707008157 -:1001D00013850709EFF0DFECB70700819387871AD3 -:1001E00083A7470013850700EFF05FEFB707008193 -:1001F00013850709EFF0DFEAB70700819387871AB5 -:1002000083A7870013850700EFF05FEDB707008134 -:1002100013850709EFF0DFE8B70700819387871A96 -:1002200083A7C70013850700EFF05FEBB7070081D6 -:1002300013850709EFF0DFE6130000008320C101FA -:10024000032481011301010267800000130101FEF4 -:10025000232E1100232C810013040102EFF0DFE3B1 -:100260002326A4FE8327C4FE93B72700A305F4FE2C -:100270008347B4FE13850700EFF09FE08347B4FE89 -:10028000638407068327C4FE93B717002305F4FE93 -:100290008347A4FE13850700EFF09FDE8347A4FE8B -:1002A00063820702B70700810327C4FE13172700E4 -:1002B0009387871AB307F7001307A00023A0E7006E -:1002C0006F000002B70700810327C4FE1317270041 -:1002D0009387871AB307F7001307B00023A0E7003E -:1002E000EFF09FDA6F0040068327C4FE93B7370014 -:1002F000A304F4FE834794FE13850700EFF05FD854 -:10030000834794FE63820702B70700810327C4FE78 -:10031000131727009387871AB307F7001307C00046 -:1003200023A0E7006F000002B70700810327C4FE87 -:10033000131727009387871AB307F7001307D00016 -:1003400023A0E700EFF05FD4EFF01FD4B7070081E0 -:1003500083A7871A13850700EFF05FD8B7070081DE -:1003600013850709EFF0DFD3B70700819387871A5A -:1003700083A7470013850700EFF05FD6B70700811A -:1003800013850709EFF0DFD1B70700819387871A3C -:1003900083A7870013850700EFF05FD4B7070081BC -:1003A00013850709EFF0DFCFB70700819387871A1E -:1003B00083A7C70013850700EFF05FD2B70700815E -:1003C00013850709EFF0DFCD130000008320C10182 -:1003D000032481011301010267800000130101FE63 -:1003E000232E1100232C810013040102EFF05FCAB9 -:1003F0002326A4FEB70700810327C4FE1317270096 -:100400009387871BB307F7000327C4FE23A0E700E9 -:100410008327C4FE6386070013050000EFF05FC565 -:10042000130000008320C101032481011301010294 -:1004300067800000130101FE232E1100232C810090 -:1004400013040102B70700809387C73D2326F4FEFB -:100450008325C4FE13054000EFF01FC1EFF01FF825 -:10046000B707008183A7871B13850700EFF01FC71D -:10047000B707008113850709EFF09FC2B707008116 -:100480009387871B83A7470013850700EFF01FC5DD -:10049000B707008113850709EFF09FC0B7070081F8 -:1004A0009387871B83A7870013850700EFF01FC37F -:1004B000B707008113850709EFF09FBEB7070081DA -:1004C0009387871B83A7C70013850700EFF01FC121 -:1004D000B707008113850709EFF09FBC13000000E8 -:1004E0008320C10103248101130101026780000000 -:1004F000130101FF232611002324810013040101AD -:1005000013051000EFF0DFB6EFF05FC6B70700810C -:100510001385470DEFF0DFB813054000EFF05FB52E -:10052000EFF0DFD213051000EFF09FB49307000047 -:10053000138507008320C1000324810013010101FA -:0405400067800000D0 +:1000500063860600130500006B0005006780000042 +:100060006B10B500678000006B0005006780000022 +:100070006B40B500678000006B20050067800000C2 +:100080006B3000006780000073251002678000005D +:100090007325000267800000130141FF2320110037 +:1000A0002322B1008345050063880500EF00C001ED +:1000B000130515006FF01FFF832001008325410009 +:1000C0001301C10067800000B702010023A0B20045 +:1000D00067800000130101FE232E1100232C8100F4 +:1000E000130401022326A4FEB70700810327C4FEE0 +:1000F000131727009387870EB307F70083A707001E +:1001000013850700EFF05FF9130000008320C101A1 +:10011000032481011301010267800000130101FE25 +:10012000232E1100232C8100130401022326A4FE98 +:100130002324B4FE0325C4FEEFF01FF6032584FE3E +:10014000EFF05FF9B707008113850704EFF0DFF4E4 +:10015000130000008320C101032481011301010267 +:1001600067800000130101FE232E1100232C810063 +:1001700013040102B707008113854708EFF0DFF190 +:1001800013054000EFF05FEEEFF09FF02326A4FE92 +:100190000327C4FEB70700818326C4FE939626007A +:1001A0009387871AB387F60023A0E7001305100092 +:1001B000EFF09FEBB707008183A7871A138507002D +:1001C000EFF05FF1B707008113850709EFF0DFEC6F +:1001D000B70700819387871A83A747001385070015 +:1001E000EFF05FEFB707008113850709EFF0DFEA53 +:1001F000B70700819387871A83A7870013850700B5 +:10020000EFF05FEDB707008113850709EFF0DFE836 +:10021000B70700819387871A83A7C7001385070054 +:10022000EFF05FEBB707008113850709EFF0DFE61A +:10023000130000008320C101032481011301010286 +:1002400067800000130101FE232E1100232C810082 +:1002500013040102EFF0DFE32326A4FE8327C4FE8C +:1002600093B72700A305F4FE8347B4FE1385070068 +:10027000EFF09FE08347B4FE638407068327C4FE44 +:1002800093B717002305F4FE8347A4FE13850700E8 +:10029000EFF09FDE8347A4FE63820702B707008169 +:1002A0000327C4FE131727009387871AB307F700A5 +:1002B0001307A00023A0E7006F000002B70700812A +:1002C0000327C4FE131727009387871AB307F70085 +:1002D0001307B00023A0E700EFF09FDA6F0040069D +:1002E0008327C4FE93B73700A304F4FE834794FE2C +:1002F00013850700EFF05FD8834794FE63820702FF +:10030000B70700810327C4FE131727009387871AB6 +:10031000B307F7001307C00023A0E7006F00000237 +:10032000B70700810327C4FE131727009387871A96 +:10033000B307F7001307D00023A0E700EFF05FD466 +:10034000EFF01FD4B707008183A7871A1385070032 +:10035000EFF05FD8B707008113850709EFF0DFD30F +:10036000B70700819387871A83A747001385070083 +:10037000EFF05FD6B707008113850709EFF0DFD1F3 +:10038000B70700819387871A83A787001385070023 +:10039000EFF05FD4B707008113850709EFF0DFCFD7 +:1003A000B70700819387871A83A7C70013850700C3 +:1003B000EFF05FD2B707008113850709EFF0DFCDBB +:1003C000130000008320C1010324810113010102F5 +:1003D00067800000130101FE232E1100232C8100F1 +:1003E00013040102EFF05FCA2326A4FEB7070081C1 +:1003F0000327C4FE131727009387871BB307F70053 +:100400000327C4FE23A0E7008327C4FE63860700FA +:1004100013050000EFF05FC5130000008320C10149 +:10042000032481011301010267800000130101FE12 +:10043000232E1100232C810013040102B707008032 +:100440009387473D2326F4FE8325C4FE1305400011 +:10045000EFF01FC1EFF01FF8B707008183A7871BDC +:1004600013850700EFF01FC7B70700811385070941 +:10047000EFF09FC2B70700819387871B83A74700D0 +:1004800013850700EFF01FC5B70700811385070923 +:10049000EFF09FC0B70700819387871B83A7870072 +:1004A00013850700EFF01FC3B70700811385070905 +:1004B000EFF09FBEB70700819387871B83A7C70014 +:1004C00013850700EFF01FC1B707008113850709E7 +:1004D000EFF09FBC130000008320C10103248101C1 +:1004E0001301010267800000130101FF23261100A0 +:1004F000232481001304010113051000EFF0DFB67F +:10050000EFF05FC6B70700811385470DEFF0DFB846 +:1005100013054000EFF05FB5EFF0DFD213051000D8 +:10052000EFF09FB493070000138507008320C100FC +:0C0530000324810013010101678000001A :02000004810079 :10000000300000003100000032000000330000002A :10001000340000003500000036000000370000000A