From b4ebc803f30f77b543e2e484244f5563fd879e8d Mon Sep 17 00:00:00 2001 From: proshan3 Date: Thu, 21 Nov 2019 20:18:29 -0500 Subject: [PATCH] Added vector mask instructions --- runtime/mains/vector_test/vx_vec.s | 13 +- runtime/mains/vector_test/vx_vector_main.dump | 1793 +++++++++-------- runtime/mains/vector_test/vx_vector_main.elf | Bin 36192 -> 36192 bytes runtime/mains/vector_test/vx_vector_main.hex | 418 ++-- simX/instruction.cpp | 430 +++- 5 files changed, 1543 insertions(+), 1111 deletions(-) diff --git a/runtime/mains/vector_test/vx_vec.s b/runtime/mains/vector_test/vx_vec.s index 9979da95..f624523d 100644 --- a/runtime/mains/vector_test/vx_vec.s +++ b/runtime/mains/vector_test/vx_vec.s @@ -9,7 +9,14 @@ vx_vec_test: li a0, 10 sw a0, 0(a1) sw a0, 32(a1) - vlw.v v0, (a1) - vadd.vv v0, v0, v0 - vsw.v v0, (a1) + vlw.v v1, (a1) + li a2, 1 + sw a2, 0(a3) + li a2, 0 + sw a2, 32(a3) + vlw.v v0, (a3) + vmor.mm v0, v0, v3 + vadd.vv v1, v1, v1, v0.t + vsw.v v1, (a1) + vlw.v v5, (a1) ret diff --git a/runtime/mains/vector_test/vx_vector_main.dump b/runtime/mains/vector_test/vx_vector_main.dump index 31480552..b0f25f8a 100644 --- a/runtime/mains/vector_test/vx_vector_main.dump +++ b/runtime/mains/vector_test/vx_vector_main.dump @@ -16,15 +16,15 @@ Disassembly of section .init: 80000020: c3c18613 addi a2,gp,-964 # 80001444 <__BSS_END__> 80000024: 40a60633 sub a2,a2,a0 80000028: 00000593 li a1,0 -8000002c: 1d9000ef jal ra,80000a04 +8000002c: 1f5000ef jal ra,80000a20 80000030: 00001517 auipc a0,0x1 -80000034: 8d850513 addi a0,a0,-1832 # 80000908 <__libc_fini_array> -80000038: 08d000ef jal ra,800008c4 -8000003c: 12d000ef jal ra,80000968 <__libc_init_array> +80000034: 8f450513 addi a0,a0,-1804 # 80000924 <__libc_fini_array> +80000038: 0a9000ef jal ra,800008e0 +8000003c: 149000ef jal ra,80000984 <__libc_init_array> 80000040: 00400513 li a0,4 80000044: 0005006b 0x5006b -80000048: 041000ef jal ra,80000888
-8000004c: 08d0006f j 800008d8 +80000048: 05d000ef jal ra,800008a4
+8000004c: 0a90006f j 800008f4 Disassembly of section .text: @@ -33,8 +33,8 @@ Disassembly of section .text: 80000054: 00078793 mv a5,a5 80000058: 00078863 beqz a5,80000068 8000005c: 80001537 lui a0,0x80001 -80000060: 90850513 addi a0,a0,-1784 # 80000908 <__global_pointer$+0xfffff100> -80000064: 0610006f j 800008c4 +80000060: 92450513 addi a0,a0,-1756 # 80000924 <__global_pointer$+0xfffff11c> +80000064: 07d0006f j 800008e0 80000068: 00008067 ret 8000006c : @@ -65,944 +65,951 @@ Disassembly of section .text: 800000bc: 00a00513 li a0,10 800000c0: 00a5a023 sw a0,0(a1) 800000c4: 02a5a023 sw a0,32(a1) -800000c8: 1205e007 vlw.v v0,(a1) -800000cc: 02000057 vadd.vv v0,v0,v0 -800000d0: 0205e027 vsw.v v0,(a1) -800000d4: 00008067 ret +800000c8: 1205e087 vlw.v v1,(a1) +800000cc: 00100613 li a2,1 +800000d0: 00c6a023 sw a2,0(a3) +800000d4: 00000613 li a2,0 +800000d8: 02c6a023 sw a2,32(a3) +800000dc: 1206e007 vlw.v v0,(a3) +800000e0: 6a01a057 vmor.mm v0,v0,v3 +800000e4: 001080d7 vadd.vv v1,v1,v1,v0.t +800000e8: 0205e0a7 vsw.v v1,(a1) +800000ec: 1205e287 vlw.v v5,(a1) +800000f0: 00008067 ret -800000d8 : -800000d8: fd010113 addi sp,sp,-48 # 6fffefd0 <_start-0x10001030> -800000dc: 02812623 sw s0,44(sp) -800000e0: 03010413 addi s0,sp,48 -800000e4: fca42e23 sw a0,-36(s0) -800000e8: fcb42c23 sw a1,-40(s0) -800000ec: fcc42a23 sw a2,-44(s0) -800000f0: fdc42783 lw a5,-36(s0) -800000f4: 0007a783 lw a5,0(a5) # 0 <_start-0x80000000> -800000f8: fef42623 sw a5,-20(s0) -800000fc: fd440793 addi a5,s0,-44 -80000100: fef42223 sw a5,-28(s0) -80000104: fe442783 lw a5,-28(s0) -80000108: 0007c703 lbu a4,0(a5) -8000010c: fec42783 lw a5,-20(s0) -80000110: 00e78023 sb a4,0(a5) -80000114: fec42783 lw a5,-20(s0) -80000118: 00178793 addi a5,a5,1 -8000011c: fe442703 lw a4,-28(s0) -80000120: 00174703 lbu a4,1(a4) -80000124: 00e78023 sb a4,0(a5) +800000f4 : +800000f4: fd010113 addi sp,sp,-48 # 6fffefd0 <_start-0x10001030> +800000f8: 02812623 sw s0,44(sp) +800000fc: 03010413 addi s0,sp,48 +80000100: fca42e23 sw a0,-36(s0) +80000104: fcb42c23 sw a1,-40(s0) +80000108: fcc42a23 sw a2,-44(s0) +8000010c: fdc42783 lw a5,-36(s0) +80000110: 0007a783 lw a5,0(a5) # 0 <_start-0x80000000> +80000114: fef42623 sw a5,-20(s0) +80000118: fd440793 addi a5,s0,-44 +8000011c: fef42223 sw a5,-28(s0) +80000120: fe442783 lw a5,-28(s0) +80000124: 0007c703 lbu a4,0(a5) 80000128: fec42783 lw a5,-20(s0) -8000012c: 00278793 addi a5,a5,2 -80000130: fe442703 lw a4,-28(s0) -80000134: 00274703 lbu a4,2(a4) -80000138: 00e78023 sb a4,0(a5) -8000013c: fec42783 lw a5,-20(s0) -80000140: 00378793 addi a5,a5,3 -80000144: fe442703 lw a4,-28(s0) -80000148: 00374703 lbu a4,3(a4) -8000014c: 00e78023 sb a4,0(a5) -80000150: fec42783 lw a5,-20(s0) -80000154: 00478793 addi a5,a5,4 -80000158: fef42623 sw a5,-20(s0) -8000015c: fe042423 sw zero,-24(s0) -80000160: 0340006f j 80000194 -80000164: fe842783 lw a5,-24(s0) -80000168: fd842703 lw a4,-40(s0) -8000016c: 00f707b3 add a5,a4,a5 -80000170: 0007c703 lbu a4,0(a5) -80000174: fec42783 lw a5,-20(s0) -80000178: 00e78023 sb a4,0(a5) -8000017c: fec42783 lw a5,-20(s0) -80000180: 00178793 addi a5,a5,1 -80000184: fef42623 sw a5,-20(s0) -80000188: fe842783 lw a5,-24(s0) -8000018c: 00178793 addi a5,a5,1 -80000190: fef42423 sw a5,-24(s0) -80000194: fd442783 lw a5,-44(s0) -80000198: fe842703 lw a4,-24(s0) -8000019c: fcf744e3 blt a4,a5,80000164 -800001a0: fec42783 lw a5,-20(s0) -800001a4: fef42023 sw a5,-32(s0) -800001a8: fe042783 lw a5,-32(s0) -800001ac: 0037f793 andi a5,a5,3 -800001b0: fe042703 lw a4,-32(s0) -800001b4: 00f707b3 add a5,a4,a5 -800001b8: fef42023 sw a5,-32(s0) -800001bc: fe042783 lw a5,-32(s0) -800001c0: fef42623 sw a5,-20(s0) -800001c4: fdc42783 lw a5,-36(s0) -800001c8: fec42703 lw a4,-20(s0) -800001cc: 00e7a023 sw a4,0(a5) -800001d0: 00000013 nop -800001d4: 02c12403 lw s0,44(sp) -800001d8: 03010113 addi sp,sp,48 -800001dc: 00008067 ret +8000012c: 00e78023 sb a4,0(a5) +80000130: fec42783 lw a5,-20(s0) +80000134: 00178793 addi a5,a5,1 +80000138: fe442703 lw a4,-28(s0) +8000013c: 00174703 lbu a4,1(a4) +80000140: 00e78023 sb a4,0(a5) +80000144: fec42783 lw a5,-20(s0) +80000148: 00278793 addi a5,a5,2 +8000014c: fe442703 lw a4,-28(s0) +80000150: 00274703 lbu a4,2(a4) +80000154: 00e78023 sb a4,0(a5) +80000158: fec42783 lw a5,-20(s0) +8000015c: 00378793 addi a5,a5,3 +80000160: fe442703 lw a4,-28(s0) +80000164: 00374703 lbu a4,3(a4) +80000168: 00e78023 sb a4,0(a5) +8000016c: fec42783 lw a5,-20(s0) +80000170: 00478793 addi a5,a5,4 +80000174: fef42623 sw a5,-20(s0) +80000178: fe042423 sw zero,-24(s0) +8000017c: 0340006f j 800001b0 +80000180: fe842783 lw a5,-24(s0) +80000184: fd842703 lw a4,-40(s0) +80000188: 00f707b3 add a5,a4,a5 +8000018c: 0007c703 lbu a4,0(a5) +80000190: fec42783 lw a5,-20(s0) +80000194: 00e78023 sb a4,0(a5) +80000198: fec42783 lw a5,-20(s0) +8000019c: 00178793 addi a5,a5,1 +800001a0: fef42623 sw a5,-20(s0) +800001a4: fe842783 lw a5,-24(s0) +800001a8: 00178793 addi a5,a5,1 +800001ac: fef42423 sw a5,-24(s0) +800001b0: fd442783 lw a5,-44(s0) +800001b4: fe842703 lw a4,-24(s0) +800001b8: fcf744e3 blt a4,a5,80000180 +800001bc: fec42783 lw a5,-20(s0) +800001c0: fef42023 sw a5,-32(s0) +800001c4: fe042783 lw a5,-32(s0) +800001c8: 0037f793 andi a5,a5,3 +800001cc: fe042703 lw a4,-32(s0) +800001d0: 00f707b3 add a5,a4,a5 +800001d4: fef42023 sw a5,-32(s0) +800001d8: fe042783 lw a5,-32(s0) +800001dc: fef42623 sw a5,-20(s0) +800001e0: fdc42783 lw a5,-36(s0) +800001e4: fec42703 lw a4,-20(s0) +800001e8: 00e7a023 sw a4,0(a5) +800001ec: 00000013 nop +800001f0: 02c12403 lw s0,44(sp) +800001f4: 03010113 addi sp,sp,48 +800001f8: 00008067 ret -800001e0 : -800001e0: fc010113 addi sp,sp,-64 -800001e4: 02812e23 sw s0,60(sp) -800001e8: 04010413 addi s0,sp,64 -800001ec: fca42623 sw a0,-52(s0) -800001f0: fcb42423 sw a1,-56(s0) -800001f4: fcc42783 lw a5,-52(s0) -800001f8: 0007a783 lw a5,0(a5) -800001fc: fef42623 sw a5,-20(s0) -80000200: fdc40793 addi a5,s0,-36 -80000204: fef42223 sw a5,-28(s0) -80000208: fec42783 lw a5,-20(s0) -8000020c: 0007c703 lbu a4,0(a5) -80000210: fe442783 lw a5,-28(s0) -80000214: 00e78023 sb a4,0(a5) -80000218: fe442783 lw a5,-28(s0) -8000021c: 00178793 addi a5,a5,1 -80000220: fec42703 lw a4,-20(s0) -80000224: 00174703 lbu a4,1(a4) -80000228: 00e78023 sb a4,0(a5) +800001fc : +800001fc: fc010113 addi sp,sp,-64 +80000200: 02812e23 sw s0,60(sp) +80000204: 04010413 addi s0,sp,64 +80000208: fca42623 sw a0,-52(s0) +8000020c: fcb42423 sw a1,-56(s0) +80000210: fcc42783 lw a5,-52(s0) +80000214: 0007a783 lw a5,0(a5) +80000218: fef42623 sw a5,-20(s0) +8000021c: fdc40793 addi a5,s0,-36 +80000220: fef42223 sw a5,-28(s0) +80000224: fec42783 lw a5,-20(s0) +80000228: 0007c703 lbu a4,0(a5) 8000022c: fe442783 lw a5,-28(s0) -80000230: 00278793 addi a5,a5,2 -80000234: fec42703 lw a4,-20(s0) -80000238: 00274703 lbu a4,2(a4) -8000023c: 00e78023 sb a4,0(a5) -80000240: fe442783 lw a5,-28(s0) -80000244: 00378793 addi a5,a5,3 -80000248: fec42703 lw a4,-20(s0) -8000024c: 00374703 lbu a4,3(a4) -80000250: 00e78023 sb a4,0(a5) -80000254: fec42783 lw a5,-20(s0) -80000258: 00478793 addi a5,a5,4 -8000025c: fef42623 sw a5,-20(s0) -80000260: fe042423 sw zero,-24(s0) -80000264: 0340006f j 80000298 -80000268: fe842783 lw a5,-24(s0) -8000026c: fc842703 lw a4,-56(s0) -80000270: 00f707b3 add a5,a4,a5 -80000274: fec42703 lw a4,-20(s0) -80000278: 00074703 lbu a4,0(a4) -8000027c: 00e78023 sb a4,0(a5) -80000280: fec42783 lw a5,-20(s0) -80000284: 00178793 addi a5,a5,1 -80000288: fef42623 sw a5,-20(s0) -8000028c: fe842783 lw a5,-24(s0) -80000290: 00178793 addi a5,a5,1 -80000294: fef42423 sw a5,-24(s0) -80000298: fdc42783 lw a5,-36(s0) -8000029c: fe842703 lw a4,-24(s0) -800002a0: fcf744e3 blt a4,a5,80000268 -800002a4: fec42783 lw a5,-20(s0) -800002a8: fef42023 sw a5,-32(s0) -800002ac: fe042783 lw a5,-32(s0) -800002b0: 0037f793 andi a5,a5,3 -800002b4: fe042703 lw a4,-32(s0) -800002b8: 00f707b3 add a5,a4,a5 -800002bc: fef42023 sw a5,-32(s0) -800002c0: fe042783 lw a5,-32(s0) -800002c4: fef42623 sw a5,-20(s0) -800002c8: fcc42783 lw a5,-52(s0) -800002cc: fec42703 lw a4,-20(s0) -800002d0: 00e7a023 sw a4,0(a5) -800002d4: 00000013 nop -800002d8: 03c12403 lw s0,60(sp) -800002dc: 04010113 addi sp,sp,64 -800002e0: 00008067 ret - -800002e4 <_close>: -800002e4: ff010113 addi sp,sp,-16 -800002e8: 00812623 sw s0,12(sp) -800002ec: 01010413 addi s0,sp,16 +80000230: 00e78023 sb a4,0(a5) +80000234: fe442783 lw a5,-28(s0) +80000238: 00178793 addi a5,a5,1 +8000023c: fec42703 lw a4,-20(s0) +80000240: 00174703 lbu a4,1(a4) +80000244: 00e78023 sb a4,0(a5) +80000248: fe442783 lw a5,-28(s0) +8000024c: 00278793 addi a5,a5,2 +80000250: fec42703 lw a4,-20(s0) +80000254: 00274703 lbu a4,2(a4) +80000258: 00e78023 sb a4,0(a5) +8000025c: fe442783 lw a5,-28(s0) +80000260: 00378793 addi a5,a5,3 +80000264: fec42703 lw a4,-20(s0) +80000268: 00374703 lbu a4,3(a4) +8000026c: 00e78023 sb a4,0(a5) +80000270: fec42783 lw a5,-20(s0) +80000274: 00478793 addi a5,a5,4 +80000278: fef42623 sw a5,-20(s0) +8000027c: fe042423 sw zero,-24(s0) +80000280: 0340006f j 800002b4 +80000284: fe842783 lw a5,-24(s0) +80000288: fc842703 lw a4,-56(s0) +8000028c: 00f707b3 add a5,a4,a5 +80000290: fec42703 lw a4,-20(s0) +80000294: 00074703 lbu a4,0(a4) +80000298: 00e78023 sb a4,0(a5) +8000029c: fec42783 lw a5,-20(s0) +800002a0: 00178793 addi a5,a5,1 +800002a4: fef42623 sw a5,-20(s0) +800002a8: fe842783 lw a5,-24(s0) +800002ac: 00178793 addi a5,a5,1 +800002b0: fef42423 sw a5,-24(s0) +800002b4: fdc42783 lw a5,-36(s0) +800002b8: fe842703 lw a4,-24(s0) +800002bc: fcf744e3 blt a4,a5,80000284 +800002c0: fec42783 lw a5,-20(s0) +800002c4: fef42023 sw a5,-32(s0) +800002c8: fe042783 lw a5,-32(s0) +800002cc: 0037f793 andi a5,a5,3 +800002d0: fe042703 lw a4,-32(s0) +800002d4: 00f707b3 add a5,a4,a5 +800002d8: fef42023 sw a5,-32(s0) +800002dc: fe042783 lw a5,-32(s0) +800002e0: fef42623 sw a5,-20(s0) +800002e4: fcc42783 lw a5,-52(s0) +800002e8: fec42703 lw a4,-20(s0) +800002ec: 00e7a023 sw a4,0(a5) 800002f0: 00000013 nop -800002f4: 00c12403 lw s0,12(sp) -800002f8: 01010113 addi sp,sp,16 +800002f4: 03c12403 lw s0,60(sp) +800002f8: 04010113 addi sp,sp,64 800002fc: 00008067 ret -80000300 <_fstat>: -80000300: fe010113 addi sp,sp,-32 -80000304: 00812e23 sw s0,28(sp) -80000308: 02010413 addi s0,sp,32 -8000030c: fea42623 sw a0,-20(s0) -80000310: feb42423 sw a1,-24(s0) -80000314: fe842783 lw a5,-24(s0) -80000318: 00002737 lui a4,0x2 -8000031c: 00e7a223 sw a4,4(a5) -80000320: 00000793 li a5,0 -80000324: 00078513 mv a0,a5 -80000328: 01c12403 lw s0,28(sp) -8000032c: 02010113 addi sp,sp,32 -80000330: 00008067 ret +80000300 <_close>: +80000300: ff010113 addi sp,sp,-16 +80000304: 00812623 sw s0,12(sp) +80000308: 01010413 addi s0,sp,16 +8000030c: 00000013 nop +80000310: 00c12403 lw s0,12(sp) +80000314: 01010113 addi sp,sp,16 +80000318: 00008067 ret -80000334 <_isatty>: -80000334: fe010113 addi sp,sp,-32 -80000338: 00112e23 sw ra,28(sp) -8000033c: 00812c23 sw s0,24(sp) -80000340: 02010413 addi s0,sp,32 -80000344: fea42623 sw a0,-20(s0) -80000348: 800017b7 lui a5,0x80001 -8000034c: cd078513 addi a0,a5,-816 # 80000cd0 <__global_pointer$+0xfffff4c8> -80000350: 4fc000ef jal ra,8000084c -80000354: 00100793 li a5,1 -80000358: 00078513 mv a0,a5 -8000035c: 01c12083 lw ra,28(sp) -80000360: 01812403 lw s0,24(sp) -80000364: 02010113 addi sp,sp,32 -80000368: 00008067 ret +8000031c <_fstat>: +8000031c: fe010113 addi sp,sp,-32 +80000320: 00812e23 sw s0,28(sp) +80000324: 02010413 addi s0,sp,32 +80000328: fea42623 sw a0,-20(s0) +8000032c: feb42423 sw a1,-24(s0) +80000330: fe842783 lw a5,-24(s0) +80000334: 00002737 lui a4,0x2 +80000338: 00e7a223 sw a4,4(a5) +8000033c: 00000793 li a5,0 +80000340: 00078513 mv a0,a5 +80000344: 01c12403 lw s0,28(sp) +80000348: 02010113 addi sp,sp,32 +8000034c: 00008067 ret -8000036c <_lseek>: -8000036c: fd010113 addi sp,sp,-48 -80000370: 02112623 sw ra,44(sp) -80000374: 02812423 sw s0,40(sp) -80000378: 03010413 addi s0,sp,48 -8000037c: fca42e23 sw a0,-36(s0) -80000380: fcb42c23 sw a1,-40(s0) -80000384: fcc42a23 sw a2,-44(s0) -80000388: 710007b7 lui a5,0x71000 -8000038c: fef42623 sw a5,-20(s0) -80000390: 720007b7 lui a5,0x72000 -80000394: fef42423 sw a5,-24(s0) -80000398: 00300793 li a5,3 -8000039c: fef42223 sw a5,-28(s0) -800003a0: fe440713 addi a4,s0,-28 -800003a4: fec40793 addi a5,s0,-20 -800003a8: 00400613 li a2,4 -800003ac: 00070593 mv a1,a4 -800003b0: 00078513 mv a0,a5 -800003b4: d25ff0ef jal ra,800000d8 -800003b8: fdc40713 addi a4,s0,-36 -800003bc: fec40793 addi a5,s0,-20 -800003c0: 00400613 li a2,4 -800003c4: 00070593 mv a1,a4 -800003c8: 00078513 mv a0,a5 -800003cc: d0dff0ef jal ra,800000d8 -800003d0: fd840713 addi a4,s0,-40 -800003d4: fec40793 addi a5,s0,-20 -800003d8: 00400613 li a2,4 -800003dc: 00070593 mv a1,a4 -800003e0: 00078513 mv a0,a5 -800003e4: cf5ff0ef jal ra,800000d8 -800003e8: fd440713 addi a4,s0,-44 -800003ec: fec40793 addi a5,s0,-20 -800003f0: 00400613 li a2,4 -800003f4: 00070593 mv a1,a4 -800003f8: 00078513 mv a0,a5 -800003fc: cddff0ef jal ra,800000d8 -80000400: c2c1a783 lw a5,-980(gp) # 80001434 -80000404: 000780e7 jalr a5 # 72000000 <_start-0xe000000> -80000408: fe040713 addi a4,s0,-32 -8000040c: fe840793 addi a5,s0,-24 +80000350 <_isatty>: +80000350: fe010113 addi sp,sp,-32 +80000354: 00112e23 sw ra,28(sp) +80000358: 00812c23 sw s0,24(sp) +8000035c: 02010413 addi s0,sp,32 +80000360: fea42623 sw a0,-20(s0) +80000364: 800017b7 lui a5,0x80001 +80000368: cec78513 addi a0,a5,-788 # 80000cec <__global_pointer$+0xfffff4e4> +8000036c: 4fc000ef jal ra,80000868 +80000370: 00100793 li a5,1 +80000374: 00078513 mv a0,a5 +80000378: 01c12083 lw ra,28(sp) +8000037c: 01812403 lw s0,24(sp) +80000380: 02010113 addi sp,sp,32 +80000384: 00008067 ret + +80000388 <_lseek>: +80000388: fd010113 addi sp,sp,-48 +8000038c: 02112623 sw ra,44(sp) +80000390: 02812423 sw s0,40(sp) +80000394: 03010413 addi s0,sp,48 +80000398: fca42e23 sw a0,-36(s0) +8000039c: fcb42c23 sw a1,-40(s0) +800003a0: fcc42a23 sw a2,-44(s0) +800003a4: 710007b7 lui a5,0x71000 +800003a8: fef42623 sw a5,-20(s0) +800003ac: 720007b7 lui a5,0x72000 +800003b0: fef42423 sw a5,-24(s0) +800003b4: 00300793 li a5,3 +800003b8: fef42223 sw a5,-28(s0) +800003bc: fe440713 addi a4,s0,-28 +800003c0: fec40793 addi a5,s0,-20 +800003c4: 00400613 li a2,4 +800003c8: 00070593 mv a1,a4 +800003cc: 00078513 mv a0,a5 +800003d0: d25ff0ef jal ra,800000f4 +800003d4: fdc40713 addi a4,s0,-36 +800003d8: fec40793 addi a5,s0,-20 +800003dc: 00400613 li a2,4 +800003e0: 00070593 mv a1,a4 +800003e4: 00078513 mv a0,a5 +800003e8: d0dff0ef jal ra,800000f4 +800003ec: fd840713 addi a4,s0,-40 +800003f0: fec40793 addi a5,s0,-20 +800003f4: 00400613 li a2,4 +800003f8: 00070593 mv a1,a4 +800003fc: 00078513 mv a0,a5 +80000400: cf5ff0ef jal ra,800000f4 +80000404: fd440713 addi a4,s0,-44 +80000408: fec40793 addi a5,s0,-20 +8000040c: 00400613 li a2,4 80000410: 00070593 mv a1,a4 80000414: 00078513 mv a0,a5 -80000418: dc9ff0ef jal ra,800001e0 -8000041c: fe042783 lw a5,-32(s0) -80000420: 00078513 mv a0,a5 -80000424: 02c12083 lw ra,44(sp) -80000428: 02812403 lw s0,40(sp) -8000042c: 03010113 addi sp,sp,48 -80000430: 00008067 ret +80000418: cddff0ef jal ra,800000f4 +8000041c: c2c1a783 lw a5,-980(gp) # 80001434 +80000420: 000780e7 jalr a5 # 72000000 <_start-0xe000000> +80000424: fe040713 addi a4,s0,-32 +80000428: fe840793 addi a5,s0,-24 +8000042c: 00070593 mv a1,a4 +80000430: 00078513 mv a0,a5 +80000434: dc9ff0ef jal ra,800001fc +80000438: fe042783 lw a5,-32(s0) +8000043c: 00078513 mv a0,a5 +80000440: 02c12083 lw ra,44(sp) +80000444: 02812403 lw s0,40(sp) +80000448: 03010113 addi sp,sp,48 +8000044c: 00008067 ret -80000434 <_read>: -80000434: fd010113 addi sp,sp,-48 -80000438: 02112623 sw ra,44(sp) -8000043c: 02812423 sw s0,40(sp) -80000440: 03010413 addi s0,sp,48 -80000444: fca42e23 sw a0,-36(s0) -80000448: fcb42c23 sw a1,-40(s0) -8000044c: fcc42a23 sw a2,-44(s0) -80000450: 710007b7 lui a5,0x71000 -80000454: fef42423 sw a5,-24(s0) -80000458: 720007b7 lui a5,0x72000 -8000045c: fef42623 sw a5,-20(s0) -80000460: 00400793 li a5,4 -80000464: fef42223 sw a5,-28(s0) -80000468: fe440713 addi a4,s0,-28 -8000046c: fe840793 addi a5,s0,-24 -80000470: 00400613 li a2,4 -80000474: 00070593 mv a1,a4 -80000478: 00078513 mv a0,a5 -8000047c: c5dff0ef jal ra,800000d8 -80000480: fdc40713 addi a4,s0,-36 -80000484: fe840793 addi a5,s0,-24 -80000488: 00400613 li a2,4 -8000048c: 00070593 mv a1,a4 -80000490: 00078513 mv a0,a5 -80000494: c45ff0ef jal ra,800000d8 -80000498: fd840713 addi a4,s0,-40 -8000049c: fe840793 addi a5,s0,-24 -800004a0: 00400613 li a2,4 -800004a4: 00070593 mv a1,a4 -800004a8: 00078513 mv a0,a5 -800004ac: c2dff0ef jal ra,800000d8 -800004b0: fd440713 addi a4,s0,-44 -800004b4: fe840793 addi a5,s0,-24 -800004b8: 00400613 li a2,4 -800004bc: 00070593 mv a1,a4 -800004c0: 00078513 mv a0,a5 -800004c4: c15ff0ef jal ra,800000d8 -800004c8: c2c1a783 lw a5,-980(gp) # 80001434 -800004cc: 000780e7 jalr a5 # 72000000 <_start-0xe000000> -800004d0: fd442783 lw a5,-44(s0) -800004d4: 00078513 mv a0,a5 -800004d8: 02c12083 lw ra,44(sp) -800004dc: 02812403 lw s0,40(sp) -800004e0: 03010113 addi sp,sp,48 -800004e4: 00008067 ret +80000450 <_read>: +80000450: fd010113 addi sp,sp,-48 +80000454: 02112623 sw ra,44(sp) +80000458: 02812423 sw s0,40(sp) +8000045c: 03010413 addi s0,sp,48 +80000460: fca42e23 sw a0,-36(s0) +80000464: fcb42c23 sw a1,-40(s0) +80000468: fcc42a23 sw a2,-44(s0) +8000046c: 710007b7 lui a5,0x71000 +80000470: fef42423 sw a5,-24(s0) +80000474: 720007b7 lui a5,0x72000 +80000478: fef42623 sw a5,-20(s0) +8000047c: 00400793 li a5,4 +80000480: fef42223 sw a5,-28(s0) +80000484: fe440713 addi a4,s0,-28 +80000488: fe840793 addi a5,s0,-24 +8000048c: 00400613 li a2,4 +80000490: 00070593 mv a1,a4 +80000494: 00078513 mv a0,a5 +80000498: c5dff0ef jal ra,800000f4 +8000049c: fdc40713 addi a4,s0,-36 +800004a0: fe840793 addi a5,s0,-24 +800004a4: 00400613 li a2,4 +800004a8: 00070593 mv a1,a4 +800004ac: 00078513 mv a0,a5 +800004b0: c45ff0ef jal ra,800000f4 +800004b4: fd840713 addi a4,s0,-40 +800004b8: fe840793 addi a5,s0,-24 +800004bc: 00400613 li a2,4 +800004c0: 00070593 mv a1,a4 +800004c4: 00078513 mv a0,a5 +800004c8: c2dff0ef jal ra,800000f4 +800004cc: fd440713 addi a4,s0,-44 +800004d0: fe840793 addi a5,s0,-24 +800004d4: 00400613 li a2,4 +800004d8: 00070593 mv a1,a4 +800004dc: 00078513 mv a0,a5 +800004e0: c15ff0ef jal ra,800000f4 +800004e4: c2c1a783 lw a5,-980(gp) # 80001434 +800004e8: 000780e7 jalr a5 # 72000000 <_start-0xe000000> +800004ec: fd442783 lw a5,-44(s0) +800004f0: 00078513 mv a0,a5 +800004f4: 02c12083 lw ra,44(sp) +800004f8: 02812403 lw s0,40(sp) +800004fc: 03010113 addi sp,sp,48 +80000500: 00008067 ret -800004e8 <_write>: -800004e8: fd010113 addi sp,sp,-48 -800004ec: 02112623 sw ra,44(sp) -800004f0: 02812423 sw s0,40(sp) -800004f4: 03010413 addi s0,sp,48 -800004f8: fca42e23 sw a0,-36(s0) -800004fc: fcb42c23 sw a1,-40(s0) -80000500: fcc42a23 sw a2,-44(s0) -80000504: 710007b7 lui a5,0x71000 -80000508: fef42623 sw a5,-20(s0) -8000050c: 00500793 li a5,5 -80000510: fef42423 sw a5,-24(s0) -80000514: fe840713 addi a4,s0,-24 -80000518: fec40793 addi a5,s0,-20 -8000051c: 00400613 li a2,4 -80000520: 00070593 mv a1,a4 -80000524: 00078513 mv a0,a5 -80000528: bb1ff0ef jal ra,800000d8 -8000052c: fdc40713 addi a4,s0,-36 -80000530: fec40793 addi a5,s0,-20 -80000534: 00400613 li a2,4 -80000538: 00070593 mv a1,a4 -8000053c: 00078513 mv a0,a5 -80000540: b99ff0ef jal ra,800000d8 -80000544: fec40793 addi a5,s0,-20 -80000548: fd442603 lw a2,-44(s0) -8000054c: fd842583 lw a1,-40(s0) -80000550: 00078513 mv a0,a5 -80000554: b85ff0ef jal ra,800000d8 -80000558: c2c1a783 lw a5,-980(gp) # 80001434 -8000055c: 000780e7 jalr a5 # 71000000 <_start-0xf000000> -80000560: fd442783 lw a5,-44(s0) -80000564: 00078513 mv a0,a5 -80000568: 02c12083 lw ra,44(sp) -8000056c: 02812403 lw s0,40(sp) -80000570: 03010113 addi sp,sp,48 -80000574: 00008067 ret +80000504 <_write>: +80000504: fd010113 addi sp,sp,-48 +80000508: 02112623 sw ra,44(sp) +8000050c: 02812423 sw s0,40(sp) +80000510: 03010413 addi s0,sp,48 +80000514: fca42e23 sw a0,-36(s0) +80000518: fcb42c23 sw a1,-40(s0) +8000051c: fcc42a23 sw a2,-44(s0) +80000520: 710007b7 lui a5,0x71000 +80000524: fef42623 sw a5,-20(s0) +80000528: 00500793 li a5,5 +8000052c: fef42423 sw a5,-24(s0) +80000530: fe840713 addi a4,s0,-24 +80000534: fec40793 addi a5,s0,-20 +80000538: 00400613 li a2,4 +8000053c: 00070593 mv a1,a4 +80000540: 00078513 mv a0,a5 +80000544: bb1ff0ef jal ra,800000f4 +80000548: fdc40713 addi a4,s0,-36 +8000054c: fec40793 addi a5,s0,-20 +80000550: 00400613 li a2,4 +80000554: 00070593 mv a1,a4 +80000558: 00078513 mv a0,a5 +8000055c: b99ff0ef jal ra,800000f4 +80000560: fec40793 addi a5,s0,-20 +80000564: fd442603 lw a2,-44(s0) +80000568: fd842583 lw a1,-40(s0) +8000056c: 00078513 mv a0,a5 +80000570: b85ff0ef jal ra,800000f4 +80000574: c2c1a783 lw a5,-980(gp) # 80001434 +80000578: 000780e7 jalr a5 # 71000000 <_start-0xf000000> +8000057c: fd442783 lw a5,-44(s0) +80000580: 00078513 mv a0,a5 +80000584: 02c12083 lw ra,44(sp) +80000588: 02812403 lw s0,40(sp) +8000058c: 03010113 addi sp,sp,48 +80000590: 00008067 ret -80000578 <_sbrk>: -80000578: fd010113 addi sp,sp,-48 -8000057c: 02812623 sw s0,44(sp) -80000580: 03010413 addi s0,sp,48 -80000584: fca42e23 sw a0,-36(s0) -80000588: fdc42783 lw a5,-36(s0) -8000058c: 0007d863 bgez a5,8000059c <_sbrk+0x24> -80000590: fdc42783 lw a5,-36(s0) -80000594: 40f007b3 neg a5,a5 -80000598: fcf42e23 sw a5,-36(s0) -8000059c: fdc42703 lw a4,-36(s0) -800005a0: 000037b7 lui a5,0x3 -800005a4: 80078793 addi a5,a5,-2048 # 2800 <_start-0x7fffd800> -800005a8: 00e7d863 bge a5,a4,800005b8 <_sbrk+0x40> -800005ac: 000037b7 lui a5,0x3 -800005b0: 80078793 addi a5,a5,-2048 # 2800 <_start-0x7fffd800> +80000594 <_sbrk>: +80000594: fd010113 addi sp,sp,-48 +80000598: 02812623 sw s0,44(sp) +8000059c: 03010413 addi s0,sp,48 +800005a0: fca42e23 sw a0,-36(s0) +800005a4: fdc42783 lw a5,-36(s0) +800005a8: 0007d863 bgez a5,800005b8 <_sbrk+0x24> +800005ac: fdc42783 lw a5,-36(s0) +800005b0: 40f007b3 neg a5,a5 800005b4: fcf42e23 sw a5,-36(s0) -800005b8: c301a783 lw a5,-976(gp) # 80001438 -800005bc: fef42623 sw a5,-20(s0) -800005c0: c301a703 lw a4,-976(gp) # 80001438 -800005c4: fdc42783 lw a5,-36(s0) -800005c8: 00f70733 add a4,a4,a5 -800005cc: c2e1a823 sw a4,-976(gp) # 80001438 -800005d0: fec42783 lw a5,-20(s0) -800005d4: 00078513 mv a0,a5 -800005d8: 02c12403 lw s0,44(sp) -800005dc: 03010113 addi sp,sp,48 -800005e0: 00008067 ret +800005b8: fdc42703 lw a4,-36(s0) +800005bc: 000037b7 lui a5,0x3 +800005c0: 80078793 addi a5,a5,-2048 # 2800 <_start-0x7fffd800> +800005c4: 00e7d863 bge a5,a4,800005d4 <_sbrk+0x40> +800005c8: 000037b7 lui a5,0x3 +800005cc: 80078793 addi a5,a5,-2048 # 2800 <_start-0x7fffd800> +800005d0: fcf42e23 sw a5,-36(s0) +800005d4: c301a783 lw a5,-976(gp) # 80001438 +800005d8: fef42623 sw a5,-20(s0) +800005dc: c301a703 lw a4,-976(gp) # 80001438 +800005e0: fdc42783 lw a5,-36(s0) +800005e4: 00f70733 add a4,a4,a5 +800005e8: c2e1a823 sw a4,-976(gp) # 80001438 +800005ec: fec42783 lw a5,-20(s0) +800005f0: 00078513 mv a0,a5 +800005f4: 02c12403 lw s0,44(sp) +800005f8: 03010113 addi sp,sp,48 +800005fc: 00008067 ret -800005e4 <_exit>: -800005e4: fe010113 addi sp,sp,-32 -800005e8: 00112e23 sw ra,28(sp) -800005ec: 00812c23 sw s0,24(sp) -800005f0: 02010413 addi s0,sp,32 -800005f4: fea42623 sw a0,-20(s0) -800005f8: 00000513 li a0,0 -800005fc: 1e0000ef jal ra,800007dc -80000600: 00000013 nop -80000604: 01c12083 lw ra,28(sp) -80000608: 01812403 lw s0,24(sp) -8000060c: 02010113 addi sp,sp,32 -80000610: 00008067 ret +80000600 <_exit>: +80000600: fe010113 addi sp,sp,-32 +80000604: 00112e23 sw ra,28(sp) +80000608: 00812c23 sw s0,24(sp) +8000060c: 02010413 addi s0,sp,32 +80000610: fea42623 sw a0,-20(s0) +80000614: 00000513 li a0,0 +80000618: 1e0000ef jal ra,800007f8 +8000061c: 00000013 nop +80000620: 01c12083 lw ra,28(sp) +80000624: 01812403 lw s0,24(sp) +80000628: 02010113 addi sp,sp,32 +8000062c: 00008067 ret -80000614 <_open>: -80000614: fd010113 addi sp,sp,-48 -80000618: 02112623 sw ra,44(sp) -8000061c: 02812423 sw s0,40(sp) -80000620: 03010413 addi s0,sp,48 -80000624: fca42e23 sw a0,-36(s0) -80000628: fcb42c23 sw a1,-40(s0) -8000062c: fcc42a23 sw a2,-44(s0) -80000630: 710007b7 lui a5,0x71000 -80000634: fef42623 sw a5,-20(s0) -80000638: 720007b7 lui a5,0x72000 -8000063c: fef42423 sw a5,-24(s0) -80000640: 00700793 li a5,7 -80000644: fef42223 sw a5,-28(s0) -80000648: fe440713 addi a4,s0,-28 -8000064c: fec40793 addi a5,s0,-20 -80000650: 00400613 li a2,4 -80000654: 00070593 mv a1,a4 -80000658: 00078513 mv a0,a5 -8000065c: a7dff0ef jal ra,800000d8 -80000660: fdc40713 addi a4,s0,-36 -80000664: fec40793 addi a5,s0,-20 -80000668: 00400613 li a2,4 -8000066c: 00070593 mv a1,a4 -80000670: 00078513 mv a0,a5 -80000674: a65ff0ef jal ra,800000d8 -80000678: fd840713 addi a4,s0,-40 -8000067c: fec40793 addi a5,s0,-20 -80000680: 00400613 li a2,4 -80000684: 00070593 mv a1,a4 -80000688: 00078513 mv a0,a5 -8000068c: a4dff0ef jal ra,800000d8 -80000690: fd440713 addi a4,s0,-44 -80000694: fec40793 addi a5,s0,-20 -80000698: 00400613 li a2,4 -8000069c: 00070593 mv a1,a4 -800006a0: 00078513 mv a0,a5 -800006a4: a35ff0ef jal ra,800000d8 -800006a8: c2c1a783 lw a5,-980(gp) # 80001434 -800006ac: 000780e7 jalr a5 # 72000000 <_start-0xe000000> -800006b0: fe040713 addi a4,s0,-32 -800006b4: fe840793 addi a5,s0,-24 +80000630 <_open>: +80000630: fd010113 addi sp,sp,-48 +80000634: 02112623 sw ra,44(sp) +80000638: 02812423 sw s0,40(sp) +8000063c: 03010413 addi s0,sp,48 +80000640: fca42e23 sw a0,-36(s0) +80000644: fcb42c23 sw a1,-40(s0) +80000648: fcc42a23 sw a2,-44(s0) +8000064c: 710007b7 lui a5,0x71000 +80000650: fef42623 sw a5,-20(s0) +80000654: 720007b7 lui a5,0x72000 +80000658: fef42423 sw a5,-24(s0) +8000065c: 00700793 li a5,7 +80000660: fef42223 sw a5,-28(s0) +80000664: fe440713 addi a4,s0,-28 +80000668: fec40793 addi a5,s0,-20 +8000066c: 00400613 li a2,4 +80000670: 00070593 mv a1,a4 +80000674: 00078513 mv a0,a5 +80000678: a7dff0ef jal ra,800000f4 +8000067c: fdc40713 addi a4,s0,-36 +80000680: fec40793 addi a5,s0,-20 +80000684: 00400613 li a2,4 +80000688: 00070593 mv a1,a4 +8000068c: 00078513 mv a0,a5 +80000690: a65ff0ef jal ra,800000f4 +80000694: fd840713 addi a4,s0,-40 +80000698: fec40793 addi a5,s0,-20 +8000069c: 00400613 li a2,4 +800006a0: 00070593 mv a1,a4 +800006a4: 00078513 mv a0,a5 +800006a8: a4dff0ef jal ra,800000f4 +800006ac: fd440713 addi a4,s0,-44 +800006b0: fec40793 addi a5,s0,-20 +800006b4: 00400613 li a2,4 800006b8: 00070593 mv a1,a4 800006bc: 00078513 mv a0,a5 -800006c0: b21ff0ef jal ra,800001e0 -800006c4: fe042783 lw a5,-32(s0) -800006c8: 00078513 mv a0,a5 -800006cc: 02c12083 lw ra,44(sp) -800006d0: 02812403 lw s0,40(sp) -800006d4: 03010113 addi sp,sp,48 -800006d8: 00008067 ret +800006c0: a35ff0ef jal ra,800000f4 +800006c4: c2c1a783 lw a5,-980(gp) # 80001434 +800006c8: 000780e7 jalr a5 # 72000000 <_start-0xe000000> +800006cc: fe040713 addi a4,s0,-32 +800006d0: fe840793 addi a5,s0,-24 +800006d4: 00070593 mv a1,a4 +800006d8: 00078513 mv a0,a5 +800006dc: b21ff0ef jal ra,800001fc +800006e0: fe042783 lw a5,-32(s0) +800006e4: 00078513 mv a0,a5 +800006e8: 02c12083 lw ra,44(sp) +800006ec: 02812403 lw s0,40(sp) +800006f0: 03010113 addi sp,sp,48 +800006f4: 00008067 ret -800006dc <_kill>: -800006dc: ff010113 addi sp,sp,-16 -800006e0: 00112623 sw ra,12(sp) -800006e4: 00812423 sw s0,8(sp) -800006e8: 01010413 addi s0,sp,16 -800006ec: 800017b7 lui a5,0x80001 -800006f0: ce478513 addi a0,a5,-796 # 80000ce4 <__global_pointer$+0xfffff4dc> -800006f4: 158000ef jal ra,8000084c -800006f8: 00000013 nop -800006fc: 00c12083 lw ra,12(sp) -80000700: 00812403 lw s0,8(sp) -80000704: 01010113 addi sp,sp,16 -80000708: 00008067 ret +800006f8 <_kill>: +800006f8: ff010113 addi sp,sp,-16 +800006fc: 00112623 sw ra,12(sp) +80000700: 00812423 sw s0,8(sp) +80000704: 01010413 addi s0,sp,16 +80000708: 800017b7 lui a5,0x80001 +8000070c: d0078513 addi a0,a5,-768 # 80000d00 <__global_pointer$+0xfffff4f8> +80000710: 158000ef jal ra,80000868 +80000714: 00000013 nop +80000718: 00c12083 lw ra,12(sp) +8000071c: 00812403 lw s0,8(sp) +80000720: 01010113 addi sp,sp,16 +80000724: 00008067 ret -8000070c <_getpid>: -8000070c: ff010113 addi sp,sp,-16 -80000710: 00112623 sw ra,12(sp) -80000714: 00812423 sw s0,8(sp) -80000718: 01010413 addi s0,sp,16 -8000071c: 0e8000ef jal ra,80000804 -80000720: 00050793 mv a5,a0 -80000724: 00078513 mv a0,a5 -80000728: 00c12083 lw ra,12(sp) -8000072c: 00812403 lw s0,8(sp) -80000730: 01010113 addi sp,sp,16 -80000734: 00008067 ret +80000728 <_getpid>: +80000728: ff010113 addi sp,sp,-16 +8000072c: 00112623 sw ra,12(sp) +80000730: 00812423 sw s0,8(sp) +80000734: 01010413 addi s0,sp,16 +80000738: 0e8000ef jal ra,80000820 +8000073c: 00050793 mv a5,a0 +80000740: 00078513 mv a0,a5 +80000744: 00c12083 lw ra,12(sp) +80000748: 00812403 lw s0,8(sp) +8000074c: 01010113 addi sp,sp,16 +80000750: 00008067 ret -80000738 <_unlink>: -80000738: ff010113 addi sp,sp,-16 -8000073c: 00112623 sw ra,12(sp) -80000740: 00812423 sw s0,8(sp) -80000744: 01010413 addi s0,sp,16 -80000748: 800017b7 lui a5,0x80001 -8000074c: d0878513 addi a0,a5,-760 # 80000d08 <__global_pointer$+0xfffff500> -80000750: 0fc000ef jal ra,8000084c -80000754: 00000013 nop -80000758: 00c12083 lw ra,12(sp) -8000075c: 00812403 lw s0,8(sp) -80000760: 01010113 addi sp,sp,16 -80000764: 00008067 ret +80000754 <_unlink>: +80000754: ff010113 addi sp,sp,-16 +80000758: 00112623 sw ra,12(sp) +8000075c: 00812423 sw s0,8(sp) +80000760: 01010413 addi s0,sp,16 +80000764: 800017b7 lui a5,0x80001 +80000768: d2478513 addi a0,a5,-732 # 80000d24 <__global_pointer$+0xfffff51c> +8000076c: 0fc000ef jal ra,80000868 +80000770: 00000013 nop +80000774: 00c12083 lw ra,12(sp) +80000778: 00812403 lw s0,8(sp) +8000077c: 01010113 addi sp,sp,16 +80000780: 00008067 ret -80000768 <_gettimeofday>: -80000768: ff010113 addi sp,sp,-16 -8000076c: 00112623 sw ra,12(sp) -80000770: 00812423 sw s0,8(sp) -80000774: 01010413 addi s0,sp,16 -80000778: 800017b7 lui a5,0x80001 -8000077c: d2c78513 addi a0,a5,-724 # 80000d2c <__global_pointer$+0xfffff524> -80000780: 0cc000ef jal ra,8000084c -80000784: c381a783 lw a5,-968(gp) # 80001440 <_edata> -80000788: 00178693 addi a3,a5,1 -8000078c: c2d1ac23 sw a3,-968(gp) # 80001440 <_edata> -80000790: 00078513 mv a0,a5 -80000794: 00c12083 lw ra,12(sp) -80000798: 00812403 lw s0,8(sp) -8000079c: 01010113 addi sp,sp,16 -800007a0: 00008067 ret +80000784 <_gettimeofday>: +80000784: ff010113 addi sp,sp,-16 +80000788: 00112623 sw ra,12(sp) +8000078c: 00812423 sw s0,8(sp) +80000790: 01010413 addi s0,sp,16 +80000794: 800017b7 lui a5,0x80001 +80000798: d4878513 addi a0,a5,-696 # 80000d48 <__global_pointer$+0xfffff540> +8000079c: 0cc000ef jal ra,80000868 +800007a0: c381a783 lw a5,-968(gp) # 80001440 <_edata> +800007a4: 00178693 addi a3,a5,1 +800007a8: c2d1ac23 sw a3,-968(gp) # 80001440 <_edata> +800007ac: 00078513 mv a0,a5 +800007b0: 00c12083 lw ra,12(sp) +800007b4: 00812403 lw s0,8(sp) +800007b8: 01010113 addi sp,sp,16 +800007bc: 00008067 ret -800007a4 <_link>: -800007a4: ff010113 addi sp,sp,-16 -800007a8: 00112623 sw ra,12(sp) -800007ac: 00812423 sw s0,8(sp) -800007b0: 01010413 addi s0,sp,16 -800007b4: 800017b7 lui a5,0x80001 -800007b8: d5878513 addi a0,a5,-680 # 80000d58 <__global_pointer$+0xfffff550> -800007bc: 090000ef jal ra,8000084c -800007c0: 00000013 nop -800007c4: 00c12083 lw ra,12(sp) -800007c8: 00812403 lw s0,8(sp) -800007cc: 01010113 addi sp,sp,16 -800007d0: 00008067 ret +800007c0 <_link>: +800007c0: ff010113 addi sp,sp,-16 +800007c4: 00112623 sw ra,12(sp) +800007c8: 00812423 sw s0,8(sp) +800007cc: 01010413 addi s0,sp,16 +800007d0: 800017b7 lui a5,0x80001 +800007d4: d7478513 addi a0,a5,-652 # 80000d74 <__global_pointer$+0xfffff56c> +800007d8: 090000ef jal ra,80000868 +800007dc: 00000013 nop +800007e0: 00c12083 lw ra,12(sp) +800007e4: 00812403 lw s0,8(sp) +800007e8: 01010113 addi sp,sp,16 +800007ec: 00008067 ret -800007d4 : -800007d4: 00b5106b 0xb5106b -800007d8: 00008067 ret +800007f0 : +800007f0: 00b5106b 0xb5106b +800007f4: 00008067 ret -800007dc : -800007dc: 0005006b 0x5006b -800007e0: 00008067 ret +800007f8 : +800007f8: 0005006b 0x5006b +800007fc: 00008067 ret -800007e4 : -800007e4: 00b5406b 0xb5406b -800007e8: 00008067 ret +80000800 : +80000800: 00b5406b 0xb5406b +80000804: 00008067 ret -800007ec : -800007ec: 0005206b 0x5206b -800007f0: 00008067 ret +80000808 : +80000808: 0005206b 0x5206b +8000080c: 00008067 ret -800007f4 : -800007f4: 0000306b 0x306b -800007f8: 00008067 ret +80000810 : +80000810: 0000306b 0x306b +80000814: 00008067 ret -800007fc : -800007fc: 02102573 csrr a0,0x21 -80000800: 00008067 ret +80000818 : +80000818: 02102573 csrr a0,0x21 +8000081c: 00008067 ret -80000804 : -80000804: 02002573 csrr a0,0x20 -80000808: 00008067 ret +80000820 : +80000820: 02002573 csrr a0,0x20 +80000824: 00008067 ret -8000080c : -8000080c: 00400513 li a0,4 -80000810: 0005006b 0x5006b -80000814: 021026f3 csrr a3,0x21 -80000818: 00f69693 slli a3,a3,0xf -8000081c: 02002673 csrr a2,0x20 -80000820: 00a61593 slli a1,a2,0xa -80000824: 00261613 slli a2,a2,0x2 -80000828: 6ffff137 lui sp,0x6ffff -8000082c: 40b10133 sub sp,sp,a1 -80000830: 40d10133 sub sp,sp,a3 -80000834: 00c10133 add sp,sp,a2 -80000838: 021026f3 csrr a3,0x21 -8000083c: 00068663 beqz a3,80000848 -80000840: 00000513 li a0,0 -80000844: 0005006b 0x5006b +80000828 : +80000828: 00400513 li a0,4 +8000082c: 0005006b 0x5006b +80000830: 021026f3 csrr a3,0x21 +80000834: 00f69693 slli a3,a3,0xf +80000838: 02002673 csrr a2,0x20 +8000083c: 00a61593 slli a1,a2,0xa +80000840: 00261613 slli a2,a2,0x2 +80000844: 6ffff137 lui sp,0x6ffff +80000848: 40b10133 sub sp,sp,a1 +8000084c: 40d10133 sub sp,sp,a3 +80000850: 00c10133 add sp,sp,a2 +80000854: 021026f3 csrr a3,0x21 +80000858: 00068663 beqz a3,80000864 +8000085c: 00000513 li a0,0 +80000860: 0005006b 0x5006b -80000848 : -80000848: 00008067 ret +80000864 : +80000864: 00008067 ret -8000084c : -8000084c: ff410113 addi sp,sp,-12 # 6fffeff4 <_start-0x1000100c> -80000850: 00112023 sw ra,0(sp) -80000854: 00b12223 sw a1,4(sp) +80000868 : +80000868: ff410113 addi sp,sp,-12 # 6fffeff4 <_start-0x1000100c> +8000086c: 00112023 sw ra,0(sp) +80000870: 00b12223 sw a1,4(sp) -80000858 : -80000858: 00054583 lbu a1,0(a0) -8000085c: 00058863 beqz a1,8000086c -80000860: 01c000ef jal ra,8000087c -80000864: 00150513 addi a0,a0,1 -80000868: ff1ff06f j 80000858 +80000874 : +80000874: 00054583 lbu a1,0(a0) +80000878: 00058863 beqz a1,80000888 +8000087c: 01c000ef jal ra,80000898 +80000880: 00150513 addi a0,a0,1 +80000884: ff1ff06f j 80000874 -8000086c : -8000086c: 00012083 lw ra,0(sp) -80000870: 00412583 lw a1,4(sp) -80000874: 00c10113 addi sp,sp,12 -80000878: 00008067 ret +80000888 : +80000888: 00012083 lw ra,0(sp) +8000088c: 00412583 lw a1,4(sp) +80000890: 00c10113 addi sp,sp,12 +80000894: 00008067 ret -8000087c : -8000087c: 000102b7 lui t0,0x10 -80000880: 00b2a023 sw a1,0(t0) # 10000 <_start-0x7fff0000> -80000884: 00008067 ret +80000898 : +80000898: 000102b7 lui t0,0x10 +8000089c: 00b2a023 sw a1,0(t0) # 10000 <_start-0x7fff0000> +800008a0: 00008067 ret -80000888
: -80000888: ff010113 addi sp,sp,-16 -8000088c: 00112623 sw ra,12(sp) -80000890: 00812423 sw s0,8(sp) -80000894: 01010413 addi s0,sp,16 -80000898: 00100513 li a0,1 -8000089c: f41ff0ef jal ra,800007dc -800008a0: 815ff0ef jal ra,800000b4 -800008a4: 00000513 li a0,0 -800008a8: f35ff0ef jal ra,800007dc -800008ac: 00000013 nop -800008b0: 00078513 mv a0,a5 -800008b4: 00c12083 lw ra,12(sp) -800008b8: 00812403 lw s0,8(sp) -800008bc: 01010113 addi sp,sp,16 -800008c0: 00008067 ret +800008a4
: +800008a4: ff010113 addi sp,sp,-16 +800008a8: 00112623 sw ra,12(sp) +800008ac: 00812423 sw s0,8(sp) +800008b0: 01010413 addi s0,sp,16 +800008b4: 00100513 li a0,1 +800008b8: f41ff0ef jal ra,800007f8 +800008bc: ff8ff0ef jal ra,800000b4 +800008c0: 00000513 li a0,0 +800008c4: f35ff0ef jal ra,800007f8 +800008c8: 00000013 nop +800008cc: 00078513 mv a0,a5 +800008d0: 00c12083 lw ra,12(sp) +800008d4: 00812403 lw s0,8(sp) +800008d8: 01010113 addi sp,sp,16 +800008dc: 00008067 ret -800008c4 : -800008c4: 00050593 mv a1,a0 -800008c8: 00000693 li a3,0 -800008cc: 00000613 li a2,0 -800008d0: 00000513 li a0,0 -800008d4: 20c0006f j 80000ae0 <__register_exitproc> +800008e0 : +800008e0: 00050593 mv a1,a0 +800008e4: 00000693 li a3,0 +800008e8: 00000613 li a2,0 +800008ec: 00000513 li a0,0 +800008f0: 20c0006f j 80000afc <__register_exitproc> -800008d8 : -800008d8: ff010113 addi sp,sp,-16 -800008dc: 00000593 li a1,0 -800008e0: 00812423 sw s0,8(sp) -800008e4: 00112623 sw ra,12(sp) -800008e8: 00050413 mv s0,a0 -800008ec: 28c000ef jal ra,80000b78 <__call_exitprocs> -800008f0: c281a503 lw a0,-984(gp) # 80001430 <_global_impure_ptr> -800008f4: 03c52783 lw a5,60(a0) -800008f8: 00078463 beqz a5,80000900 -800008fc: 000780e7 jalr a5 -80000900: 00040513 mv a0,s0 -80000904: ce1ff0ef jal ra,800005e4 <_exit> +800008f4 : +800008f4: ff010113 addi sp,sp,-16 +800008f8: 00000593 li a1,0 +800008fc: 00812423 sw s0,8(sp) +80000900: 00112623 sw ra,12(sp) +80000904: 00050413 mv s0,a0 +80000908: 28c000ef jal ra,80000b94 <__call_exitprocs> +8000090c: c281a503 lw a0,-984(gp) # 80001430 <_global_impure_ptr> +80000910: 03c52783 lw a5,60(a0) +80000914: 00078463 beqz a5,8000091c +80000918: 000780e7 jalr a5 +8000091c: 00040513 mv a0,s0 +80000920: ce1ff0ef jal ra,80000600 <_exit> -80000908 <__libc_fini_array>: -80000908: ff010113 addi sp,sp,-16 -8000090c: 00812423 sw s0,8(sp) -80000910: 00912223 sw s1,4(sp) -80000914: 80001437 lui s0,0x80001 -80000918: 800014b7 lui s1,0x80001 -8000091c: 00448793 addi a5,s1,4 # 80001004 <__global_pointer$+0xfffff7fc> -80000920: 00440413 addi s0,s0,4 # 80001004 <__global_pointer$+0xfffff7fc> -80000924: 40f40433 sub s0,s0,a5 -80000928: 00112623 sw ra,12(sp) -8000092c: 40245413 srai s0,s0,0x2 -80000930: 02040263 beqz s0,80000954 <__libc_fini_array+0x4c> -80000934: 00241493 slli s1,s0,0x2 -80000938: ffc48493 addi s1,s1,-4 -8000093c: 00f484b3 add s1,s1,a5 -80000940: 0004a783 lw a5,0(s1) -80000944: fff40413 addi s0,s0,-1 -80000948: ffc48493 addi s1,s1,-4 -8000094c: 000780e7 jalr a5 -80000950: fe0418e3 bnez s0,80000940 <__libc_fini_array+0x38> -80000954: 00c12083 lw ra,12(sp) -80000958: 00812403 lw s0,8(sp) -8000095c: 00412483 lw s1,4(sp) -80000960: 01010113 addi sp,sp,16 -80000964: 00008067 ret +80000924 <__libc_fini_array>: +80000924: ff010113 addi sp,sp,-16 +80000928: 00812423 sw s0,8(sp) +8000092c: 00912223 sw s1,4(sp) +80000930: 80001437 lui s0,0x80001 +80000934: 800014b7 lui s1,0x80001 +80000938: 00448793 addi a5,s1,4 # 80001004 <__global_pointer$+0xfffff7fc> +8000093c: 00440413 addi s0,s0,4 # 80001004 <__global_pointer$+0xfffff7fc> +80000940: 40f40433 sub s0,s0,a5 +80000944: 00112623 sw ra,12(sp) +80000948: 40245413 srai s0,s0,0x2 +8000094c: 02040263 beqz s0,80000970 <__libc_fini_array+0x4c> +80000950: 00241493 slli s1,s0,0x2 +80000954: ffc48493 addi s1,s1,-4 +80000958: 00f484b3 add s1,s1,a5 +8000095c: 0004a783 lw a5,0(s1) +80000960: fff40413 addi s0,s0,-1 +80000964: ffc48493 addi s1,s1,-4 +80000968: 000780e7 jalr a5 +8000096c: fe0418e3 bnez s0,8000095c <__libc_fini_array+0x38> +80000970: 00c12083 lw ra,12(sp) +80000974: 00812403 lw s0,8(sp) +80000978: 00412483 lw s1,4(sp) +8000097c: 01010113 addi sp,sp,16 +80000980: 00008067 ret -80000968 <__libc_init_array>: -80000968: ff010113 addi sp,sp,-16 -8000096c: 00812423 sw s0,8(sp) -80000970: 01212023 sw s2,0(sp) -80000974: 80001437 lui s0,0x80001 -80000978: 80001937 lui s2,0x80001 -8000097c: 00040793 mv a5,s0 -80000980: 00090913 mv s2,s2 -80000984: 40f90933 sub s2,s2,a5 -80000988: 00112623 sw ra,12(sp) -8000098c: 00912223 sw s1,4(sp) -80000990: 40295913 srai s2,s2,0x2 -80000994: 02090063 beqz s2,800009b4 <__libc_init_array+0x4c> -80000998: 00040413 mv s0,s0 -8000099c: 00000493 li s1,0 -800009a0: 00042783 lw a5,0(s0) # 80001000 <__global_pointer$+0xfffff7f8> -800009a4: 00148493 addi s1,s1,1 -800009a8: 00440413 addi s0,s0,4 -800009ac: 000780e7 jalr a5 -800009b0: fe9918e3 bne s2,s1,800009a0 <__libc_init_array+0x38> -800009b4: 80001437 lui s0,0x80001 -800009b8: 80001937 lui s2,0x80001 -800009bc: 00040793 mv a5,s0 -800009c0: 00490913 addi s2,s2,4 # 80001004 <__global_pointer$+0xfffff7fc> -800009c4: 40f90933 sub s2,s2,a5 -800009c8: 40295913 srai s2,s2,0x2 -800009cc: 02090063 beqz s2,800009ec <__libc_init_array+0x84> -800009d0: 00040413 mv s0,s0 -800009d4: 00000493 li s1,0 -800009d8: 00042783 lw a5,0(s0) # 80001000 <__global_pointer$+0xfffff7f8> -800009dc: 00148493 addi s1,s1,1 -800009e0: 00440413 addi s0,s0,4 -800009e4: 000780e7 jalr a5 -800009e8: fe9918e3 bne s2,s1,800009d8 <__libc_init_array+0x70> -800009ec: 00c12083 lw ra,12(sp) -800009f0: 00812403 lw s0,8(sp) -800009f4: 00412483 lw s1,4(sp) -800009f8: 00012903 lw s2,0(sp) -800009fc: 01010113 addi sp,sp,16 -80000a00: 00008067 ret +80000984 <__libc_init_array>: +80000984: ff010113 addi sp,sp,-16 +80000988: 00812423 sw s0,8(sp) +8000098c: 01212023 sw s2,0(sp) +80000990: 80001437 lui s0,0x80001 +80000994: 80001937 lui s2,0x80001 +80000998: 00040793 mv a5,s0 +8000099c: 00090913 mv s2,s2 +800009a0: 40f90933 sub s2,s2,a5 +800009a4: 00112623 sw ra,12(sp) +800009a8: 00912223 sw s1,4(sp) +800009ac: 40295913 srai s2,s2,0x2 +800009b0: 02090063 beqz s2,800009d0 <__libc_init_array+0x4c> +800009b4: 00040413 mv s0,s0 +800009b8: 00000493 li s1,0 +800009bc: 00042783 lw a5,0(s0) # 80001000 <__global_pointer$+0xfffff7f8> +800009c0: 00148493 addi s1,s1,1 +800009c4: 00440413 addi s0,s0,4 +800009c8: 000780e7 jalr a5 +800009cc: fe9918e3 bne s2,s1,800009bc <__libc_init_array+0x38> +800009d0: 80001437 lui s0,0x80001 +800009d4: 80001937 lui s2,0x80001 +800009d8: 00040793 mv a5,s0 +800009dc: 00490913 addi s2,s2,4 # 80001004 <__global_pointer$+0xfffff7fc> +800009e0: 40f90933 sub s2,s2,a5 +800009e4: 40295913 srai s2,s2,0x2 +800009e8: 02090063 beqz s2,80000a08 <__libc_init_array+0x84> +800009ec: 00040413 mv s0,s0 +800009f0: 00000493 li s1,0 +800009f4: 00042783 lw a5,0(s0) # 80001000 <__global_pointer$+0xfffff7f8> +800009f8: 00148493 addi s1,s1,1 +800009fc: 00440413 addi s0,s0,4 +80000a00: 000780e7 jalr a5 +80000a04: fe9918e3 bne s2,s1,800009f4 <__libc_init_array+0x70> +80000a08: 00c12083 lw ra,12(sp) +80000a0c: 00812403 lw s0,8(sp) +80000a10: 00412483 lw s1,4(sp) +80000a14: 00012903 lw s2,0(sp) +80000a18: 01010113 addi sp,sp,16 +80000a1c: 00008067 ret -80000a04 : -80000a04: 00f00313 li t1,15 -80000a08: 00050713 mv a4,a0 -80000a0c: 02c37e63 bgeu t1,a2,80000a48 -80000a10: 00f77793 andi a5,a4,15 -80000a14: 0a079063 bnez a5,80000ab4 -80000a18: 08059263 bnez a1,80000a9c -80000a1c: ff067693 andi a3,a2,-16 -80000a20: 00f67613 andi a2,a2,15 -80000a24: 00e686b3 add a3,a3,a4 -80000a28: 00b72023 sw a1,0(a4) # 2000 <_start-0x7fffe000> -80000a2c: 00b72223 sw a1,4(a4) -80000a30: 00b72423 sw a1,8(a4) -80000a34: 00b72623 sw a1,12(a4) -80000a38: 01070713 addi a4,a4,16 -80000a3c: fed766e3 bltu a4,a3,80000a28 -80000a40: 00061463 bnez a2,80000a48 -80000a44: 00008067 ret -80000a48: 40c306b3 sub a3,t1,a2 -80000a4c: 00269693 slli a3,a3,0x2 -80000a50: 00000297 auipc t0,0x0 -80000a54: 005686b3 add a3,a3,t0 -80000a58: 00c68067 jr 12(a3) -80000a5c: 00b70723 sb a1,14(a4) -80000a60: 00b706a3 sb a1,13(a4) -80000a64: 00b70623 sb a1,12(a4) -80000a68: 00b705a3 sb a1,11(a4) -80000a6c: 00b70523 sb a1,10(a4) -80000a70: 00b704a3 sb a1,9(a4) -80000a74: 00b70423 sb a1,8(a4) -80000a78: 00b703a3 sb a1,7(a4) -80000a7c: 00b70323 sb a1,6(a4) -80000a80: 00b702a3 sb a1,5(a4) -80000a84: 00b70223 sb a1,4(a4) -80000a88: 00b701a3 sb a1,3(a4) -80000a8c: 00b70123 sb a1,2(a4) -80000a90: 00b700a3 sb a1,1(a4) -80000a94: 00b70023 sb a1,0(a4) -80000a98: 00008067 ret -80000a9c: 0ff5f593 andi a1,a1,255 -80000aa0: 00859693 slli a3,a1,0x8 -80000aa4: 00d5e5b3 or a1,a1,a3 -80000aa8: 01059693 slli a3,a1,0x10 -80000aac: 00d5e5b3 or a1,a1,a3 -80000ab0: f6dff06f j 80000a1c -80000ab4: 00279693 slli a3,a5,0x2 -80000ab8: 00000297 auipc t0,0x0 -80000abc: 005686b3 add a3,a3,t0 -80000ac0: 00008293 mv t0,ra -80000ac4: fa0680e7 jalr -96(a3) -80000ac8: 00028093 mv ra,t0 -80000acc: ff078793 addi a5,a5,-16 -80000ad0: 40f70733 sub a4,a4,a5 -80000ad4: 00f60633 add a2,a2,a5 -80000ad8: f6c378e3 bgeu t1,a2,80000a48 -80000adc: f3dff06f j 80000a18 +80000a20 : +80000a20: 00f00313 li t1,15 +80000a24: 00050713 mv a4,a0 +80000a28: 02c37e63 bgeu t1,a2,80000a64 +80000a2c: 00f77793 andi a5,a4,15 +80000a30: 0a079063 bnez a5,80000ad0 +80000a34: 08059263 bnez a1,80000ab8 +80000a38: ff067693 andi a3,a2,-16 +80000a3c: 00f67613 andi a2,a2,15 +80000a40: 00e686b3 add a3,a3,a4 +80000a44: 00b72023 sw a1,0(a4) # 2000 <_start-0x7fffe000> +80000a48: 00b72223 sw a1,4(a4) +80000a4c: 00b72423 sw a1,8(a4) +80000a50: 00b72623 sw a1,12(a4) +80000a54: 01070713 addi a4,a4,16 +80000a58: fed766e3 bltu a4,a3,80000a44 +80000a5c: 00061463 bnez a2,80000a64 +80000a60: 00008067 ret +80000a64: 40c306b3 sub a3,t1,a2 +80000a68: 00269693 slli a3,a3,0x2 +80000a6c: 00000297 auipc t0,0x0 +80000a70: 005686b3 add a3,a3,t0 +80000a74: 00c68067 jr 12(a3) +80000a78: 00b70723 sb a1,14(a4) +80000a7c: 00b706a3 sb a1,13(a4) +80000a80: 00b70623 sb a1,12(a4) +80000a84: 00b705a3 sb a1,11(a4) +80000a88: 00b70523 sb a1,10(a4) +80000a8c: 00b704a3 sb a1,9(a4) +80000a90: 00b70423 sb a1,8(a4) +80000a94: 00b703a3 sb a1,7(a4) +80000a98: 00b70323 sb a1,6(a4) +80000a9c: 00b702a3 sb a1,5(a4) +80000aa0: 00b70223 sb a1,4(a4) +80000aa4: 00b701a3 sb a1,3(a4) +80000aa8: 00b70123 sb a1,2(a4) +80000aac: 00b700a3 sb a1,1(a4) +80000ab0: 00b70023 sb a1,0(a4) +80000ab4: 00008067 ret +80000ab8: 0ff5f593 andi a1,a1,255 +80000abc: 00859693 slli a3,a1,0x8 +80000ac0: 00d5e5b3 or a1,a1,a3 +80000ac4: 01059693 slli a3,a1,0x10 +80000ac8: 00d5e5b3 or a1,a1,a3 +80000acc: f6dff06f j 80000a38 +80000ad0: 00279693 slli a3,a5,0x2 +80000ad4: 00000297 auipc t0,0x0 +80000ad8: 005686b3 add a3,a3,t0 +80000adc: 00008293 mv t0,ra +80000ae0: fa0680e7 jalr -96(a3) +80000ae4: 00028093 mv ra,t0 +80000ae8: ff078793 addi a5,a5,-16 +80000aec: 40f70733 sub a4,a4,a5 +80000af0: 00f60633 add a2,a2,a5 +80000af4: f6c378e3 bgeu t1,a2,80000a64 +80000af8: f3dff06f j 80000a34 -80000ae0 <__register_exitproc>: -80000ae0: c281a703 lw a4,-984(gp) # 80001430 <_global_impure_ptr> -80000ae4: 14872783 lw a5,328(a4) -80000ae8: 04078c63 beqz a5,80000b40 <__register_exitproc+0x60> -80000aec: 0047a703 lw a4,4(a5) -80000af0: 01f00813 li a6,31 -80000af4: 06e84e63 blt a6,a4,80000b70 <__register_exitproc+0x90> -80000af8: 00271813 slli a6,a4,0x2 -80000afc: 02050663 beqz a0,80000b28 <__register_exitproc+0x48> -80000b00: 01078333 add t1,a5,a6 -80000b04: 08c32423 sw a2,136(t1) -80000b08: 1887a883 lw a7,392(a5) -80000b0c: 00100613 li a2,1 -80000b10: 00e61633 sll a2,a2,a4 -80000b14: 00c8e8b3 or a7,a7,a2 -80000b18: 1917a423 sw a7,392(a5) -80000b1c: 10d32423 sw a3,264(t1) -80000b20: 00200693 li a3,2 -80000b24: 02d50463 beq a0,a3,80000b4c <__register_exitproc+0x6c> -80000b28: 00170713 addi a4,a4,1 -80000b2c: 00e7a223 sw a4,4(a5) -80000b30: 010787b3 add a5,a5,a6 -80000b34: 00b7a423 sw a1,8(a5) -80000b38: 00000513 li a0,0 -80000b3c: 00008067 ret -80000b40: 14c70793 addi a5,a4,332 -80000b44: 14f72423 sw a5,328(a4) -80000b48: fa5ff06f j 80000aec <__register_exitproc+0xc> -80000b4c: 18c7a683 lw a3,396(a5) -80000b50: 00170713 addi a4,a4,1 -80000b54: 00e7a223 sw a4,4(a5) -80000b58: 00c6e633 or a2,a3,a2 -80000b5c: 18c7a623 sw a2,396(a5) -80000b60: 010787b3 add a5,a5,a6 -80000b64: 00b7a423 sw a1,8(a5) -80000b68: 00000513 li a0,0 -80000b6c: 00008067 ret -80000b70: fff00513 li a0,-1 -80000b74: 00008067 ret +80000afc <__register_exitproc>: +80000afc: c281a703 lw a4,-984(gp) # 80001430 <_global_impure_ptr> +80000b00: 14872783 lw a5,328(a4) +80000b04: 04078c63 beqz a5,80000b5c <__register_exitproc+0x60> +80000b08: 0047a703 lw a4,4(a5) +80000b0c: 01f00813 li a6,31 +80000b10: 06e84e63 blt a6,a4,80000b8c <__register_exitproc+0x90> +80000b14: 00271813 slli a6,a4,0x2 +80000b18: 02050663 beqz a0,80000b44 <__register_exitproc+0x48> +80000b1c: 01078333 add t1,a5,a6 +80000b20: 08c32423 sw a2,136(t1) +80000b24: 1887a883 lw a7,392(a5) +80000b28: 00100613 li a2,1 +80000b2c: 00e61633 sll a2,a2,a4 +80000b30: 00c8e8b3 or a7,a7,a2 +80000b34: 1917a423 sw a7,392(a5) +80000b38: 10d32423 sw a3,264(t1) +80000b3c: 00200693 li a3,2 +80000b40: 02d50463 beq a0,a3,80000b68 <__register_exitproc+0x6c> +80000b44: 00170713 addi a4,a4,1 +80000b48: 00e7a223 sw a4,4(a5) +80000b4c: 010787b3 add a5,a5,a6 +80000b50: 00b7a423 sw a1,8(a5) +80000b54: 00000513 li a0,0 +80000b58: 00008067 ret +80000b5c: 14c70793 addi a5,a4,332 +80000b60: 14f72423 sw a5,328(a4) +80000b64: fa5ff06f j 80000b08 <__register_exitproc+0xc> +80000b68: 18c7a683 lw a3,396(a5) +80000b6c: 00170713 addi a4,a4,1 +80000b70: 00e7a223 sw a4,4(a5) +80000b74: 00c6e633 or a2,a3,a2 +80000b78: 18c7a623 sw a2,396(a5) +80000b7c: 010787b3 add a5,a5,a6 +80000b80: 00b7a423 sw a1,8(a5) +80000b84: 00000513 li a0,0 +80000b88: 00008067 ret +80000b8c: fff00513 li a0,-1 +80000b90: 00008067 ret -80000b78 <__call_exitprocs>: -80000b78: fd010113 addi sp,sp,-48 -80000b7c: 01812423 sw s8,8(sp) -80000b80: c281ac03 lw s8,-984(gp) # 80001430 <_global_impure_ptr> -80000b84: 01312e23 sw s3,28(sp) -80000b88: 01412c23 sw s4,24(sp) -80000b8c: 01512a23 sw s5,20(sp) -80000b90: 01612823 sw s6,16(sp) -80000b94: 02112623 sw ra,44(sp) -80000b98: 02812423 sw s0,40(sp) -80000b9c: 02912223 sw s1,36(sp) -80000ba0: 03212023 sw s2,32(sp) -80000ba4: 01712623 sw s7,12(sp) -80000ba8: 00050a93 mv s5,a0 -80000bac: 00058b13 mv s6,a1 -80000bb0: 00100a13 li s4,1 -80000bb4: fff00993 li s3,-1 -80000bb8: 148c2903 lw s2,328(s8) -80000bbc: 02090863 beqz s2,80000bec <__call_exitprocs+0x74> -80000bc0: 00492483 lw s1,4(s2) -80000bc4: fff48413 addi s0,s1,-1 -80000bc8: 02044263 bltz s0,80000bec <__call_exitprocs+0x74> -80000bcc: 00249493 slli s1,s1,0x2 -80000bd0: 009904b3 add s1,s2,s1 -80000bd4: 040b0463 beqz s6,80000c1c <__call_exitprocs+0xa4> -80000bd8: 1044a783 lw a5,260(s1) -80000bdc: 05678063 beq a5,s6,80000c1c <__call_exitprocs+0xa4> -80000be0: fff40413 addi s0,s0,-1 -80000be4: ffc48493 addi s1,s1,-4 -80000be8: ff3416e3 bne s0,s3,80000bd4 <__call_exitprocs+0x5c> -80000bec: 02c12083 lw ra,44(sp) -80000bf0: 02812403 lw s0,40(sp) -80000bf4: 02412483 lw s1,36(sp) -80000bf8: 02012903 lw s2,32(sp) -80000bfc: 01c12983 lw s3,28(sp) -80000c00: 01812a03 lw s4,24(sp) -80000c04: 01412a83 lw s5,20(sp) -80000c08: 01012b03 lw s6,16(sp) -80000c0c: 00c12b83 lw s7,12(sp) -80000c10: 00812c03 lw s8,8(sp) -80000c14: 03010113 addi sp,sp,48 -80000c18: 00008067 ret -80000c1c: 00492783 lw a5,4(s2) -80000c20: 0044a683 lw a3,4(s1) -80000c24: fff78793 addi a5,a5,-1 -80000c28: 04878a63 beq a5,s0,80000c7c <__call_exitprocs+0x104> -80000c2c: 0004a223 sw zero,4(s1) -80000c30: fa0688e3 beqz a3,80000be0 <__call_exitprocs+0x68> -80000c34: 18892783 lw a5,392(s2) -80000c38: 008a1733 sll a4,s4,s0 -80000c3c: 00492b83 lw s7,4(s2) -80000c40: 00f777b3 and a5,a4,a5 -80000c44: 00079e63 bnez a5,80000c60 <__call_exitprocs+0xe8> -80000c48: 000680e7 jalr a3 -80000c4c: 00492783 lw a5,4(s2) -80000c50: f77794e3 bne a5,s7,80000bb8 <__call_exitprocs+0x40> -80000c54: 148c2783 lw a5,328(s8) -80000c58: f92784e3 beq a5,s2,80000be0 <__call_exitprocs+0x68> -80000c5c: f5dff06f j 80000bb8 <__call_exitprocs+0x40> -80000c60: 18c92783 lw a5,396(s2) -80000c64: 0844a583 lw a1,132(s1) -80000c68: 00f77733 and a4,a4,a5 -80000c6c: 00071c63 bnez a4,80000c84 <__call_exitprocs+0x10c> -80000c70: 000a8513 mv a0,s5 -80000c74: 000680e7 jalr a3 -80000c78: fd5ff06f j 80000c4c <__call_exitprocs+0xd4> -80000c7c: 00892223 sw s0,4(s2) -80000c80: fb1ff06f j 80000c30 <__call_exitprocs+0xb8> -80000c84: 00058513 mv a0,a1 -80000c88: 000680e7 jalr a3 -80000c8c: fc1ff06f j 80000c4c <__call_exitprocs+0xd4> +80000b94 <__call_exitprocs>: +80000b94: fd010113 addi sp,sp,-48 +80000b98: 01812423 sw s8,8(sp) +80000b9c: c281ac03 lw s8,-984(gp) # 80001430 <_global_impure_ptr> +80000ba0: 01312e23 sw s3,28(sp) +80000ba4: 01412c23 sw s4,24(sp) +80000ba8: 01512a23 sw s5,20(sp) +80000bac: 01612823 sw s6,16(sp) +80000bb0: 02112623 sw ra,44(sp) +80000bb4: 02812423 sw s0,40(sp) +80000bb8: 02912223 sw s1,36(sp) +80000bbc: 03212023 sw s2,32(sp) +80000bc0: 01712623 sw s7,12(sp) +80000bc4: 00050a93 mv s5,a0 +80000bc8: 00058b13 mv s6,a1 +80000bcc: 00100a13 li s4,1 +80000bd0: fff00993 li s3,-1 +80000bd4: 148c2903 lw s2,328(s8) +80000bd8: 02090863 beqz s2,80000c08 <__call_exitprocs+0x74> +80000bdc: 00492483 lw s1,4(s2) +80000be0: fff48413 addi s0,s1,-1 +80000be4: 02044263 bltz s0,80000c08 <__call_exitprocs+0x74> +80000be8: 00249493 slli s1,s1,0x2 +80000bec: 009904b3 add s1,s2,s1 +80000bf0: 040b0463 beqz s6,80000c38 <__call_exitprocs+0xa4> +80000bf4: 1044a783 lw a5,260(s1) +80000bf8: 05678063 beq a5,s6,80000c38 <__call_exitprocs+0xa4> +80000bfc: fff40413 addi s0,s0,-1 +80000c00: ffc48493 addi s1,s1,-4 +80000c04: ff3416e3 bne s0,s3,80000bf0 <__call_exitprocs+0x5c> +80000c08: 02c12083 lw ra,44(sp) +80000c0c: 02812403 lw s0,40(sp) +80000c10: 02412483 lw s1,36(sp) +80000c14: 02012903 lw s2,32(sp) +80000c18: 01c12983 lw s3,28(sp) +80000c1c: 01812a03 lw s4,24(sp) +80000c20: 01412a83 lw s5,20(sp) +80000c24: 01012b03 lw s6,16(sp) +80000c28: 00c12b83 lw s7,12(sp) +80000c2c: 00812c03 lw s8,8(sp) +80000c30: 03010113 addi sp,sp,48 +80000c34: 00008067 ret +80000c38: 00492783 lw a5,4(s2) +80000c3c: 0044a683 lw a3,4(s1) +80000c40: fff78793 addi a5,a5,-1 +80000c44: 04878a63 beq a5,s0,80000c98 <__call_exitprocs+0x104> +80000c48: 0004a223 sw zero,4(s1) +80000c4c: fa0688e3 beqz a3,80000bfc <__call_exitprocs+0x68> +80000c50: 18892783 lw a5,392(s2) +80000c54: 008a1733 sll a4,s4,s0 +80000c58: 00492b83 lw s7,4(s2) +80000c5c: 00f777b3 and a5,a4,a5 +80000c60: 00079e63 bnez a5,80000c7c <__call_exitprocs+0xe8> +80000c64: 000680e7 jalr a3 +80000c68: 00492783 lw a5,4(s2) +80000c6c: f77794e3 bne a5,s7,80000bd4 <__call_exitprocs+0x40> +80000c70: 148c2783 lw a5,328(s8) +80000c74: f92784e3 beq a5,s2,80000bfc <__call_exitprocs+0x68> +80000c78: f5dff06f j 80000bd4 <__call_exitprocs+0x40> +80000c7c: 18c92783 lw a5,396(s2) +80000c80: 0844a583 lw a1,132(s1) +80000c84: 00f77733 and a4,a4,a5 +80000c88: 00071c63 bnez a4,80000ca0 <__call_exitprocs+0x10c> +80000c8c: 000a8513 mv a0,s5 +80000c90: 000680e7 jalr a3 +80000c94: fd5ff06f j 80000c68 <__call_exitprocs+0xd4> +80000c98: 00892223 sw s0,4(s2) +80000c9c: fb1ff06f j 80000c4c <__call_exitprocs+0xb8> +80000ca0: 00058513 mv a0,a1 +80000ca4: 000680e7 jalr a3 +80000ca8: fc1ff06f j 80000c68 <__call_exitprocs+0xd4> Disassembly of section .rodata: -80000c90 <.rodata>: -80000c90: 0030 addi a2,sp,8 -80000c92: 0000 unimp -80000c94: 0031 c.nop 12 -80000c96: 0000 unimp -80000c98: 0032 c.slli zero,0xc -80000c9a: 0000 unimp -80000c9c: 00000033 add zero,zero,zero -80000ca0: 0034 addi a3,sp,8 -80000ca2: 0000 unimp -80000ca4: 0035 c.nop 13 -80000ca6: 0000 unimp -80000ca8: 0036 c.slli zero,0xd -80000caa: 0000 unimp -80000cac: 00000037 lui zero,0x0 -80000cb0: 0038 addi a4,sp,8 +80000cac <.rodata>: +80000cac: 0030 addi a2,sp,8 +80000cae: 0000 unimp +80000cb0: 0031 c.nop 12 80000cb2: 0000 unimp -80000cb4: 0039 c.nop 14 +80000cb4: 0032 c.slli zero,0xc 80000cb6: 0000 unimp -80000cb8: 0061 c.nop 24 -80000cba: 0000 unimp -80000cbc: 0062 c.slli zero,0x18 +80000cb8: 00000033 add zero,zero,zero +80000cbc: 0034 addi a3,sp,8 80000cbe: 0000 unimp -80000cc0: 00000063 beqz zero,80000cc0 <__call_exitprocs+0x148> -80000cc4: 0064 addi s1,sp,12 +80000cc0: 0035 c.nop 13 +80000cc2: 0000 unimp +80000cc4: 0036 c.slli zero,0xd 80000cc6: 0000 unimp -80000cc8: 0065 c.nop 25 -80000cca: 0000 unimp -80000ccc: 0066 c.slli zero,0x19 +80000cc8: 00000037 lui zero,0x0 +80000ccc: 0038 addi a4,sp,8 80000cce: 0000 unimp -80000cd0: 6548 flw fa0,12(a0) -80000cd2: 6c6c flw fa1,92(s0) -80000cd4: 7266206f j 800633fa <__global_pointer$+0x61bf2> -80000cd8: 5f206d6f jal s10,800072ca <__global_pointer$+0x5ac2> -80000cdc: 7369 lui t1,0xffffa -80000cde: 7461 lui s0,0xffff8 -80000ce0: 7974 flw fa3,116(a0) -80000ce2: 000a c.slli zero,0x2 -80000ce4: 5245 li tp,-15 -80000ce6: 4f52 lw t5,20(sp) -80000ce8: 3a52 fld fs4,304(sp) -80000cea: 5f20 lw s0,120(a4) -80000cec: 6c6c696b 0x6c6c696b -80000cf0: 6e20 flw fs0,88(a2) -80000cf2: 7920746f jal s0,80008484 <__global_pointer$+0x6c7c> -80000cf6: 7465 lui s0,0xffff9 -80000cf8: 6920 flw fs0,80(a0) -80000cfa: 706d c.lui zero,0xffffb -80000cfc: 656c flw fa1,76(a0) -80000cfe: 656d lui a0,0x1b -80000d00: 746e flw fs0,248(sp) -80000d02: 6465 lui s0,0x19 -80000d04: 000a c.slli zero,0x2 -80000d06: 0000 unimp -80000d08: 5245 li tp,-15 -80000d0a: 4f52 lw t5,20(sp) -80000d0c: 3a52 fld fs4,304(sp) -80000d0e: 5f20 lw s0,120(a4) -80000d10: 6e75 lui t3,0x1d -80000d12: 696c flw fa1,84(a0) -80000d14: 6b6e flw fs6,216(sp) -80000d16: 6e20 flw fs0,88(a2) -80000d18: 7920746f jal s0,800084aa <__global_pointer$+0x6ca2> -80000d1c: 7465 lui s0,0xffff9 -80000d1e: 6920 flw fs0,80(a0) -80000d20: 706d c.lui zero,0xffffb -80000d22: 656c flw fa1,76(a0) -80000d24: 656d lui a0,0x1b -80000d26: 746e flw fs0,248(sp) -80000d28: 6465 lui s0,0x19 -80000d2a: 000a c.slli zero,0x2 -80000d2c: 5245 li tp,-15 -80000d2e: 4f52 lw t5,20(sp) -80000d30: 3a52 fld fs4,304(sp) -80000d32: 5f20 lw s0,120(a4) -80000d34: 74746567 0x74746567 -80000d38: 6d69 lui s10,0x1a -80000d3a: 6f65 lui t5,0x19 -80000d3c: 6466 flw fs0,88(sp) -80000d3e: 7961 lui s2,0xffff8 -80000d40: 6e20 flw fs0,88(a2) -80000d42: 7920746f jal s0,800084d4 <__global_pointer$+0x6ccc> -80000d46: 7465 lui s0,0xffff9 -80000d48: 6920 flw fs0,80(a0) -80000d4a: 706d c.lui zero,0xffffb -80000d4c: 656c flw fa1,76(a0) -80000d4e: 656d lui a0,0x1b -80000d50: 746e flw fs0,248(sp) -80000d52: 6465 lui s0,0x19 -80000d54: 000a c.slli zero,0x2 -80000d56: 0000 unimp -80000d58: 5245 li tp,-15 -80000d5a: 4f52 lw t5,20(sp) -80000d5c: 3a52 fld fs4,304(sp) -80000d5e: 5f20 lw s0,120(a4) -80000d60: 696c flw fa1,84(a0) -80000d62: 6b6e flw fs6,216(sp) -80000d64: 6e20 flw fs0,88(a2) -80000d66: 7920746f jal s0,800084f8 <__global_pointer$+0x6cf0> -80000d6a: 7465 lui s0,0xffff9 -80000d6c: 6920 flw fs0,80(a0) -80000d6e: 706d c.lui zero,0xffffb -80000d70: 656c flw fa1,76(a0) -80000d72: 656d lui a0,0x1b -80000d74: 746e flw fs0,248(sp) -80000d76: 6465 lui s0,0x19 -80000d78: 000a c.slli zero,0x2 +80000cd0: 0039 c.nop 14 +80000cd2: 0000 unimp +80000cd4: 0061 c.nop 24 +80000cd6: 0000 unimp +80000cd8: 0062 c.slli zero,0x18 +80000cda: 0000 unimp +80000cdc: 00000063 beqz zero,80000cdc <__call_exitprocs+0x148> +80000ce0: 0064 addi s1,sp,12 +80000ce2: 0000 unimp +80000ce4: 0065 c.nop 25 +80000ce6: 0000 unimp +80000ce8: 0066 c.slli zero,0x19 +80000cea: 0000 unimp +80000cec: 6548 flw fa0,12(a0) +80000cee: 6c6c flw fa1,92(s0) +80000cf0: 7266206f j 80063416 <__global_pointer$+0x61c0e> +80000cf4: 5f206d6f jal s10,800072e6 <__global_pointer$+0x5ade> +80000cf8: 7369 lui t1,0xffffa +80000cfa: 7461 lui s0,0xffff8 +80000cfc: 7974 flw fa3,116(a0) +80000cfe: 000a c.slli zero,0x2 +80000d00: 5245 li tp,-15 +80000d02: 4f52 lw t5,20(sp) +80000d04: 3a52 fld fs4,304(sp) +80000d06: 5f20 lw s0,120(a4) +80000d08: 6c6c696b 0x6c6c696b +80000d0c: 6e20 flw fs0,88(a2) +80000d0e: 7920746f jal s0,800084a0 <__global_pointer$+0x6c98> +80000d12: 7465 lui s0,0xffff9 +80000d14: 6920 flw fs0,80(a0) +80000d16: 706d c.lui zero,0xffffb +80000d18: 656c flw fa1,76(a0) +80000d1a: 656d lui a0,0x1b +80000d1c: 746e flw fs0,248(sp) +80000d1e: 6465 lui s0,0x19 +80000d20: 000a c.slli zero,0x2 +80000d22: 0000 unimp +80000d24: 5245 li tp,-15 +80000d26: 4f52 lw t5,20(sp) +80000d28: 3a52 fld fs4,304(sp) +80000d2a: 5f20 lw s0,120(a4) +80000d2c: 6e75 lui t3,0x1d +80000d2e: 696c flw fa1,84(a0) +80000d30: 6b6e flw fs6,216(sp) +80000d32: 6e20 flw fs0,88(a2) +80000d34: 7920746f jal s0,800084c6 <__global_pointer$+0x6cbe> +80000d38: 7465 lui s0,0xffff9 +80000d3a: 6920 flw fs0,80(a0) +80000d3c: 706d c.lui zero,0xffffb +80000d3e: 656c flw fa1,76(a0) +80000d40: 656d lui a0,0x1b +80000d42: 746e flw fs0,248(sp) +80000d44: 6465 lui s0,0x19 +80000d46: 000a c.slli zero,0x2 +80000d48: 5245 li tp,-15 +80000d4a: 4f52 lw t5,20(sp) +80000d4c: 3a52 fld fs4,304(sp) +80000d4e: 5f20 lw s0,120(a4) +80000d50: 74746567 0x74746567 +80000d54: 6d69 lui s10,0x1a +80000d56: 6f65 lui t5,0x19 +80000d58: 6466 flw fs0,88(sp) +80000d5a: 7961 lui s2,0xffff8 +80000d5c: 6e20 flw fs0,88(a2) +80000d5e: 7920746f jal s0,800084f0 <__global_pointer$+0x6ce8> +80000d62: 7465 lui s0,0xffff9 +80000d64: 6920 flw fs0,80(a0) +80000d66: 706d c.lui zero,0xffffb +80000d68: 656c flw fa1,76(a0) +80000d6a: 656d lui a0,0x1b +80000d6c: 746e flw fs0,248(sp) +80000d6e: 6465 lui s0,0x19 +80000d70: 000a c.slli zero,0x2 +80000d72: 0000 unimp +80000d74: 5245 li tp,-15 +80000d76: 4f52 lw t5,20(sp) +80000d78: 3a52 fld fs4,304(sp) +80000d7a: 5f20 lw s0,120(a4) +80000d7c: 696c flw fa1,84(a0) +80000d7e: 6b6e flw fs6,216(sp) +80000d80: 6e20 flw fs0,88(a2) +80000d82: 7920746f jal s0,80008514 <__global_pointer$+0x6d0c> +80000d86: 7465 lui s0,0xffff9 +80000d88: 6920 flw fs0,80(a0) +80000d8a: 706d c.lui zero,0xffffb +80000d8c: 656c flw fa1,76(a0) +80000d8e: 656d lui a0,0x1b +80000d90: 746e flw fs0,248(sp) +80000d92: 6465 lui s0,0x19 +80000d94: 000a c.slli zero,0x2 Disassembly of section .init_array: diff --git a/runtime/mains/vector_test/vx_vector_main.elf b/runtime/mains/vector_test/vx_vector_main.elf index 022fd71f8d7cef8eeb13a656b54877c8722d3f75..d2144fac7c90d68d17d33b0c6a54003d953bfdc0 100755 GIT binary patch delta 746 zcmYk4PiPZC6vp39y4hG-&0n{N>O|@xm!=H}rNu)dhT4M=t>Qt2lz1pQ<0*j`U7q+^sIe?fE((g;R&w0eB_n={%qakexS8YrZWo9%)Xi2OlIr!~ zUhd>6!x7#f+2i1k#7XSU^LYLUh*eqKAhq8O;)~=1;$;=Yl;kGyY09T0A7ua$tmL^5 z9KB7w1zhrZeA+kNTu*v!EAow;ZhE+_E%!lmP5Gn27+j9B^?2CpUtGv~kN delta 721 zcmYk4OK1~O6o${-WHPCwnpYhctygj3s;R}GQe32{*x&__n-g#=g!P^mYB1| ztmCRV2w=WQ|J*TQjp#!FF}2$0Kr2XhG^VEDDyYzbu-_oLgcbWDxVJONJj?DAO#o$(vhW&pi*k|UsqJ*$m z=E_%WlzF75ZCRpZDJcMLTrKk`g^47kx#~Sq|7!TBynC-H^IUm_9LVWYw$8-3a1q?T~C!p94=F)u4ksAj?*r;;$ z%a6~iiQDT`^vo?Pw&^83{!Z-g+sF^%9EE$sy2MF8h*vUvlX!zZir3$Bnf}fTPxbrkAJn0rk^lez diff --git a/runtime/mains/vector_test/vx_vector_main.hex b/runtime/mains/vector_test/vx_vector_main.hex index 1d2e793e..50e2c3dd 100644 --- a/runtime/mains/vector_test/vx_vector_main.hex +++ b/runtime/mains/vector_test/vx_vector_main.hex @@ -1,220 +1,222 @@ :0200000480007A :10000000970500009385C506130540006B10B500E9 :10001000EF00C005130510006B000500138581C3B8 -:100020001386C1C33306A64093050000EF00901D60 -:10003000171500001305858DEF00D008EF00D012D2 -:10004000130540006B000500EF0010046F00D0089E +:100020001386C1C33306A64093050000EF00501F9E +:10003000171500001305458FEF00900AEF0090148C +:10004000130540006B000500EF00D0056F00900A1B :10005000B707000093870700638807003715008003 -:10006000130585906F00100667800000130540009F +:10006000130545926F00D00767800000130540001C :100070006B0005009711000093814179F32610026F :100080009396A601732600029315A6001316260068 :1000900037F1FF6F3301B1403301D1403301C1006B :1000A000F326100263860600130500006B000500AE :1000B0006780000013052000D77285001305A0009B -:1000C00023A0A50023A0A50207E005125700000207 -:1000D00027E0050267800000130101FD232681024D -:1000E00013040103232EA4FC232CB4FC232AC4FCF8 -:1000F0008327C4FD83A707002326F4FE930744FD4E -:100100002322F4FE832744FE03C707008327C4FE8F -:100110002380E7008327C4FE93871700032744FE4C -:10012000034717002380E7008327C4FE9387270037 -:10013000032744FE034727002380E7008327C4FEEC -:1001400093873700032744FE034737002380E700E7 -:100150008327C4FE938747002326F4FE232404FE4E -:100160006F004003832784FE032784FDB307F70055 -:1001700003C707008327C4FE2380E7008327C4FE4C -:10018000938717002326F4FE832784FE93871700A6 -:100190002324F4FE832744FD032784FEE344F7FC75 -:1001A0008327C4FE2320F4FE832704FE93F7370041 -:1001B000032704FEB307F7002320F4FE832704FE81 -:1001C0002326F4FE8327C4FD0327C4FE23A0E700F3 -:1001D000130000000324C102130101036780000023 -:1001E000130101FC232E8102130401042326A4FC25 -:1001F0002324B4FC8327C4FC83A707002326F4FE32 -:100200009307C4FD2322F4FE8327C4FE03C707001F -:10021000832744FE2380E700832744FE938717004B -:100220000327C4FE034717002380E700832744FE0B -:10023000938727000327C4FE034727002380E70096 -:10024000832744FE938737000327C4FE0347370004 -:100250002380E7008327C4FE938747002326F4FE0C -:10026000232404FE6F004003832784FE032784FCBD -:10027000B307F7000327C4FE034707002380E70006 -:100280008327C4FE938717002326F4FE832784FE6A -:10029000938717002324F4FE8327C4FD032784FEDD -:1002A000E344F7FC8327C4FE2320F4FE832704FEE7 -:1002B00093F73700032704FEB307F7002320F4FE6B -:1002C000832704FE2326F4FE8327C4FC0327C4FEF1 -:1002D00023A0E700130000000324C103130101045D -:1002E00067800000130101FF232681001304010130 -:1002F000130000000324C100130101016780000006 -:10030000130101FE232E8100130401022326A4FE03 -:100310002324B4FE832784FE3727000023A2E700AE -:1003200093070000138507000324C1011301010294 -:1003300067800000130101FE232E1100232C810091 -:10034000130401022326A4FEB7170080138507CDEE -:10035000EF00C04F93071000138507008320C101F1 -:10036000032481011301010267800000130101FDD4 -:10037000232611022324810213040103232EA4FC4B -:10038000232CB4FC232AC4FCB70700712326F4FEF7 -:10039000B70700722324F4FE930730002322F4FEF3 -:1003A000130744FE9307C4FE13064000930507009D -:1003B00013850700EFF05FD21307C4FD9307C4FE57 -:1003C000130640009305070013850700EFF0DFD008 -:1003D000130784FD9307C4FE13064000930507002E -:1003E00013850700EFF05FCF130744FD9307C4FEAA -:1003F000130640009305070013850700EFF0DFCDDB -:1004000083A7C1C2E7800700130704FE930784FE99 -:100410009305070013850700EFF09FDC832704FE98 -:10042000138507008320C102032481021301010305 -:1004300067800000130101FD23261102232481029D -:1004400013040103232EA4FC232CB4FC232AC4FC94 -:10045000B70700712324F4FEB70700722326F4FEC9 -:10046000930740002322F4FE130744FE930784FE03 -:10047000130640009305070013850700EFF0DFC562 -:100480001307C4FD930784FE13064000930507007D -:1004900013850700EFF05FC4130784FD930784FE04 -:1004A000130640009305070013850700EFF0DFC235 -:1004B000130744FD930784FE1306400093050700CD -:1004C00013850700EFF05FC183A7C1C2E780070073 -:1004D000832744FD138507008320C1020324810282 -:1004E0001301010367800000130101FD232611029F -:1004F0002324810213040103232EA4FC232CB4FC27 -:10050000232AC4FCB70700712326F4FE930750008A -:100510002324F4FE130784FE9307C4FE1306400051 -:100520009305070013850700EFF01FBB1307C4FDF9 -:100530009307C4FE130640009305070013850700C8 -:10054000EFF09FB99307C4FE032644FD832584FD85 -:1005500013850700EFF05FB883A7C1C2E7800700EB -:10056000832744FD138507008320C10203248102F1 -:100570001301010367800000130101FD232681029E -:1005800013040103232EA4FC8327C4FD63D80700B2 -:100590008327C4FDB307F040232EF4FC0327C4FDDA -:1005A000B73700009387078063D8E700B7370000AC -:1005B00093870780232EF4FC83A701C32326F4FE30 -:1005C00003A701C38327C4FD3307F70023A8E1C2B3 -:1005D0008327C4FE138507000324C102130101030E -:1005E00067800000130101FE232E1100232C8100DF -:1005F000130401022326A4FE13050000EF00001ED1 -:10060000130000008320C1010324810113010102B2 -:1006100067800000130101FD2326110223248102BB -:1006200013040103232EA4FC232CB4FC232AC4FCB2 -:10063000B70700712326F4FEB70700722324F4FEE7 -:10064000930770002322F4FE130744FE9307C4FEB1 -:10065000130640009305070013850700EFF0DFA79E -:100660001307C4FD9307C4FE13064000930507005B -:1006700013850700EFF05FA6130784FD9307C4FE00 -:10068000130640009305070013850700EFF0DFA471 -:10069000130744FD9307C4FE1306400093050700AB -:1006A00013850700EFF05FA383A7C1C2E7800700AF -:1006B000130704FE930784FE9305070013850700C4 -:1006C000EFF01FB2832704FE138507008320C102C9 -:1006D000032481021301010367800000130101FF5D -:1006E000232611002324810013040101B717008081 -:1006F000138547CEEF008015130000008320C10052 -:10070000032481001301010167800000130101FF30 -:10071000232611002324810013040101EF00800E21 -:1007200093070500138507008320C100032481007F -:100730001301010167800000130101FF232611004E -:100740002324810013040101B7170080138587D08B -:10075000EF00C00F130000008320C10003248100BC -:100760001301010167800000130101FF232611001E -:100770002324810013040101B71700801385C7D219 -:10078000EF00C00C83A781C39386170023ACD1C2AE -:10079000138507008320C100032481001301010198 -:1007A00067800000130101FF23261100232481002C -:1007B00013040101B7170080138587D5EF000009E6 -:1007C000130000008320C1000324810013010101F4 -:1007D000678000006B10B500678000006B000500AB -:1007E000678000006B40B500678000006B2005004B -:1007F000678000006B3000006780000073251002E6 -:100800006780000073250002678000001305400028 -:100810006B000500F32610029396F6007326000283 -:100820009315A6001316260037F1FF6F3301B14070 -:100830003301D1403301C100F32610026386060064 -:10084000130500006B00050067800000130141FFE5 -:10085000232011002322B100834505006388050091 -:10086000EF00C001130515006FF01FFF832001008A -:10087000832541001301C10067800000B702010019 -:1008800023A0B20067800000130101FF232611009E -:10089000232481001304010113051000EFF01FF45D -:1008A000EFF05F8113050000EFF05FF3130000002D -:1008B000138507008320C100032481001301010177 -:1008C00067800000930505009306000013060000F2 -:1008D000130500006F00C020130101FF9305000005 -:1008E000232481002326110013040500EF00C028F3 -:1008F00003A581C28327C50363840700E78007003F -:1009000013050400EFF01FCE130101FF2324810023 -:100910002322910037140080B7140080938744008D -:10092000130444003304F4402326110013542440DC -:1009300063020402931424009384C4FFB384F4007C -:1009400083A704001304F4FF9384C4FFE780070027 -:10095000E31804FE8320C1000324810083244100A6 -:100960001301010167800000130101FF23248100AE -:1009700023202101371400803719008093070400D9 -:10098000130909003309F94023261100232291009D -:100990001359294063000902130404009304000062 -:1009A000832704009384140013044400E7800700A5 -:1009B000E31899FE3714008037190080930704006C -:1009C000130949003309F94013592940630009020A -:1009D000130404009304000083270400938414008C -:1009E00013044400E7800700E31899FE8320C10048 -:1009F0000324810083244100032901001301010124 -:100A0000678000001303F00013070500637EC30234 -:100A10009377F7006390070A63920508937606FFC1 -:100A20001376F600B386E6002320B7002322B70032 -:100A30002324B7002326B70013070701E366D7FE78 -:100A40006314060067800000B306C3409396260037 -:100A500097020000B38656006780C6002307B700E0 -:100A6000A306B7002306B700A305B7002305B70008 -:100A7000A304B7002304B700A303B7002303B70000 -:100A8000A302B7002302B700A301B7002301B700F8 -:100A9000A300B7002300B7006780000093F5F50FAF -:100AA00093968500B3E5D50093960501B3E5D5008F -:100AB0006FF0DFF69396270097020000B38656008A -:100AC00093820000E78006FA93800200938707FF75 -:100AD0003307F7403306F600E378C3F66FF0DFF331 -:100AE00003A781C283278714638C070403A74700E9 -:100AF0001308F001634EE806131827006306050289 -:100B0000338307012324C30883A887181306100022 -:100B10003316E600B3E8C80023A417192324D31022 -:100B2000930620006304D5021307170023A2E700F1 -:100B3000B387070123A4B7001305000067800000F6 -:100B40009307C7142324F7146FF05FFA83A6C7181E -:100B50001307170023A2E70033E6C60023A6C71831 -:100B6000B387070123A4B7001305000067800000C6 -:100B70001305F0FF67800000130101FD23248101AC -:100B800003AC81C2232E3101232C4101232A5101C0 -:100B900023286101232611022324810223229102AA -:100BA0002320210323267101930A0500138B0500DE -:100BB000130A10009309F0FF03298C14630809023B -:100BC000832449001384F4FF6342040293942400B5 -:100BD000B304990063040B0483A744106380670582 -:100BE0001304F4FF9384C4FFE31634FF8320C1028F -:100BF0000324810283244102032901028329C101C4 -:100C0000032A8101832A4101032B0101832BC100A7 -:100C1000032C810013010103678000008327490032 -:100C200083A644009387F7FF638A870423A2040006 -:100C3000E38806FA8327891833178A00832B490033 -:100C4000B377F700639E0700E7800600832749001B -:100C5000E39477F783278C14E38427F96FF0DFF5AB -:100C60008327C91883A544083377F700631C07005E -:100C700013850A00E78006006FF05FFD23228900DC -:100C80006FF01FFB13850500E78006006FF01FFC67 -:100C9000300000003100000032000000330000008E -:100CA000340000003500000036000000370000006E -:100CB0003800000039000000610000006200000000 -:100CC0006300000064000000650000006600000092 -:100CD00048656C6C6F2066726F6D205F697361741C -:100CE00074790A004552524F523A205F6B696C6C1E -:100CF000206E6F742079657420696D706C656D6508 -:100D00006E7465640A0000004552524F523A205FEB -:100D1000756E6C696E6B206E6F74207965742069D6 -:100D20006D706C656D656E7465640A004552524F56 -:100D3000523A205F67657474696D656F66646179A6 -:100D4000206E6F742079657420696D706C656D65B7 -:100D50006E7465640A0000004552524F523A205F9B -:100D60006C696E6B206E6F742079657420696D708C -:0A0D70006C656D656E7465640A0021 +:1000C00023A0A50023A0A50287E0051213061000B7 +:1000D00023A0C6001306000023A0C60207E00612F4 +:1000E00057A0016AD7801000A7E0050287E2051239 +:1000F00067800000130101FD232681021304010320 +:10010000232EA4FC232CB4FC232AC4FC8327C4FD87 +:1001100083A707002326F4FE930744FD2322F4FE61 +:10012000832744FE03C707008327C4FE2380E7001C +:100130008327C4FE93871700032744FE0347170055 +:100140002380E7008327C4FE93872700032744FE0C +:10015000034727002380E7008327C4FE93873700E7 +:10016000032744FE034737002380E7008327C4FEAC +:10017000938747002326F4FE232404FE6F004003E8 +:10018000832784FE032784FDB307F70003C7070016 +:100190008327C4FE2380E7008327C4FE93871700CC +:1001A0002326F4FE832784FE938717002324F4FE7E +:1001B000832744FD032784FEE344F7FC8327C4FE22 +:1001C0002320F4FE832704FE93F73700032704FE61 +:1001D000B307F7002320F4FE832704FE2326F4FE52 +:1001E0008327C4FD0327C4FE23A0E70013000000FB +:1001F0000324C1021301010367800000130101FC05 +:10020000232E8102130401042326A4FC2324B4FC1E +:100210008327C4FC83A707002326F4FE9307C4FDAD +:100220002322F4FE8327C4FE03C70700832744FE6E +:100230002380E700832744FE938717000327C4FE2B +:10024000034717002380E700832744FE9387270096 +:100250000327C4FE034727002380E700832744FECB +:10026000938737000327C4FE034737002380E70046 +:100270008327C4FE938747002326F4FE232404FE2D +:100280006F004003832784FE032784FCB307F70035 +:100290000327C4FE034707002380E7008327C4FE2B +:1002A000938717002326F4FE832784FE9387170085 +:1002B0002324F4FE8327C4FD032784FEE344F7FCD4 +:1002C0008327C4FE2320F4FE832704FE93F7370020 +:1002D000032704FEB307F7002320F4FE832704FE60 +:1002E0002326F4FE8327C4FC0327C4FE23A0E700D3 +:1002F000130000000324C103130101046780000000 +:10030000130101FF232681001304010113000000E3 +:100310000324C1001301010167800000130101FEE5 +:10032000232E8100130401022326A4FE2324B4FEFD +:10033000832784FE3727000023A2E70093070000ED +:10034000138507000324C101130101026780000027 +:10035000130101FE232E1100232C8100130401023E +:100360002326A4FEB71700801385C7CEEF00C04F29 +:1003700093071000138507008320C1010324810126 +:100380001301010267800000130101FD2326110201 +:100390002324810213040103232EA4FC232CB4FC88 +:1003A000232AC4FCB70700712326F4FEB7070072A6 +:1003B0002324F4FE930730002322F4FE130744FEA7 +:1003C0009307C4FE1306400093050700138507003A +:1003D000EFF05FD21307C4FD9307C4FE130640007D +:1003E0009305070013850700EFF0DFD0130784FDA6 +:1003F0009307C4FE1306400093050700138507000A +:10040000EFF05FCF130744FD9307C4FE13064000CF +:100410009305070013850700EFF0DFCD83A7C1C266 +:10042000E7800700130704FE930784FE9305070087 +:1004300013850700EFF09FDC832704FE1385070078 +:100440008320C1020324810213010103678000009D +:10045000130101FD23261102232481021304010349 +:10046000232EA4FC232CB4FC232AC4FCB707007160 +:100470002324F4FEB70700722326F4FE93074000FE +:100480002322F4FE130744FE930784FE1306400064 +:100490009305070013850700EFF0DFC51307C4FDC0 +:1004A000930784FE13064000930507001385070099 +:1004B000EFF05FC4130784FD930784FE130640002A +:1004C0009305070013850700EFF0DFC2130744FD13 +:1004D000930784FE13064000930507001385070069 +:1004E000EFF05FC183A7C1C2E7800700832744FD07 +:1004F000138507008320C102032481021301010335 +:1005000067800000130101FD2326110223248102CC +:1005100013040103232EA4FC232CB4FC232AC4FCC3 +:10052000B70700712326F4FE930750002324F4FE3E +:10053000130784FE9307C4FE1306400093050700CB +:1005400013850700EFF01FBB1307C4FD9307C4FE1C +:10055000130640009305070013850700EFF09FB9CD +:100560009307C4FE032644FD832584FD13850700FD +:10057000EFF05FB883A7C1C2E7800700832744FD7F +:10058000138507008320C1020324810213010103A4 +:1005900067800000130101FD23268102130401037B +:1005A000232EA4FC8327C4FD63D807008327C4FD42 +:1005B000B307F040232EF4FC0327C4FDB737000037 +:1005C0009387078063D8E700B737000093870780D9 +:1005D000232EF4FC83A701C32326F4FE03A701C343 +:1005E0008327C4FD3307F70023A8E1C28327C4FE95 +:1005F000138507000324C102130101036780000073 +:10060000130101FE232E1100232C8100130401028B +:100610002326A4FE13050000EF00001E13000000B7 +:100620008320C101032481011301010267800000BE +:10063000130101FD23261102232481021304010367 +:10064000232EA4FC232CB4FC232AC4FCB70700717E +:100650002326F4FEB70700722324F4FE93077000EC +:100660002322F4FE130744FE9307C4FE1306400042 +:100670009305070013850700EFF0DFA71307C4FDFC +:100680009307C4FE13064000930507001385070077 +:10069000EFF05FA6130784FD9307C4FE1306400026 +:1006A0009305070013850700EFF0DFA4130744FD4F +:1006B0009307C4FE13064000930507001385070047 +:1006C000EFF05FA383A7C1C2E7800700130704FE12 +:1006D000930784FE9305070013850700EFF01FB210 +:1006E000832704FE138507008320C10203248102AF +:1006F0001301010367800000130101FF232611008D +:100700002324810013040101B7170080138507D04B +:10071000EF008015130000008320C1000324810036 +:100720001301010167800000130101FF232611005E +:100730002324810013040101EF00800E93070500BC +:10074000138507008320C1000324810013010101E8 +:1007500067800000130101FF23261100232481007C +:1007600013040101B7170080138547D2EF00C00FB3 +:10077000130000008320C100032481001301010144 +:1007800067800000130101FF23261100232481004C +:1007900013040101B7170080138587D4EF00C00C44 +:1007A00083A781C39386170023ACD1C213850700AA +:1007B0008320C10003248100130101016780000030 +:1007C000130101FF232611002324810013040101DA +:1007D000B7170080138547D7EF000009130000000A +:1007E0008320C10003248100130101016780000000 +:1007F0006B10B500678000006B000500678000008B +:100800006B40B500678000006B200500678000002A +:100810006B300000678000007325100267800000C5 +:100820007325000267800000130540006B0005007F +:10083000F32610029396F600732600029315A60085 +:100840001316260037F1FF6F3301B1403301D14059 +:100850003301C100F3261002638606001305000071 +:100860006B00050067800000130141FF2320110089 +:100870002322B1008345050063880500EF00C00115 +:10088000130515006FF01FFF832001008325410031 +:100890001301C10067800000B702010023A0B2006D +:1008A00067800000130101FF23261100232481002B +:1008B0001304010113051000EFF01FF4EFF08FFF98 +:1008C00013050000EFF05FF313000000138507002D +:1008D0008320C1000324810013010101678000000F +:1008E00093050500930600001306000013050000A1 +:1008F0006F00C020130101FF930500002324810035 +:100900002326110013040500EF00C02803A581C2AF +:100910008327C50363840700E780070013050400ED +:10092000EFF01FCE130101FF232481002322910049 +:1009300037140080B71400809387440013044400E8 +:100940003304F440232611001354244063020402AC +:10095000931424009384C4FFB384F40083A7040099 +:100960001304F4FF9384C4FFE7800700E31804FE38 +:100970008320C1000324810083244100130101016D +:1009800067800000130101FF23248100232021013F +:1009900037140080371900809307040013090900F9 +:1009A0003309F940232611002322910013592940CD +:1009B0006300090213040400930400008327040069 +:1009C0009384140013044400E7800700E31899FEA1 +:1009D0003714008037190080930704001309490079 +:1009E0003309F94013592940630009021304040034 +:1009F000930400008327040093841400130444002C +:100A0000E7800700E31899FE8320C10003248100DA +:100A100083244100032901001301010167800000C4 +:100A20001303F00013070500637EC3029377F700FA +:100A30006390070A63920508937606FF1376F60023 +:100A4000B386E6002320B7002322B7002324B70093 +:100A50002326B70013070701E366D7FE63140600D9 +:100A600067800000B306C3409396260097020000FB +:100A7000B38656006780C6002307B700A306B700F9 +:100A80002306B700A305B7002305B700A304B700EA +:100A90002304B700A303B7002303B700A302B700E2 +:100AA0002302B700A301B7002301B700A300B700DA +:100AB0002300B7006780000093F5F50F939685003B +:100AC000B3E5D50093960501B3E5D5006FF0DFF6E9 +:100AD0009396270097020000B38656009382000089 +:100AE000E78006FA93800200938707FF3307F740F9 +:100AF0003306F600E378C3F66FF0DFF303A781C295 +:100B000083278714638C070403A747001308F001A9 +:100B1000634EE806131827006306050233830701B6 +:100B20002324C30883A88718130610003316E60091 +:100B3000B3E8C80023A417192324D3109306200078 +:100B40006304D5021307170023A2E700B387070148 +:100B500023A4B70013050000678000009307C714A3 +:100B60002324F7146FF05FFA83A6C7181307170042 +:100B700023A2E70033E6C60023A6C718B387070100 +:100B800023A4B70013050000678000001305F0FFE1 +:100B900067800000130101FD2324810103AC81C2A1 +:100BA000232E3101232C4101232A510123286101E5 +:100BB00023261102232481022322910223202103D0 +:100BC00023267101930A0500138B0500130A1000F8 +:100BD0009309F0FF03298C14630809028324490058 +:100BE0001384F4FF6342040293942400B304990035 +:100BF00063040B0483A74410638067051304F4FFA8 +:100C00009384C4FFE31634FF8320C10203248102CE +:100C100083244102032901028329C101032A81019E +:100C2000832A4101032B0101832BC100032C810086 +:100C300013010103678000008327490083A6440055 +:100C40009387F7FF638A870423A20400E38806FAE8 +:100C50008327891833178A00832B4900B377F7005D +:100C6000639E0700E780060083274900E39477F737 +:100C700083278C14E38427F96FF0DFF58327C918E5 +:100C800083A544083377F700631C070013850A0027 +:100C9000E78006006FF05FFD232289006FF01FFBE5 +:0C0CA00013850500E78006006FF01FFCC4 +:100CAC003000000031000000320000003300000072 +:100CBC003400000035000000360000003700000052 +:100CCC0038000000390000006100000062000000E4 +:100CDC006300000064000000650000006600000076 +:100CEC0048656C6C6F2066726F6D205F6973617400 +:100CFC0074790A004552524F523A205F6B696C6C02 +:100D0C00206E6F742079657420696D706C656D65EB +:100D1C006E7465640A0000004552524F523A205FCF +:100D2C00756E6C696E6B206E6F74207965742069BA +:100D3C006D706C656D656E7465640A004552524F3A +:100D4C00523A205F67657474696D656F666461798A +:100D5C00206E6F742079657420696D706C656D659B +:100D6C006E7465640A0000004552524F523A205F7F +:100D7C006C696E6B206E6F742079657420696D7070 +:0A0D8C006C656D656E7465640A0005 :04100000500000801C :1010080000000000F41200805C130080C41300800C :1010180000000000000000000000000000000000C8 diff --git a/simX/instruction.cpp b/simX/instruction.cpp index f1d6100d..4da4272e 100644 --- a/simX/instruction.cpp +++ b/simX/instruction.cpp @@ -1102,25 +1102,60 @@ void Instruction::executeOn(Warp &c, trace_inst_t * trace_inst) { vector> vr1 = c.vreg[rsrc[0]]; vector> vr2 = c.vreg[rsrc[1]]; vector> vd = c.vreg[rdest]; + vector> mask = c.vreg[0]; if (c.vtype.vsew == 8) { + for (uint8_t i = 0; i < c.vl; i++) + { + uint8_t *mask_ptr = (uint8_t*) mask[i].val; + uint8_t value = (*mask_ptr & 0x1); + if(vmask || (!vmask && value)){ + uint8_t * first_ptr = (uint8_t *) vr1[i].val; + uint8_t * second_ptr = (uint8_t *) vr2[i].val; + uint8_t result = *first_ptr + *second_ptr; + cout << "Adding " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint8_t * result_ptr = (uint8_t *) vd[i].val; + *result_ptr = result; + } + + } } else if (c.vtype.vsew == 16) { + for (uint16_t i = 0; i < c.vl; i++) + { + uint16_t *mask_ptr = (uint16_t*) mask[i].val; + uint16_t value = (*mask_ptr & 0x1); + if(vmask || (!vmask && value)){ + uint16_t * first_ptr = (uint16_t *) vr1[i].val; + uint16_t * second_ptr = (uint16_t *) vr2[i].val; + uint16_t result = *first_ptr + *second_ptr; + cout << "Adding " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint16_t * result_ptr = (uint16_t *) vd[i].val; + *result_ptr = result; + } + + } } else if (c.vtype.vsew == 32) { cout << "Doing 32 bit vector addition\n"; for (Word i = 0; i < c.vl; i++) { - int * first_ptr = (int *) vr1[i].val; - int * second_ptr = (int *) vr2[i].val; - int result = *first_ptr + *second_ptr; - cout << "Adding " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + int *mask_ptr = (int*) mask[i].val; + int value = (*mask_ptr & 0x1); + if(vmask || (!vmask && value)){ + int * first_ptr = (int *) vr1[i].val; + int * second_ptr = (int *) vr2[i].val; + int result = *first_ptr + *second_ptr; + cout << "Adding " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; - int * result_ptr = (int *) vd[i].val; - *result_ptr = result; + int * result_ptr = (int *) vd[i].val; + *result_ptr = result; + } } } @@ -1470,6 +1505,387 @@ void Instruction::executeOn(Warp &c, trace_inst_t * trace_inst) { break; } break; + case 2: + { + switch(func6){ + case 24: //vmandnot + { + D(3, "vmandnot"); + vector> vr1 = c.vreg[rsrc[0]]; + vector> vr2 = c.vreg[rsrc[1]]; + vector> vd = c.vreg[rdest]; + if(c.vtype.vsew == 8){ + for(uint8_t i = 0; i < c.vl; i++){ + uint8_t *first_ptr = (uint8_t *)vr1[i].val; + uint8_t *second_ptr = (uint8_t *)vr2[i].val; + uint8_t first_value = (*first_ptr & 0x1); + uint8_t second_value = (*second_ptr & 0x1); + uint8_t result = (first_value & !second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint8_t * result_ptr = (uint8_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 16) { + for(uint16_t i = 0; i < c.vl; i++){ + uint16_t *first_ptr = (uint16_t *)vr1[i].val; + uint16_t *second_ptr = (uint16_t *)vr2[i].val; + uint16_t first_value = (*first_ptr & 0x1); + uint16_t second_value = (*second_ptr & 0x1); + uint16_t result = (first_value & !second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint16_t * result_ptr = (uint16_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 32) { + for(uint32_t i = 0; i < c.vl; i++){ + uint32_t *first_ptr = (uint32_t *)vr1[i].val; + uint32_t *second_ptr = (uint32_t *)vr2[i].val; + uint32_t first_value = (*first_ptr & 0x1); + uint32_t second_value = (*second_ptr & 0x1); + uint32_t result = (first_value & !second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint32_t * result_ptr = (uint32_t *) vd[i].val; + *result_ptr = result; + } + } + } + break; + case 25: //vmand + { + D(3, "vmand"); + vector> vr1 = c.vreg[rsrc[0]]; + vector> vr2 = c.vreg[rsrc[1]]; + vector> vd = c.vreg[rdest]; + if(c.vtype.vsew == 8){ + for(uint8_t i = 0; i < c.vl; i++){ + uint8_t *first_ptr = (uint8_t *)vr1[i].val; + uint8_t *second_ptr = (uint8_t *)vr2[i].val; + uint8_t first_value = (*first_ptr & 0x1); + uint8_t second_value = (*second_ptr & 0x1); + uint8_t result = (first_value & second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint8_t * result_ptr = (uint8_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 16) { + for(uint16_t i = 0; i < c.vl; i++){ + uint16_t *first_ptr = (uint16_t *)vr1[i].val; + uint16_t *second_ptr = (uint16_t *)vr2[i].val; + uint16_t first_value = (*first_ptr & 0x1); + uint16_t second_value = (*second_ptr & 0x1); + uint16_t result = (first_value & second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint16_t * result_ptr = (uint16_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 32) { + for(uint32_t i = 0; i < c.vl; i++){ + uint32_t *first_ptr = (uint32_t *)vr1[i].val; + uint32_t *second_ptr = (uint32_t *)vr2[i].val; + uint32_t first_value = (*first_ptr & 0x1); + uint32_t second_value = (*second_ptr & 0x1); + uint32_t result = (first_value & second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint32_t * result_ptr = (uint32_t *) vd[i].val; + *result_ptr = result; + } + } + } + break; + case 26: //vmor + { + D(3, "vmor"); + vector> vr1 = c.vreg[rsrc[0]]; + vector> vr2 = c.vreg[rsrc[1]]; + vector> vd = c.vreg[rdest]; + if(c.vtype.vsew == 8){ + for(uint8_t i = 0; i < c.vl; i++){ + uint8_t *first_ptr = (uint8_t *)vr1[i].val; + uint8_t *second_ptr = (uint8_t *)vr2[i].val; + uint8_t first_value = (*first_ptr & 0x1); + uint8_t second_value = (*second_ptr & 0x1); + uint8_t result = (first_value | second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint8_t * result_ptr = (uint8_t *) vd[i].val; + *result_ptr = result; + } + } else if(c.vtype.vsew == 16) { + for(uint16_t i = 0; i < c.vl; i++){ + uint16_t *first_ptr = (uint16_t *)vr1[i].val; + uint16_t *second_ptr = (uint16_t *)vr2[i].val; + uint16_t first_value = (*first_ptr & 0x1); + uint16_t second_value = (*second_ptr & 0x1); + uint16_t result = (first_value | second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint16_t * result_ptr = (uint16_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 32) { + for(uint32_t i = 0; i < c.vl; i++){ + uint32_t *first_ptr = (uint32_t *)vr1[i].val; + uint32_t *second_ptr = (uint32_t *)vr2[i].val; + uint32_t first_value = (*first_ptr & 0x1); + uint32_t second_value = (*second_ptr & 0x1); + uint32_t result = (first_value | second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint32_t * result_ptr = (uint32_t *) vd[i].val; + *result_ptr = result; + } + } + } + break; + case 27: //vmxor + { + D(3, "vmxor"); + vector> vr1 = c.vreg[rsrc[0]]; + vector> vr2 = c.vreg[rsrc[1]]; + vector> vd = c.vreg[rdest]; + if(c.vtype.vsew == 8){ + for(uint8_t i = 0; i < c.vl; i++){ + uint8_t *first_ptr = (uint8_t *)vr1[i].val; + uint8_t *second_ptr = (uint8_t *)vr2[i].val; + uint8_t first_value = (*first_ptr & 0x1); + uint8_t second_value = (*second_ptr & 0x1); + uint8_t result = (first_value ^ second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint8_t * result_ptr = (uint8_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 16) { + for(uint16_t i = 0; i < c.vl; i++){ + uint16_t *first_ptr = (uint16_t *)vr1[i].val; + uint16_t *second_ptr = (uint16_t *)vr2[i].val; + uint16_t first_value = (*first_ptr & 0x1); + uint16_t second_value = (*second_ptr & 0x1); + uint16_t result = (first_value ^ second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint16_t * result_ptr = (uint16_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 32) { + for(uint32_t i = 0; i < c.vl; i++){ + uint32_t *first_ptr = (uint32_t *)vr1[i].val; + uint32_t *second_ptr = (uint32_t *)vr2[i].val; + uint32_t first_value = (*first_ptr & 0x1); + uint32_t second_value = (*second_ptr & 0x1); + uint32_t result = (first_value ^ second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint32_t * result_ptr = (uint32_t *) vd[i].val; + *result_ptr = result; + } + } + } + break; + case 28: //vmornot + { + D(3, "vmornot"); + vector> vr1 = c.vreg[rsrc[0]]; + vector> vr2 = c.vreg[rsrc[1]]; + vector> vd = c.vreg[rdest]; + if(c.vtype.vsew == 8){ + for(uint8_t i = 0; i < c.vl; i++){ + uint8_t *first_ptr = (uint8_t *)vr1[i].val; + uint8_t *second_ptr = (uint8_t *)vr2[i].val; + uint8_t first_value = (*first_ptr & 0x1); + uint8_t second_value = (*second_ptr & 0x1); + uint8_t result = (first_value | !second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint8_t * result_ptr = (uint8_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 16) { + for(uint16_t i = 0; i < c.vl; i++){ + uint16_t *first_ptr = (uint16_t *)vr1[i].val; + uint16_t *second_ptr = (uint16_t *)vr2[i].val; + uint16_t first_value = (*first_ptr & 0x1); + uint16_t second_value = (*second_ptr & 0x1); + uint16_t result = (first_value | !second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint16_t * result_ptr = (uint16_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 32) { + for(uint32_t i = 0; i < c.vl; i++){ + uint32_t *first_ptr = (uint32_t *)vr1[i].val; + uint32_t *second_ptr = (uint32_t *)vr2[i].val; + uint32_t first_value = (*first_ptr & 0x1); + uint32_t second_value = (*second_ptr & 0x1); + uint32_t result = (first_value | !second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint32_t * result_ptr = (uint32_t *) vd[i].val; + *result_ptr = result; + } + } + } + break; + case 29: //vmnand + { + D(3, "vmnand"); + vector> vr1 = c.vreg[rsrc[0]]; + vector> vr2 = c.vreg[rsrc[1]]; + vector> vd = c.vreg[rdest]; + if(c.vtype.vsew == 8){ + for(uint8_t i = 0; i < c.vl; i++){ + uint8_t *first_ptr = (uint8_t *)vr1[i].val; + uint8_t *second_ptr = (uint8_t *)vr2[i].val; + uint8_t first_value = (*first_ptr & 0x1); + uint8_t second_value = (*second_ptr & 0x1); + uint8_t result = !(first_value & second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint8_t * result_ptr = (uint8_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 16) { + for(uint16_t i = 0; i < c.vl; i++){ + uint16_t *first_ptr = (uint16_t *)vr1[i].val; + uint16_t *second_ptr = (uint16_t *)vr2[i].val; + uint16_t first_value = (*first_ptr & 0x1); + uint16_t second_value = (*second_ptr & 0x1); + uint16_t result = !(first_value & second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint16_t * result_ptr = (uint16_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 32) { + for(uint32_t i = 0; i < c.vl; i++){ + uint32_t *first_ptr = (uint32_t *)vr1[i].val; + uint32_t *second_ptr = (uint32_t *)vr2[i].val; + uint32_t first_value = (*first_ptr & 0x1); + uint32_t second_value = (*second_ptr & 0x1); + uint32_t result = !(first_value & second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint32_t * result_ptr = (uint32_t *) vd[i].val; + *result_ptr = result; + } + } + } + break; + case 30: //vmnor + { + D(3, "vmnor"); + vector> vr1 = c.vreg[rsrc[0]]; + vector> vr2 = c.vreg[rsrc[1]]; + vector> vd = c.vreg[rdest]; + if(c.vtype.vsew == 8){ + for(uint8_t i = 0; i < c.vl; i++){ + uint8_t *first_ptr = (uint8_t *)vr1[i].val; + uint8_t *second_ptr = (uint8_t *)vr2[i].val; + uint8_t first_value = (*first_ptr & 0x1); + uint8_t second_value = (*second_ptr & 0x1); + uint8_t result = !(first_value | second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint8_t * result_ptr = (uint8_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 16) { + for(uint16_t i = 0; i < c.vl; i++){ + uint16_t *first_ptr = (uint16_t *)vr1[i].val; + uint16_t *second_ptr = (uint16_t *)vr2[i].val; + uint16_t first_value = (*first_ptr & 0x1); + uint16_t second_value = (*second_ptr & 0x1); + uint16_t result = !(first_value | second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint16_t * result_ptr = (uint16_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 32) { + for(uint32_t i = 0; i < c.vl; i++){ + uint32_t *first_ptr = (uint32_t *)vr1[i].val; + uint32_t *second_ptr = (uint32_t *)vr2[i].val; + uint32_t first_value = (*first_ptr & 0x1); + uint32_t second_value = (*second_ptr & 0x1); + uint32_t result = !(first_value | second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint32_t * result_ptr = (uint32_t *) vd[i].val; + *result_ptr = result; + } + } + } + break; + case 31: //vmxnor + { + D(3, "vmxnor"); + vector> vr1 = c.vreg[rsrc[0]]; + vector> vr2 = c.vreg[rsrc[1]]; + vector> vd = c.vreg[rdest]; + if(c.vtype.vsew == 8){ + for(uint8_t i = 0; i < c.vl; i++){ + uint8_t *first_ptr = (uint8_t *)vr1[i].val; + uint8_t *second_ptr = (uint8_t *)vr2[i].val; + uint8_t first_value = (*first_ptr & 0x1); + uint8_t second_value = (*second_ptr & 0x1); + uint8_t result = !(first_value ^ second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint8_t * result_ptr = (uint8_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 16) { + for(uint16_t i = 0; i < c.vl; i++){ + uint16_t *first_ptr = (uint16_t *)vr1[i].val; + uint16_t *second_ptr = (uint16_t *)vr2[i].val; + uint16_t first_value = (*first_ptr & 0x1); + uint16_t second_value = (*second_ptr & 0x1); + uint16_t result = !(first_value ^ second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint16_t * result_ptr = (uint16_t *) vd[i].val; + *result_ptr = result; + } + + } else if(c.vtype.vsew == 32) { + for(uint32_t i = 0; i < c.vl; i++){ + uint32_t *first_ptr = (uint32_t *)vr1[i].val; + uint32_t *second_ptr = (uint32_t *)vr2[i].val; + uint32_t first_value = (*first_ptr & 0x1); + uint32_t second_value = (*second_ptr & 0x1); + uint32_t result = !(first_value ^ second_value); + cout << "Comparing " << *first_ptr << " + " << *second_ptr << " = " << result << '\n'; + + uint32_t * result_ptr = (uint32_t *) vd[i].val; + *result_ptr = result; + } + } + } + break; + } + } + break; case 7: { is_vec = true; @@ -1497,7 +1913,7 @@ void Instruction::executeOn(Warp &c, trace_inst_t * trace_inst) { for (int i = 0; i < (c.VLEN/vsew); ++i) { int * elem_ptr = (int *) malloc(vsew/8); - for (int f = 0; f < (vsew/32); f++) elem_ptr[f] = 1; + for (int f = 0; f < (vsew/32); f++) elem_ptr[f] = 0; c.vreg[j].push_back(Reg(c.id, regNum++, (char *) elem_ptr)); } }