From a28a1c45c16d220a65960b40d06671d5cae7060f Mon Sep 17 00:00:00 2001 From: felsabbagh3 Date: Sun, 3 Nov 2019 20:56:07 -0500 Subject: [PATCH] wsapwn tested - NOTE in vx_main.c --- rtl/VX_lsu.v | 13 + rtl/VX_warp_scheduler.v | 5 +- runtime/intrinsics/vx_intrinsics.h | 1 + runtime/intrinsics/vx_intrinsics.s | 26 +- runtime/startup/vx_start.s | 6 - runtime/tests/tests.c | 17 + runtime/tests/tests.h | 3 +- runtime/vortex_runtime.dump | 852 ++++++++++++++++------------- runtime/vortex_runtime.elf | Bin 10016 -> 10220 bytes runtime/vortex_runtime.hex | 202 +++---- runtime/vx_main.c | 21 +- 11 files changed, 644 insertions(+), 502 deletions(-) diff --git a/rtl/VX_lsu.v b/rtl/VX_lsu.v index bc84c1cc..e4d39891 100644 --- a/rtl/VX_lsu.v +++ b/rtl/VX_lsu.v @@ -50,6 +50,19 @@ module VX_lsu ( assign VX_mem_wb.wb_warp_num = VX_lsu_req.warp_num; + integer curr_t; + always @(negedge clk) begin + for (int curr_t = 0; curr_t < `NT; curr_t=curr_t+1) + if ((VX_dcache_req.out_cache_driver_in_valid[curr_t]) && !out_delay) begin + if (VX_dcache_req.out_cache_driver_in_mem_read != `NO_MEM_READ) begin + $display("Reading addr: %x val: %x", address[0], VX_mem_wb.loaded_data[0]); + end + + if (VX_dcache_req.out_cache_driver_in_mem_write != `NO_MEM_WRITE) begin + $display("Writing addr: %x val: %x", address[0], VX_dcache_req.out_cache_driver_in_data[0]); + end + end + end // wire zero_temp = 0; // VX_generic_register #(.N(142)) register_wb_data diff --git a/rtl/VX_warp_scheduler.v b/rtl/VX_warp_scheduler.v index 5837135a..f5b5ecf4 100644 --- a/rtl/VX_warp_scheduler.v +++ b/rtl/VX_warp_scheduler.v @@ -174,7 +174,8 @@ module VX_warp_scheduler ( end if (update_use_wspawn) begin - use_wsapwn[warp_to_schedule] <= 0; + use_wsapwn[warp_to_schedule] <= 0; + thread_masks[warp_to_schedule] <= 1'b1; end @@ -281,7 +282,7 @@ module VX_warp_scheduler ( wire real_use_wspawn = use_wsapwn[warp_to_schedule]; assign warp_pc = real_use_wspawn ? use_wsapwn_pc : warp_pcs[warp_to_schedule]; - assign thread_mask = (global_stall) ? 0 : thread_masks[warp_to_schedule]; + assign thread_mask = (global_stall) ? 0 : (real_use_wspawn ? 1'b1 : thread_masks[warp_to_schedule]); assign warp_num = warp_to_schedule; assign update_use_wspawn = use_wsapwn[warp_to_schedule] && !global_stall; diff --git a/runtime/intrinsics/vx_intrinsics.h b/runtime/intrinsics/vx_intrinsics.h index a346a42f..f5689d2c 100644 --- a/runtime/intrinsics/vx_intrinsics.h +++ b/runtime/intrinsics/vx_intrinsics.h @@ -27,6 +27,7 @@ unsigned vx_threadID(void); // Get hardware warp ID unsigned vx_warpID(void); +void vx_resetStack(void); #define __if(b) vx_split(b); \ diff --git a/runtime/intrinsics/vx_intrinsics.s b/runtime/intrinsics/vx_intrinsics.s index 5a85be0b..0d0fdfbb 100644 --- a/runtime/intrinsics/vx_intrinsics.s +++ b/runtime/intrinsics/vx_intrinsics.s @@ -48,4 +48,28 @@ vx_warpID: vx_threadID: csrr a0, 0x20 # read thread IDs ret - \ No newline at end of file + + +.type vx_resetStack, @function +.global vx_resetStack +vx_resetStack: + li a0, 4 + .word 0x0005006b # tmc 4 + + csrr a3, 0x21 # get wid + slli a3, a3, 15 # shift by wid + csrr a2, 0x20 # get tid + slli a1, a2, 10 # multiply tid by 1024 + slli a2, a2, 2 # multiply tid by 4 + lui sp, 0x6ffff # load base sp + sub sp, sp, a1 # sub sp - (1024*tid) + sub sp, sp, a3 # shoft per warp + add sp, sp, a2 # shift sp for better performance + + csrr a3, 0x21 # get wid + beqz a3, RETURN + li a0, 0 + .word 0x0005006b # tmc 0 +RETURN: + ret + diff --git a/runtime/startup/vx_start.s b/runtime/startup/vx_start.s index 2d527a32..03f12c31 100644 --- a/runtime/startup/vx_start.s +++ b/runtime/startup/vx_start.s @@ -3,12 +3,6 @@ .type _start, @function .global _start _start: - # 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) diff --git a/runtime/tests/tests.c b/runtime/tests/tests.c index 7e981cf3..7b449ef7 100644 --- a/runtime/tests/tests.c +++ b/runtime/tests/tests.c @@ -104,6 +104,23 @@ void test_wsapwn() vx_print_str("\n"); } +void intrinsics_tests() +{ + // TMC test + test_tmc(); + + // Control Divergence Test + vx_print_str("test_divergence\n"); + vx_tmc(4); + test_divergence(); + vx_tmc(1); + + + // Test wspawn + vx_print_str("test_spawn\n"); + test_wsapwn(); +} + diff --git a/runtime/tests/tests.h b/runtime/tests/tests.h index fbca2546..8ca08448 100644 --- a/runtime/tests/tests.h +++ b/runtime/tests/tests.h @@ -11,6 +11,7 @@ void test_divergence(); void test_wsapwn(); +void intrinsics_tests(); -#endif \ No newline at end of file +#endif diff --git a/runtime/vortex_runtime.dump b/runtime/vortex_runtime.dump index e8c619c6..701208ed 100644 --- a/runtime/vortex_runtime.dump +++ b/runtime/vortex_runtime.dump @@ -10,7 +10,7 @@ Disassembly of section .text: 80000008: 00400513 li a0,4 8000000c: 00b5106b 0xb5106b 80000010: 010000ef jal ra,80000020 -80000014: 4d4000ef jal ra,800004e8
+80000014: 56c000ef jal ra,80000580
80000018: 00000513 li a0,0 8000001c: 0005006b 0x5006b @@ -62,324 +62,372 @@ Disassembly of section .text: 80000090: 02002573 csrr a0,0x20 80000094: 00008067 ret -80000098 : -80000098: ff410113 addi sp,sp,-12 # 6fffeff4 <_start-0x1000100c> -8000009c: 00112023 sw ra,0(sp) -800000a0: 00b12223 sw a1,4(sp) +80000098 : +80000098: 00400513 li a0,4 +8000009c: 0005006b 0x5006b +800000a0: 021026f3 csrr a3,0x21 +800000a4: 00f69693 slli a3,a3,0xf +800000a8: 02002673 csrr a2,0x20 +800000ac: 00a61593 slli a1,a2,0xa +800000b0: 00261613 slli a2,a2,0x2 +800000b4: 6ffff137 lui sp,0x6ffff +800000b8: 40b10133 sub sp,sp,a1 +800000bc: 40d10133 sub sp,sp,a3 +800000c0: 00c10133 add sp,sp,a2 +800000c4: 021026f3 csrr a3,0x21 +800000c8: 00068663 beqz a3,800000d4 +800000cc: 00000513 li a0,0 +800000d0: 0005006b 0x5006b -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 +800000d4 : +800000d4: 00008067 ret -800000b8 : -800000b8: 00012083 lw ra,0(sp) -800000bc: 00412583 lw a1,4(sp) -800000c0: 00c10113 addi sp,sp,12 -800000c4: 00008067 ret +800000d8 : +800000d8: ff410113 addi sp,sp,-12 # 6fffeff4 <_start-0x1000100c> +800000dc: 00112023 sw ra,0(sp) +800000e0: 00b12223 sw a1,4(sp) -800000c8 : -800000c8: 000102b7 lui t0,0x10 -800000cc: 00b2a023 sw a1,0(t0) # 10000 <_start-0x7fff0000> -800000d0: 00008067 ret +800000e4 : +800000e4: 00054583 lbu a1,0(a0) +800000e8: 00058863 beqz a1,800000f8 +800000ec: 01c000ef jal ra,80000108 +800000f0: 00150513 addi a0,a0,1 +800000f4: ff1ff06f j 800000e4 -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 +800000f8 : +800000f8: 00012083 lw ra,0(sp) +800000fc: 00412583 lw a1,4(sp) +80000100: 00c10113 addi sp,sp,12 +80000104: 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 +80000108 : +80000108: 000102b7 lui t0,0x10 +8000010c: 00b2a023 sw a1,0(t0) # 10000 <_start-0x7fff0000> +80000110: 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 +80000114 : +80000114: fe010113 addi sp,sp,-32 +80000118: 00112e23 sw ra,28(sp) +8000011c: 00812c23 sw s0,24(sp) +80000120: 02010413 addi s0,sp,32 +80000124: fea42623 sw a0,-20(s0) +80000128: 810007b7 lui a5,0x81000 +8000012c: fec42703 lw a4,-20(s0) +80000130: 00271713 slli a4,a4,0x2 +80000134: 11878793 addi a5,a5,280 # 81000118 +80000138: 00f707b3 add a5,a4,a5 +8000013c: 0007a783 lw a5,0(a5) +80000140: 00078513 mv a0,a5 +80000144: f95ff0ef jal ra,800000d8 +80000148: 00000013 nop +8000014c: 01c12083 lw ra,28(sp) +80000150: 01812403 lw s0,24(sp) +80000154: 02010113 addi sp,sp,32 +80000158: 00008067 ret + +8000015c : +8000015c: fe010113 addi sp,sp,-32 +80000160: 00112e23 sw ra,28(sp) +80000164: 00812c23 sw s0,24(sp) +80000168: 02010413 addi s0,sp,32 +8000016c: fea42623 sw a0,-20(s0) +80000170: feb42423 sw a1,-24(s0) +80000174: fec42503 lw a0,-20(s0) +80000178: f61ff0ef jal ra,800000d8 +8000017c: fe842503 lw a0,-24(s0) +80000180: f95ff0ef jal ra,80000114 +80000184: 810007b7 lui a5,0x81000 +80000188: 04078513 addi a0,a5,64 # 81000040 +8000018c: f4dff0ef jal ra,800000d8 +80000190: 00000013 nop +80000194: 01c12083 lw ra,28(sp) +80000198: 01812403 lw s0,24(sp) +8000019c: 02010113 addi sp,sp,32 +800001a0: 00008067 ret + +800001a4 : +800001a4: fe010113 addi sp,sp,-32 +800001a8: 00112e23 sw ra,28(sp) +800001ac: 00812c23 sw s0,24(sp) +800001b0: 02010413 addi s0,sp,32 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) +800001b8: 08478513 addi a0,a5,132 # 81000084 +800001bc: f1dff0ef jal ra,800000d8 +800001c0: 00400513 li a0,4 +800001c4: ea5ff0ef jal ra,80000068 +800001c8: ec9ff0ef jal ra,80000090 +800001cc: fea42623 sw a0,-20(s0) +800001d0: fec42703 lw a4,-20(s0) +800001d4: 810007b7 lui a5,0x81000 +800001d8: fec42683 lw a3,-20(s0) +800001dc: 00269693 slli a3,a3,0x2 +800001e0: 1d878793 addi a5,a5,472 # 810001d8 +800001e4: 00f687b3 add a5,a3,a5 +800001e8: 00e7a023 sw a4,0(a5) +800001ec: 00100513 li a0,1 +800001f0: e79ff0ef jal ra,80000068 +800001f4: 810007b7 lui a5,0x81000 +800001f8: 1d87a783 lw a5,472(a5) # 810001d8 800001fc: 00078513 mv a0,a5 -80000200: ed5ff0ef jal ra,800000d4 +80000200: f15ff0ef jal ra,80000114 80000204: 810007b7 lui a5,0x81000 -80000208: 09078513 addi a0,a5,144 # 81000090 -8000020c: e8dff0ef jal ra,80000098 +80000208: 09078513 addi a0,a5,144 # 81000090 +8000020c: ecdff0ef jal ra,800000d8 80000210: 810007b7 lui a5,0x81000 -80000214: 1a878793 addi a5,a5,424 # 810001a8 -80000218: 00c7a783 lw a5,12(a5) +80000214: 1d878793 addi a5,a5,472 # 810001d8 +80000218: 0047a783 lw a5,4(a5) 8000021c: 00078513 mv a0,a5 -80000220: eb5ff0ef jal ra,800000d4 +80000220: ef5ff0ef jal ra,80000114 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 +80000228: 09078513 addi a0,a5,144 # 81000090 +8000022c: eadff0ef jal ra,800000d8 +80000230: 810007b7 lui a5,0x81000 +80000234: 1d878793 addi a5,a5,472 # 810001d8 +80000238: 0087a783 lw a5,8(a5) +8000023c: 00078513 mv a0,a5 +80000240: ed5ff0ef jal ra,80000114 +80000244: 810007b7 lui a5,0x81000 +80000248: 09078513 addi a0,a5,144 # 81000090 +8000024c: e8dff0ef jal ra,800000d8 +80000250: 810007b7 lui a5,0x81000 +80000254: 1d878793 addi a5,a5,472 # 810001d8 +80000258: 00c7a783 lw a5,12(a5) +8000025c: 00078513 mv a0,a5 +80000260: eb5ff0ef jal ra,80000114 +80000264: 810007b7 lui a5,0x81000 +80000268: 09078513 addi a0,a5,144 # 81000090 +8000026c: e6dff0ef jal ra,800000d8 +80000270: 00000013 nop +80000274: 01c12083 lw ra,28(sp) +80000278: 01812403 lw s0,24(sp) +8000027c: 02010113 addi sp,sp,32 +80000280: 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 +80000284 : +80000284: fe010113 addi sp,sp,-32 +80000288: 00112e23 sw ra,28(sp) +8000028c: 00812c23 sw s0,24(sp) +80000290: 02010413 addi s0,sp,32 +80000294: dfdff0ef jal ra,80000090 +80000298: fea42623 sw a0,-20(s0) +8000029c: fec42783 lw a5,-20(s0) +800002a0: 0027b793 sltiu a5,a5,2 +800002a4: fef405a3 sb a5,-21(s0) +800002a8: feb44783 lbu a5,-21(s0) +800002ac: 00078513 mv a0,a5 +800002b0: dc9ff0ef jal ra,80000078 +800002b4: feb44783 lbu a5,-21(s0) +800002b8: 06078463 beqz a5,80000320 +800002bc: fec42783 lw a5,-20(s0) +800002c0: 0017b793 seqz a5,a5 +800002c4: fef40523 sb a5,-22(s0) +800002c8: fea44783 lbu a5,-22(s0) +800002cc: 00078513 mv a0,a5 +800002d0: da9ff0ef jal ra,80000078 +800002d4: fea44783 lbu a5,-22(s0) +800002d8: 02078263 beqz a5,800002fc +800002dc: 810007b7 lui a5,0x81000 +800002e0: fec42703 lw a4,-20(s0) +800002e4: 00271713 slli a4,a4,0x2 +800002e8: 1d878793 addi a5,a5,472 # 810001d8 +800002ec: 00f707b3 add a5,a4,a5 +800002f0: 00a00713 li a4,10 +800002f4: 00e7a023 sw a4,0(a5) +800002f8: 0200006f j 80000318 +800002fc: 810007b7 lui a5,0x81000 +80000300: fec42703 lw a4,-20(s0) +80000304: 00271713 slli a4,a4,0x2 +80000308: 1d878793 addi a5,a5,472 # 810001d8 +8000030c: 00f707b3 add a5,a4,a5 +80000310: 00b00713 li a4,11 +80000314: 00e7a023 sw a4,0(a5) +80000318: d69ff0ef jal ra,80000080 +8000031c: 0640006f j 80000380 +80000320: fec42783 lw a5,-20(s0) +80000324: 0037b793 sltiu a5,a5,3 +80000328: fef404a3 sb a5,-23(s0) +8000032c: fe944783 lbu a5,-23(s0) +80000330: 00078513 mv a0,a5 +80000334: d45ff0ef jal ra,80000078 +80000338: fe944783 lbu a5,-23(s0) +8000033c: 02078263 beqz a5,80000360 +80000340: 810007b7 lui a5,0x81000 +80000344: fec42703 lw a4,-20(s0) +80000348: 00271713 slli a4,a4,0x2 +8000034c: 1d878793 addi a5,a5,472 # 810001d8 +80000350: 00f707b3 add a5,a4,a5 +80000354: 00c00713 li a4,12 +80000358: 00e7a023 sw a4,0(a5) +8000035c: 0200006f j 8000037c 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) +80000364: fec42703 lw a4,-20(s0) +80000368: 00271713 slli a4,a4,0x2 +8000036c: 1d878793 addi a5,a5,472 # 810001d8 +80000370: 00f707b3 add a5,a4,a5 +80000374: 00d00713 li a4,13 +80000378: 00e7a023 sw a4,0(a5) +8000037c: d05ff0ef jal ra,80000080 +80000380: d01ff0ef jal ra,80000080 +80000384: 810007b7 lui a5,0x81000 +80000388: 1d87a783 lw a5,472(a5) # 810001d8 8000038c: 00078513 mv a0,a5 -80000390: d45ff0ef jal ra,800000d4 +80000390: d85ff0ef jal ra,80000114 80000394: 810007b7 lui a5,0x81000 -80000398: 09078513 addi a0,a5,144 # 81000090 -8000039c: cfdff0ef jal ra,80000098 +80000398: 09078513 addi a0,a5,144 # 81000090 +8000039c: d3dff0ef jal ra,800000d8 800003a0: 810007b7 lui a5,0x81000 -800003a4: 1a878793 addi a5,a5,424 # 810001a8 -800003a8: 00c7a783 lw a5,12(a5) +800003a4: 1d878793 addi a5,a5,472 # 810001d8 +800003a8: 0047a783 lw a5,4(a5) 800003ac: 00078513 mv a0,a5 -800003b0: d25ff0ef jal ra,800000d4 +800003b0: d65ff0ef jal ra,80000114 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 +800003b8: 09078513 addi a0,a5,144 # 81000090 +800003bc: d1dff0ef jal ra,800000d8 +800003c0: 810007b7 lui a5,0x81000 +800003c4: 1d878793 addi a5,a5,472 # 810001d8 +800003c8: 0087a783 lw a5,8(a5) +800003cc: 00078513 mv a0,a5 +800003d0: d45ff0ef jal ra,80000114 +800003d4: 810007b7 lui a5,0x81000 +800003d8: 09078513 addi a0,a5,144 # 81000090 +800003dc: cfdff0ef jal ra,800000d8 +800003e0: 810007b7 lui a5,0x81000 +800003e4: 1d878793 addi a5,a5,472 # 810001d8 +800003e8: 00c7a783 lw a5,12(a5) +800003ec: 00078513 mv a0,a5 +800003f0: d25ff0ef jal ra,80000114 +800003f4: 810007b7 lui a5,0x81000 +800003f8: 09078513 addi a0,a5,144 # 81000090 +800003fc: cddff0ef jal ra,800000d8 +80000400: 00000013 nop +80000404: 01c12083 lw ra,28(sp) +80000408: 01812403 lw s0,24(sp) +8000040c: 02010113 addi sp,sp,32 +80000410: 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 +80000414 : +80000414: fe010113 addi sp,sp,-32 +80000418: 00112e23 sw ra,28(sp) +8000041c: 00812c23 sw s0,24(sp) +80000420: 02010413 addi s0,sp,32 +80000424: c65ff0ef jal ra,80000088 +80000428: fea42623 sw a0,-20(s0) +8000042c: 810007b7 lui a5,0x81000 +80000430: fec42703 lw a4,-20(s0) +80000434: 00271713 slli a4,a4,0x2 +80000438: 1e878793 addi a5,a5,488 # 810001e8 +8000043c: 00f707b3 add a5,a4,a5 +80000440: fec42703 lw a4,-20(s0) +80000444: 00e7a023 sw a4,0(a5) +80000448: fec42783 lw a5,-20(s0) +8000044c: 00078663 beqz a5,80000458 +80000450: 00000513 li a0,0 +80000454: c15ff0ef jal ra,80000068 +80000458: 00000013 nop +8000045c: 01c12083 lw ra,28(sp) +80000460: 01812403 lw s0,24(sp) +80000464: 02010113 addi sp,sp,32 +80000468: 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) +8000046c : +8000046c: fe010113 addi sp,sp,-32 +80000470: 00112e23 sw ra,28(sp) +80000474: 00812c23 sw s0,24(sp) +80000478: 02010413 addi s0,sp,32 +8000047c: 800007b7 lui a5,0x80000 +80000480: 41478793 addi a5,a5,1044 # 80000414 +80000484: fef42623 sw a5,-20(s0) +80000488: fec42583 lw a1,-20(s0) +8000048c: 00400513 li a0,4 +80000490: bd1ff0ef jal ra,80000060 +80000494: f81ff0ef jal ra,80000414 +80000498: 810007b7 lui a5,0x81000 +8000049c: 1e87a783 lw a5,488(a5) # 810001e8 800004a0: 00078513 mv a0,a5 -800004a4: c31ff0ef jal ra,800000d4 +800004a4: c71ff0ef jal ra,80000114 800004a8: 810007b7 lui a5,0x81000 -800004ac: 09078513 addi a0,a5,144 # 81000090 -800004b0: be9ff0ef jal ra,80000098 +800004ac: 09078513 addi a0,a5,144 # 81000090 +800004b0: c29ff0ef jal ra,800000d8 800004b4: 810007b7 lui a5,0x81000 -800004b8: 1b878793 addi a5,a5,440 # 810001b8 -800004bc: 00c7a783 lw a5,12(a5) +800004b8: 1e878793 addi a5,a5,488 # 810001e8 +800004bc: 0047a783 lw a5,4(a5) 800004c0: 00078513 mv a0,a5 -800004c4: c11ff0ef jal ra,800000d4 +800004c4: c51ff0ef jal ra,80000114 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 +800004cc: 09078513 addi a0,a5,144 # 81000090 +800004d0: c09ff0ef jal ra,800000d8 +800004d4: 810007b7 lui a5,0x81000 +800004d8: 1e878793 addi a5,a5,488 # 810001e8 +800004dc: 0087a783 lw a5,8(a5) +800004e0: 00078513 mv a0,a5 +800004e4: c31ff0ef jal ra,80000114 +800004e8: 810007b7 lui a5,0x81000 +800004ec: 09078513 addi a0,a5,144 # 81000090 +800004f0: be9ff0ef jal ra,800000d8 +800004f4: 810007b7 lui a5,0x81000 +800004f8: 1e878793 addi a5,a5,488 # 810001e8 +800004fc: 00c7a783 lw a5,12(a5) +80000500: 00078513 mv a0,a5 +80000504: c11ff0ef jal ra,80000114 +80000508: 810007b7 lui a5,0x81000 +8000050c: 09078513 addi a0,a5,144 # 81000090 +80000510: bc9ff0ef jal ra,800000d8 +80000514: 00000013 nop +80000518: 01c12083 lw ra,28(sp) +8000051c: 01812403 lw s0,24(sp) +80000520: 02010113 addi sp,sp,32 +80000524: 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 +80000528 : +80000528: ff010113 addi sp,sp,-16 +8000052c: 00112623 sw ra,12(sp) +80000530: 00812423 sw s0,8(sp) +80000534: 01010413 addi s0,sp,16 +80000538: c6dff0ef jal ra,800001a4 +8000053c: 810007b7 lui a5,0x81000 +80000540: 09478513 addi a0,a5,148 # 81000094 +80000544: b95ff0ef jal ra,800000d8 +80000548: 00400513 li a0,4 +8000054c: b1dff0ef jal ra,80000068 +80000550: d35ff0ef jal ra,80000284 +80000554: 00100513 li a0,1 +80000558: b11ff0ef jal ra,80000068 +8000055c: 810007b7 lui a5,0x81000 +80000560: 0a878513 addi a0,a5,168 # 810000a8 +80000564: b75ff0ef jal ra,800000d8 +80000568: f05ff0ef jal ra,8000046c +8000056c: 00000013 nop +80000570: 00c12083 lw ra,12(sp) +80000574: 00812403 lw s0,8(sp) +80000578: 01010113 addi sp,sp,16 +8000057c: 00008067 ret + +80000580
: +80000580: ff010113 addi sp,sp,-16 +80000584: 00112623 sw ra,12(sp) +80000588: 00812423 sw s0,8(sp) +8000058c: 01010413 addi s0,sp,16 +80000590: 00100513 li a0,1 +80000594: ad5ff0ef jal ra,80000068 +80000598: c0dff0ef jal ra,800001a4 +8000059c: 810007b7 lui a5,0x81000 +800005a0: 0f478513 addi a0,a5,244 # 810000f4 +800005a4: b35ff0ef jal ra,800000d8 +800005a8: 00400513 li a0,4 +800005ac: abdff0ef jal ra,80000068 +800005b0: cd5ff0ef jal ra,80000284 +800005b4: 00100513 li a0,1 +800005b8: ab1ff0ef jal ra,80000068 +800005bc: 810007b7 lui a5,0x81000 +800005c0: 10878513 addi a0,a5,264 # 81000108 +800005c4: b15ff0ef jal ra,800000d8 +800005c8: ea5ff0ef jal ra,8000046c +800005cc: 00000793 li a5,0 +800005d0: 00078513 mv a0,a5 +800005d4: 00c12083 lw ra,12(sp) +800005d8: 00812403 lw s0,8(sp) +800005dc: 01010113 addi sp,sp,16 +800005e0: 00008067 ret Disassembly of section .rodata: @@ -406,7 +454,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 @@ -437,7 +485,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 @@ -451,153 +499,171 @@ Disassembly of section .rodata: 8100008e: 0000 unimp 81000090: 000a c.slli zero,0x2 81000092: 0000 unimp -81000094: 0030 addi a2,sp,8 -81000096: 0000 unimp -81000098: 0031 c.nop 12 -8100009a: 0000 unimp -8100009c: 0032 c.slli zero,0xc -8100009e: 0000 unimp -810000a0: 00000033 add zero,zero,zero -810000a4: 0034 addi a3,sp,8 +81000094: 6574 flw fa3,76(a0) +81000096: 645f7473 csrrci s0,0x645,30 +8100009a: 7669 lui a2,0xffffa +8100009c: 7265 lui tp,0xffff9 +8100009e: 636e6567 0x636e6567 +810000a2: 0a65 addi s4,s4,25 +810000a4: 0000 unimp 810000a6: 0000 unimp -810000a8: 0035 c.nop 13 -810000aa: 0000 unimp -810000ac: 0036 c.slli zero,0xd -810000ae: 0000 unimp -810000b0: 00000037 lui zero,0x0 -810000b4: 0038 addi a4,sp,8 +810000a8: 6574 flw fa3,76(a0) +810000aa: 735f7473 csrrci s0,0x735,30 +810000ae: 6170 flw fa2,68(a0) +810000b0: 000a6e77 0xa6e77 +810000b4: 0030 addi a2,sp,8 810000b6: 0000 unimp -810000b8: 0039 c.nop 14 +810000b8: 0031 c.nop 12 810000ba: 0000 unimp -810000bc: 0061 c.nop 24 +810000bc: 0032 c.slli zero,0xc 810000be: 0000 unimp -810000c0: 0062 c.slli zero,0x18 -810000c2: 0000 unimp -810000c4: 00000063 beqz zero,810000c4 -810000c8: 0064 addi s1,sp,12 +810000c0: 00000033 add zero,zero,zero +810000c4: 0034 addi a3,sp,8 +810000c6: 0000 unimp +810000c8: 0035 c.nop 13 810000ca: 0000 unimp -810000cc: 0065 c.nop 25 +810000cc: 0036 c.slli zero,0xd 810000ce: 0000 unimp -810000d0: 0066 c.slli zero,0x19 -810000d2: 0000 unimp -810000d4: 6574 flw fa3,76(a0) -810000d6: 645f7473 csrrci s0,0x645,30 -810000da: 7669 lui a2,0xffffa -810000dc: 7265 lui tp,0xffff9 -810000de: 636e6567 0x636e6567 -810000e2: 0a65 addi s4,s4,25 +810000d0: 00000037 lui zero,0x0 +810000d4: 0038 addi a4,sp,8 +810000d6: 0000 unimp +810000d8: 0039 c.nop 14 +810000da: 0000 unimp +810000dc: 0061 c.nop 24 +810000de: 0000 unimp +810000e0: 0062 c.slli zero,0x18 +810000e2: 0000 unimp +810000e4: 00000063 beqz zero,810000e4 +810000e8: 0064 addi s1,sp,12 +810000ea: 0000 unimp +810000ec: 0065 c.nop 25 +810000ee: 0000 unimp +810000f0: 0066 c.slli zero,0x19 +810000f2: 0000 unimp +810000f4: 6574 flw fa3,76(a0) +810000f6: 645f7473 csrrci s0,0x645,30 +810000fa: 7669 lui a2,0xffffa +810000fc: 7265 lui tp,0xffff9 +810000fe: 636e6567 0x636e6567 +81000102: 0a65 addi s4,s4,25 +81000104: 0000 unimp +81000106: 0000 unimp +81000108: 6574 flw fa3,76(a0) +8100010a: 775f7473 csrrci s0,0x775,30 +8100010e: 77617073 csrci 0x776,2 +81000112: 0a6e slli s4,s4,0x1b ... Disassembly of section .data: -810000e8 : -810000e8: 0000 unimp -810000ea: 8100 0x8100 -810000ec: 0004 0x4 -810000ee: 8100 0x8100 -810000f0: 0008 0x8 -810000f2: 8100 0x8100 -810000f4: 000c 0xc -810000f6: 8100 0x8100 -810000f8: 0010 0x10 -810000fa: 8100 0x8100 -810000fc: 0014 0x14 -810000fe: 8100 0x8100 -81000100: 0018 0x18 -81000102: 8100 0x8100 -81000104: 001c 0x1c -81000106: 8100 0x8100 -81000108: 0020 addi s0,sp,8 -8100010a: 8100 0x8100 -8100010c: 0024 addi s1,sp,8 -8100010e: 8100 0x8100 -81000110: 0028 addi a0,sp,8 -81000112: 8100 0x8100 -81000114: 002c addi a1,sp,8 -81000116: 8100 0x8100 -81000118: 0030 addi a2,sp,8 +81000118 : +81000118: 0000 unimp 8100011a: 8100 0x8100 -8100011c: 0034 addi a3,sp,8 +8100011c: 0004 0x4 8100011e: 8100 0x8100 -81000120: 0038 addi a4,sp,8 +81000120: 0008 0x8 81000122: 8100 0x8100 -81000124: 003c addi a5,sp,8 +81000124: 000c 0xc 81000126: 8100 0x8100 - -81000128 : -81000128: 0044 addi s1,sp,4 +81000128: 0010 0x10 8100012a: 8100 0x8100 -8100012c: 0048 addi a0,sp,4 +8100012c: 0014 0x14 8100012e: 8100 0x8100 -81000130: 004c addi a1,sp,4 +81000130: 0018 0x18 81000132: 8100 0x8100 -81000134: 0050 addi a2,sp,4 +81000134: 001c 0x1c 81000136: 8100 0x8100 -81000138: 0054 addi a3,sp,4 +81000138: 0020 addi s0,sp,8 8100013a: 8100 0x8100 -8100013c: 0058 addi a4,sp,4 +8100013c: 0024 addi s1,sp,8 8100013e: 8100 0x8100 -81000140: 005c addi a5,sp,4 +81000140: 0028 addi a0,sp,8 81000142: 8100 0x8100 -81000144: 0060 addi s0,sp,12 +81000144: 002c addi a1,sp,8 81000146: 8100 0x8100 -81000148: 0064 addi s1,sp,12 +81000148: 0030 addi a2,sp,8 8100014a: 8100 0x8100 -8100014c: 0068 addi a0,sp,12 +8100014c: 0034 addi a3,sp,8 8100014e: 8100 0x8100 -81000150: 006c addi a1,sp,12 +81000150: 0038 addi a4,sp,8 81000152: 8100 0x8100 -81000154: 0070 addi a2,sp,12 +81000154: 003c addi a5,sp,8 81000156: 8100 0x8100 -81000158: 0074 addi a3,sp,12 -8100015a: 8100 0x8100 -8100015c: 0078 addi a4,sp,12 -8100015e: 8100 0x8100 -81000160: 007c addi a5,sp,12 -81000162: 8100 0x8100 -81000164: 0080 addi s0,sp,64 -81000166: 8100 0x8100 -81000168 : -81000168: 0094 addi a3,sp,64 +81000158 : +81000158: 0044 addi s1,sp,4 +8100015a: 8100 0x8100 +8100015c: 0048 addi a0,sp,4 +8100015e: 8100 0x8100 +81000160: 004c addi a1,sp,4 +81000162: 8100 0x8100 +81000164: 0050 addi a2,sp,4 +81000166: 8100 0x8100 +81000168: 0054 addi a3,sp,4 8100016a: 8100 0x8100 -8100016c: 0098 addi a4,sp,64 +8100016c: 0058 addi a4,sp,4 8100016e: 8100 0x8100 -81000170: 009c addi a5,sp,64 +81000170: 005c addi a5,sp,4 81000172: 8100 0x8100 -81000174: 00a0 addi s0,sp,72 +81000174: 0060 addi s0,sp,12 81000176: 8100 0x8100 -81000178: 00a4 addi s1,sp,72 +81000178: 0064 addi s1,sp,12 8100017a: 8100 0x8100 -8100017c: 00a8 addi a0,sp,72 +8100017c: 0068 addi a0,sp,12 8100017e: 8100 0x8100 -81000180: 00ac addi a1,sp,72 +81000180: 006c addi a1,sp,12 81000182: 8100 0x8100 -81000184: 00b0 addi a2,sp,72 +81000184: 0070 addi a2,sp,12 81000186: 8100 0x8100 -81000188: 00b4 addi a3,sp,72 +81000188: 0074 addi a3,sp,12 8100018a: 8100 0x8100 -8100018c: 00b8 addi a4,sp,72 +8100018c: 0078 addi a4,sp,12 8100018e: 8100 0x8100 -81000190: 00bc addi a5,sp,72 +81000190: 007c addi a5,sp,12 81000192: 8100 0x8100 -81000194: 00c0 addi s0,sp,68 +81000194: 0080 addi s0,sp,64 81000196: 8100 0x8100 -81000198: 00c4 addi s1,sp,68 + +81000198 : +81000198: 00b4 addi a3,sp,72 8100019a: 8100 0x8100 -8100019c: 00c8 addi a0,sp,68 +8100019c: 00b8 addi a4,sp,72 8100019e: 8100 0x8100 -810001a0: 00cc addi a1,sp,68 +810001a0: 00bc addi a5,sp,72 810001a2: 8100 0x8100 -810001a4: 00d0 addi a2,sp,68 +810001a4: 00c0 addi s0,sp,68 810001a6: 8100 0x8100 +810001a8: 00c4 addi s1,sp,68 +810001aa: 8100 0x8100 +810001ac: 00c8 addi a0,sp,68 +810001ae: 8100 0x8100 +810001b0: 00cc addi a1,sp,68 +810001b2: 8100 0x8100 +810001b4: 00d0 addi a2,sp,68 +810001b6: 8100 0x8100 +810001b8: 00d4 addi a3,sp,68 +810001ba: 8100 0x8100 +810001bc: 00d8 addi a4,sp,68 +810001be: 8100 0x8100 +810001c0: 00dc addi a5,sp,68 +810001c2: 8100 0x8100 +810001c4: 00e0 addi s0,sp,76 +810001c6: 8100 0x8100 +810001c8: 00e4 addi s1,sp,76 +810001ca: 8100 0x8100 +810001cc: 00e8 addi a0,sp,76 +810001ce: 8100 0x8100 +810001d0: 00ec addi a1,sp,76 +810001d2: 8100 0x8100 +810001d4: 00f0 addi a2,sp,76 +810001d6: 8100 0x8100 Disassembly of section .bss: -810001a8 : +810001d8 : ... -810001b8 : +810001e8 : ... Disassembly of section .comment: diff --git a/runtime/vortex_runtime.elf b/runtime/vortex_runtime.elf index f451ec33e6c3ccee029a7400d60430d2b8ccaf28..5c02e7685835143d24c1f69696275cf95a05c7a9 100644 GIT binary patch delta 1370 zcmZuxZD>VTR{{VLhNd>(OI<#>jpw@ zOiK#;Ve1j;4`GE>HgJxW3Pq_*hZ7Wpf@K6LRIpBwN+Zk}*hqcedvDUq*c;Ay&vTyh znR}D5PZvKMj<^Q&k=9nvf`@2fWLJx)D2U1vsmrTfH}-Kr$#GO^=TRjod|Xz}Y<#v< z`ff3%k5}sAw<=R!%H{Q26+W*M7Yf12!rv4ddqS#5A;di~`5y{Fp7ynfAQydM=(4E; zP3?Q_xx4KC$3b~L9fi6lXlmDx8CB{P|W1VtNep}V!YCI+Ut@%$l{!BG`@Z$%h9@k(&d5Ih{FcS zdpV~2C?EuU|K^}@mg0n=qB4iHo5V8Py3R#4d_+oUoFCZv~(Wwp} zd5SDrcW1Z4Lare_M1oFRhN<23V)<8CsAX7gLBGK$JMixoVQLwF50>n-4Yxoi)UKT> zzkh|#5(ciFYQX4906hm=1XghS$W4FZe(Jz4fDhUOHKFA{!0S9@?8hzfoA{j#Irz7L zduli<1UGE&>gtoO|)5j-|f7SW+aqiGI*7xju?~Ba|{#I*OQoWhJRBt-fl}^ex zGR=3i_Z$1V)7_apna-}GysW(x3;ePz?rIhs(nIwDJfc99cj&G1pDtJAlpYsF9?|3L s7o(WRMdZbN^2g+c$fvssV!fI$a87ANclog%3w)>(ZLyrD#^C084U&3pzW@LL delta 1111 zcmZuwUr1A76hBwpM&+MvS93XKn{&Gby#y5tW=a@SvXU_HB@Gs(FVUZu=*6o`=0nid zv40RaXwZTJMN1zf5G*7DBL-PS8WD|>HbJTfS^d7dtB&xyoO8b4`JHpVbH01;((%}_ zh_hhQ6RoW^_zgt5quHsdTU8-W6)dB6(bceO!^BvNGej?PrK0t~OIC-aYRvST zWYdV&4XS0n1=k(>)JVnSUXRZJD@*mdbQlokqV=C;aNJ< z^-=`N1A&rsW??c{pzA62Z}lr4AA4P~cWX3~xal0?Cg)+k=PYBJORX6q>bncM4~aqI zkObs0WQ1?I+&u4Uwxoavs}PS^3EoqCq_-bC#H+$XB+&r$WF8*W{5e%b%YP%-ib{>J z5-Q!vQJP-kcS;-l@Fsls2H#5~2*5YkXNI*<5j}#P%){frr}c)cIPy6#no?m%;91!2 zJUj=i=HYk1h=D5?{~7kmI_{O|I~>&#sm*%83aoQIK%y*g5_pZ@h9Bla9={zJOBG5q zR0F)bh}0<^?*hi#S?BiyCksjK5WEiwO>m@;(5@%60G~lai#k35jB8f`wF5eVoA_c~ zqp|(cxz=EiC+ZFw51qZ--qyoDPXiBn4)C03S@QF=SCPK5MUi>cTWn0>wWXX~s?=@~ y7oKooPK|6;%u<3+DN4x{d~F3pCLCqqsA4x1*AboPQN?Y$>LIEZJ?INvXzL#?JR`jT diff --git a/runtime/vortex_runtime.hex b/runtime/vortex_runtime.hex index 0f722c55..91d7a927 100644 --- a/runtime/vortex_runtime.hex +++ b/runtime/vortex_runtime.hex @@ -1,6 +1,6 @@ :0200000480007A :100000009705000093850502130540006B10B500AD -:10001000EF000001EF00404D130500006B000500EC +:10001000EF000001EF00C056130500006B00050063 :10002000130540006B000500F32610029396F600BE :10003000732600029315A6001316260037F1FF6FF2 :100040003301B1403301D1403301C100F326100226 @@ -8,81 +8,92 @@ :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 +:100090007325000267800000130540006B00050017 +:1000A000F32610029396F600732600029315A6001D +:1000B0001316260037F1FF6F3301B1403301D140F1 +:1000C0003301C100F3261002638606001305000009 +:1000D0006B00050067800000130141FF2320110021 +:1000E0002322B1008345050063880500EF00C001AD +:1000F000130515006FF01FFF8320010083254100C9 +:100100001301C10067800000B702010023A0B20004 +:1001100067800000130101FE232E1100232C8100B3 +:10012000130401022326A4FEB70700810327C4FE9F +:100130001317270093878711B307F70083A70700DA +:1001400013850700EFF05FF9130000008320C10161 +:10015000032481011301010267800000130101FEE5 +:10016000232E1100232C8100130401022326A4FE58 +:100170002324B4FE0325C4FEEFF01FF6032584FEFE +:10018000EFF05FF9B707008113850704EFF0DFF4A4 +:10019000130000008320C101032481011301010227 +:1001A00067800000130101FE232E1100232C810023 +:1001B00013040102B707008113854708EFF0DFF150 +:1001C00013054000EFF05FEAEFF09FEC2326A4FE5A +:1001D0000327C4FEB70700818326C4FE939626003A +:1001E0009387871DB387F60023A0E700130510004F +:1001F000EFF09FE7B707008183A7871D13850700EE +:10020000EFF05FF1B707008113850709EFF0DFEC2E +:10021000B70700819387871D83A7470013850700D1 +:10022000EFF05FEFB707008113850709EFF0DFEA12 +:10023000B70700819387871D83A787001385070071 +:10024000EFF05FEDB707008113850709EFF0DFE8F6 +:10025000B70700819387871D83A7C7001385070011 +:10026000EFF05FEBB707008113850709EFF0DFE6DA +:10027000130000008320C101032481011301010246 +:1002800067800000130101FE232E1100232C810042 +:1002900013040102EFF0DFDF2326A4FE8327C4FE50 +:1002A00093B72700A305F4FE8347B4FE1385070028 +:1002B000EFF09FDC8347B4FE638407068327C4FE08 +:1002C00093B717002305F4FE8347A4FE13850700A8 +:1002D000EFF09FDA8347A4FE63820702B70700812D +:1002E0000327C4FE131727009387871DB307F70062 +:1002F0001307A00023A0E7006F000002B7070081EA +:100300000327C4FE131727009387871DB307F70041 +:100310001307B00023A0E700EFF09FD66F00400660 +:100320008327C4FE93B73700A304F4FE834794FEEB +:1003300013850700EFF05FD4834794FE63820702C2 +:10034000B70700810327C4FE131727009387871D73 +:10035000B307F7001307C00023A0E7006F000002F7 +:10036000B70700810327C4FE131727009387871D53 +:10037000B307F7001307D00023A0E700EFF05FD02A +:10038000EFF01FD0B707008183A7871D13850700F3 +:10039000EFF05FD8B707008113850709EFF0DFD3CF +:1003A000B70700819387871D83A747001385070040 +:1003B000EFF05FD6B707008113850709EFF0DFD1B3 +:1003C000B70700819387871D83A7870013850700E0 +:1003D000EFF05FD4B707008113850709EFF0DFCF97 +:1003E000B70700819387871D83A7C7001385070080 +:1003F000EFF05FD2B707008113850709EFF0DFCD7B +:10040000130000008320C1010324810113010102B4 +:1004100067800000130101FE232E1100232C8100B0 +:1004200013040102EFF05FC62326A4FEB707008184 +:100430000327C4FE131727009387871EB307F7000F +:100440000327C4FE23A0E7008327C4FE63860700BA +:1004500013050000EFF05FC1130000008320C1010D +:10046000032481011301010267800000130101FED2 +:10047000232E1100232C810013040102B7070080F2 +:10048000938747412326F4FE8325C4FE13054000CD +:10049000EFF01FBDEFF01FF8B707008183A7871E9D +:1004A00013850700EFF01FC7B70700811385070901 +:1004B000EFF09FC2B70700819387871E83A747008D +:1004C00013850700EFF01FC5B707008113850709E3 +:1004D000EFF09FC0B70700819387871E83A787002F +:1004E00013850700EFF01FC3B707008113850709C5 +:1004F000EFF09FBEB70700819387871E83A7C700D1 +:1005000013850700EFF01FC1B707008113850709A6 +:10051000EFF09FBC130000008320C1010324810180 +:100520001301010267800000130101FF232611005F +:100530002324810013040101EFF0DFC6B707008117 +:1005400013854709EFF05FB913054000EFF0DFB105 +:10055000EFF05FD313051000EFF01FB1B707008174 +:100560001385870AEFF05FB7EFF05FF0130000002C +:100570008320C10003248100130101016780000072 +:10058000130101FF2326110023248100130401011C +:1005900013051000EFF05FADEFF0DFC0B70700818B +:1005A0001385470FEFF05FB313054000EFF0DFABAB +:1005B000EFF05FCD13051000EFF01FABB707008120 +:1005C00013858710EFF05FB1EFF05FEA930700004B +:1005D000138507008320C10003248100130101015A +:0405E0006780000030 :02000004810079 :10000000300000003100000032000000330000002A :10001000340000003500000036000000370000000A @@ -93,23 +104,26 @@ :100060003700000038000000390000006100000087 :1000700062000000630000006400000065000000F2 :1000800066000000746573745F746D630A0000009D -:100090000A000000300000003100000032000000C3 -:1000A000330000003400000035000000360000007E -:1000B0003700000038000000390000006100000037 -:1000C00062000000630000006400000065000000A2 -:1000D00066000000746573745F64697665726765B5 -:0500E0006E63650A00DB -:1000E8000000008104000081080000810C000081EC -:1000F8001000008114000081180000811C0000819C -:100108002000008124000081280000812C0000814B -:100118003000008134000081380000813C000081FB -:1001280044000081480000814C000081500000819B -:1001380054000081580000815C000081600000814B -:1001480064000081680000816C00008170000081FB -:1001580074000081780000817C00008180000081AB -:1001680094000081980000819C000081A00000811B -:10017800A4000081A8000081AC000081B0000081CB -:10018800B4000081B8000081BC000081C00000817B -:10019800C4000081C8000081CC000081D00000812B +:100090000A000000746573745F6469766572676551 +:1000A0006E63650A00000000746573745F737061AD +:1000B000776E0A00300000003100000032000000BE +:1000C000330000003400000035000000360000005E +:1000D0003700000038000000390000006100000017 +:1000E0006200000063000000640000006500000082 +:1000F00066000000746573745F6469766572676595 +:100100006E63650A00000000746573745F77737036 +:0501100061776E0A009A +:100118000000008104000081080000810C000081BB +:100128001000008114000081180000811C0000816B +:100138002000008124000081280000812C0000811B +:100148003000008134000081380000813C000081CB +:1001580044000081480000814C000081500000816B +:1001680054000081580000815C000081600000811B +:1001780064000081680000816C00008170000081CB +:1001880074000081780000817C000081800000817B +:10019800B4000081B8000081BC000081C00000816B +:1001A800C4000081C8000081CC000081D00000811B +:1001B800D4000081D8000081DC000081E0000081CB +:1001C800E4000081E8000081EC000081F00000817B :040000058000000077 :00000001FF diff --git a/runtime/vx_main.c b/runtime/vx_main.c index 6b95032a..317679c2 100644 --- a/runtime/vx_main.c +++ b/runtime/vx_main.c @@ -5,9 +5,21 @@ int main() { + // Main is called with all threads active of warp 0 vx_tmc(1); - // TMC test + /* + NOTE: * when test_wspawn is called from instrinsic_tests, RA 80000458 is stored at address 6fffefbc, + but when read back again it reads zeros even though no other write request is made to that + address (when only test_wsapwn is called by itself). + + * When test_wsapwn is called by itself from main new lines are not printed.... + + * when test_wspawn is called with other tests from main it works fine... + */ + // intrinsics_tests(); + + test_tmc(); // Control Divergence Test @@ -17,10 +29,9 @@ int main() vx_tmc(1); - // // Test wspawn - // vx_print_str("test_spawn\n"); - // test_wsapwn(); - + // Test wspawn + vx_print_str("test_wspawn\n"); + test_wsapwn(); return 0; } \ No newline at end of file