diff --git a/src/main/resources/applications_vector/build.sh b/src/main/resources/applications_vector/build.sh index e419705b..9455eb69 100644 --- a/src/main/resources/applications_vector/build.sh +++ b/src/main/resources/applications_vector/build.sh @@ -163,4 +163,22 @@ hexdump -v -e '1/4 "%08x" "\n"' vmsbc_text_startup.bin > vmsbc_text_startup.temp cat vmsbc_rodata.temp vmsbc_rodata_str1_8.temp vmsbc_sdata.temp > vmsbc_data.hex cat vmsbc_text_init.temp vmsbc_text.temp vmsbc_text_startup.temp > vmsbc_inst.hex +riscv64-unknown-elf-gcc -I ../application_headers -DPREALLOCATE=1 -mcmodel=medany -static -std=gnu99 -O2 -fno-common -fno-builtin-printf -fno-tree-loop-distribute-patterns -march=rv64im_zicsr_zve64x -mabi=lp64 -o vand.riscv ./vand/vand.c ../application_headers/syscalls.c ../application_headers/crt.S -static -nostdlib -nostartfiles -T ../application_headers/test.ld +riscv64-unknown-elf-objdump --disassemble-all vand.riscv > vand.dump +riscv64-unknown-elf-objdump --disassemble-all vand.riscv > vand.dump +riscv64-unknown-elf-objcopy --dump-section .rodata=vand_rodata.bin vand.riscv +riscv64-unknown-elf-objcopy --dump-section .rodata.str1.8=vand_rodata_str1_8.bin vand.riscv +riscv64-unknown-elf-objcopy --dump-section .sdata=vand_sdata.bin vand.riscv +riscv64-unknown-elf-objcopy --dump-section .text.init=vand_text_init.bin vand.riscv +riscv64-unknown-elf-objcopy --dump-section .text=vand_text.bin vand.riscv +riscv64-unknown-elf-objcopy --dump-section .text.startup=vand_text_startup.bin vand.riscv +hexdump -v -e '1/4 "%08x" "\n"' vand_rodata.bin > vand_rodata.temp +hexdump -v -e '1/4 "%08x" "\n"' vand_rodata_str1_8.bin > vand_rodata_str1_8.temp +hexdump -v -e '1/4 "%08x" "\n"' vand_sdata.bin > vand_sdata.temp +hexdump -v -e '1/4 "%08x" "\n"' vand_text_init.bin > vand_text_init.temp +hexdump -v -e '1/4 "%08x" "\n"' vand_text.bin > vand_text.temp +hexdump -v -e '1/4 "%08x" "\n"' vand_text_startup.bin > vand_text_startup.temp +cat vand_rodata.temp vand_rodata_str1_8.temp vand_sdata.temp > vand_data.hex +cat vand_text_init.temp vand_text.temp vand_text_startup.temp > vand_inst.hex + rm *.riscv *.bin *.temp \ No newline at end of file diff --git a/src/main/resources/applications_vector/vand.dump b/src/main/resources/applications_vector/vand.dump new file mode 100644 index 00000000..2038d9f0 --- /dev/null +++ b/src/main/resources/applications_vector/vand.dump @@ -0,0 +1,1232 @@ + +vand.riscv: file format elf64-littleriscv + + +Disassembly of section .text.init: + +0000000000000000 <_start>: + 0: 00000093 li ra,0 + 4: 00000113 li sp,0 + 8: 00000193 li gp,0 + c: 00000213 li tp,0 + 10: 00000293 li t0,0 + 14: 00000313 li t1,0 + 18: 00000393 li t2,0 + 1c: 00000413 li s0,0 + 20: 00000493 li s1,0 + 24: 00000513 li a0,0 + 28: 00000593 li a1,0 + 2c: 00000613 li a2,0 + 30: 00000693 li a3,0 + 34: 00000713 li a4,0 + 38: 00000793 li a5,0 + 3c: 00000813 li a6,0 + 40: 00000893 li a7,0 + 44: 00000913 li s2,0 + 48: 00000993 li s3,0 + 4c: 00000a13 li s4,0 + 50: 00000a93 li s5,0 + 54: 00000b13 li s6,0 + 58: 00000b93 li s7,0 + 5c: 00000c13 li s8,0 + 60: 00000c93 li s9,0 + 64: 00000d13 li s10,0 + 68: 00000d93 li s11,0 + 6c: 00000e13 li t3,0 + 70: 00000e93 li t4,0 + 74: 00000f13 li t5,0 + 78: 00000f93 li t6,0 + 7c: 00000297 auipc t0,0x0 + 80: 03828293 add t0,t0,56 # b4 + 84: 30529073 csrw mtvec,t0 + 88: 00005197 auipc gp,0x5 + 8c: a5018193 add gp,gp,-1456 # 4ad8 <__global_pointer$> + 90: 10000217 auipc tp,0x10000 + 94: ff720213 add tp,tp,-9 # 10000087 <_end+0x3f> + 98: fc027213 and tp,tp,-64 + 9c: f1402573 csrr a0,mhartid + a0: 00100593 li a1,1 + a4: 00b57063 bgeu a0,a1,a4 <_start+0xa4> + a8: 00006137 lui sp,0x6 + ac: ff01011b addw sp,sp,-16 # 5ff0 <__global_pointer$+0x1518> + b0: 6580006f j 708 <_init> + +00000000000000b4 : + b4: ef010113 add sp,sp,-272 + b8: 00113423 sd ra,8(sp) + bc: 00213823 sd sp,16(sp) + c0: 00313c23 sd gp,24(sp) + c4: 02413023 sd tp,32(sp) + c8: 02513423 sd t0,40(sp) + cc: 02613823 sd t1,48(sp) + d0: 02713c23 sd t2,56(sp) + d4: 04813023 sd s0,64(sp) + d8: 04913423 sd s1,72(sp) + dc: 04a13823 sd a0,80(sp) + e0: 04b13c23 sd a1,88(sp) + e4: 06c13023 sd a2,96(sp) + e8: 06d13423 sd a3,104(sp) + ec: 06e13823 sd a4,112(sp) + f0: 06f13c23 sd a5,120(sp) + f4: 09013023 sd a6,128(sp) + f8: 09113423 sd a7,136(sp) + fc: 09213823 sd s2,144(sp) + 100: 09313c23 sd s3,152(sp) + 104: 0b413023 sd s4,160(sp) + 108: 0b513423 sd s5,168(sp) + 10c: 0b613823 sd s6,176(sp) + 110: 0b713c23 sd s7,184(sp) + 114: 0d813023 sd s8,192(sp) + 118: 0d913423 sd s9,200(sp) + 11c: 0da13823 sd s10,208(sp) + 120: 0db13c23 sd s11,216(sp) + 124: 0fc13023 sd t3,224(sp) + 128: 0fd13423 sd t4,232(sp) + 12c: 0fe13823 sd t5,240(sp) + 130: 0ff13c23 sd t6,248(sp) + 134: 34202573 csrr a0,mcause + 138: 341025f3 csrr a1,mepc + 13c: 00010613 mv a2,sp + 140: 2d0000ef jal 410 + 144: 34151073 csrw mepc,a0 + 148: 000022b7 lui t0,0x2 + 14c: 8002829b addw t0,t0,-2048 # 1800 + 150: 3002a073 csrs mstatus,t0 + 154: 00813083 ld ra,8(sp) + 158: 01013103 ld sp,16(sp) + 15c: 01813183 ld gp,24(sp) + 160: 02013203 ld tp,32(sp) + 164: 02813283 ld t0,40(sp) + 168: 03013303 ld t1,48(sp) + 16c: 03813383 ld t2,56(sp) + 170: 04013403 ld s0,64(sp) + 174: 04813483 ld s1,72(sp) + 178: 05013503 ld a0,80(sp) + 17c: 05813583 ld a1,88(sp) + 180: 06013603 ld a2,96(sp) + 184: 06813683 ld a3,104(sp) + 188: 07013703 ld a4,112(sp) + 18c: 07813783 ld a5,120(sp) + 190: 08013803 ld a6,128(sp) + 194: 08813883 ld a7,136(sp) + 198: 09013903 ld s2,144(sp) + 19c: 09813983 ld s3,152(sp) + 1a0: 0a013a03 ld s4,160(sp) + 1a4: 0a813a83 ld s5,168(sp) + 1a8: 0b013b03 ld s6,176(sp) + 1ac: 0b813b83 ld s7,184(sp) + 1b0: 0c013c03 ld s8,192(sp) + 1b4: 0c813c83 ld s9,200(sp) + 1b8: 0d013d03 ld s10,208(sp) + 1bc: 0d813d83 ld s11,216(sp) + 1c0: 0e013e03 ld t3,224(sp) + 1c4: 0e813e83 ld t4,232(sp) + 1c8: 0f013f03 ld t5,240(sp) + 1cc: 0f813f83 ld t6,248(sp) + 1d0: 11010113 add sp,sp,272 + 1d4: 30200073 mret + +Disassembly of section .text: + +00000000000001d8 : + 1d8: b0201073 csrw minstret,zero + 1dc: b0001073 csrw mcycle,zero + 1e0: 00008067 ret + +00000000000001e4 : + 1e4: 03000793 li a5,48 + 1e8: 00f58023 sb a5,0(a1) + 1ec: 07800793 li a5,120 + 1f0: 00f580a3 sb a5,1(a1) + 1f4: 00158813 add a6,a1,1 + 1f8: 00958793 add a5,a1,9 + 1fc: 00900613 li a2,9 + 200: 00f57713 and a4,a0,15 + 204: 03770693 add a3,a4,55 + 208: 00e66463 bltu a2,a4,210 + 20c: 03070693 add a3,a4,48 + 210: 00d78023 sb a3,0(a5) + 214: fff78793 add a5,a5,-1 + 218: 40455513 sra a0,a0,0x4 + 21c: fef812e3 bne a6,a5,200 + 220: 00058523 sb zero,10(a1) + 224: 00008067 ret + +0000000000000228 : + 228: 03000793 li a5,48 + 22c: 00f58023 sb a5,0(a1) + 230: 07800793 li a5,120 + 234: 00f580a3 sb a5,1(a1) + 238: 00158813 add a6,a1,1 + 23c: 01158793 add a5,a1,17 + 240: 00900613 li a2,9 + 244: 00f57713 and a4,a0,15 + 248: 03770693 add a3,a4,55 + 24c: 00e66463 bltu a2,a4,254 + 250: 03070693 add a3,a4,48 + 254: 00d78023 sb a3,0(a5) + 258: fff78793 add a5,a5,-1 + 25c: 40455513 sra a0,a0,0x4 + 260: fef812e3 bne a6,a5,244 + 264: 00058923 sb zero,18(a1) + 268: 00008067 ret + +000000000000026c : + 26c: 00054783 lbu a5,0(a0) + 270: 00078c63 beqz a5,288 + 274: 10000737 lui a4,0x10000 + 278: 00f70023 sb a5,0(a4) # 10000000 + 27c: 00154783 lbu a5,1(a0) + 280: 00150513 add a0,a0,1 + 284: fe079ae3 bnez a5,278 + 288: 00008067 ret + +000000000000028c : + 28c: fe010113 add sp,sp,-32 + 290: c0202673 rdinstret a2 + 294: c00025f3 rdcycle a1 + 298: 00004717 auipc a4,0x4 + 29c: ec870713 add a4,a4,-312 # 4160 + 2a0: 06300793 li a5,99 + 2a4: 100006b7 lui a3,0x10000 + 2a8: 00f68023 sb a5,0(a3) # 10000000 + 2ac: 00174783 lbu a5,1(a4) + 2b0: 00170713 add a4,a4,1 + 2b4: fe079ae3 bnez a5,2a8 + 2b8: ffff8737 lui a4,0xffff8 + 2bc: 83074713 xor a4,a4,-2000 + 2c0: 01910793 add a5,sp,25 + 2c4: 00e11423 sh a4,8(sp) + 2c8: 00910813 add a6,sp,9 + 2cc: 00078713 mv a4,a5 + 2d0: 00900893 li a7,9 + 2d4: 00f5f693 and a3,a1,15 + 2d8: 03768513 add a0,a3,55 + 2dc: 00d8e463 bltu a7,a3,2e4 + 2e0: 03068513 add a0,a3,48 + 2e4: 00a70023 sb a0,0(a4) # ffffffffffff8000 <_end+0xffffffffefff7fb8> + 2e8: fff70713 add a4,a4,-1 + 2ec: 4045d593 sra a1,a1,0x4 + 2f0: fee812e3 bne a6,a4,2d4 + 2f4: 00814703 lbu a4,8(sp) + 2f8: 00010d23 sb zero,26(sp) + 2fc: 00810693 add a3,sp,8 + 300: 100005b7 lui a1,0x10000 + 304: 00070a63 beqz a4,318 + 308: 00e58023 sb a4,0(a1) # 10000000 + 30c: 0016c703 lbu a4,1(a3) + 310: 00168693 add a3,a3,1 + 314: fe071ae3 bnez a4,308 + 318: 00004697 auipc a3,0x4 + 31c: e5068693 add a3,a3,-432 # 4168 + 320: 00a00713 li a4,10 + 324: 100005b7 lui a1,0x10000 + 328: 00e58023 sb a4,0(a1) # 10000000 + 32c: 0016c703 lbu a4,1(a3) + 330: 00168693 add a3,a3,1 + 334: fe071ae3 bnez a4,328 + 338: ffff8737 lui a4,0xffff8 + 33c: 83074713 xor a4,a4,-2000 + 340: 00060693 mv a3,a2 + 344: 00e11423 sh a4,8(sp) + 348: 00900593 li a1,9 + 34c: 00f6f713 and a4,a3,15 + 350: 03770613 add a2,a4,55 # ffffffffffff8037 <_end+0xffffffffefff7fef> + 354: 00e5e463 bltu a1,a4,35c + 358: 03070613 add a2,a4,48 + 35c: 00c78023 sb a2,0(a5) + 360: fff78793 add a5,a5,-1 + 364: 4046d693 sra a3,a3,0x4 + 368: fef812e3 bne a6,a5,34c + 36c: 00814783 lbu a5,8(sp) + 370: 00010d23 sb zero,26(sp) + 374: 00810713 add a4,sp,8 + 378: 100006b7 lui a3,0x10000 + 37c: 00078a63 beqz a5,390 + 380: 00f68023 sb a5,0(a3) # 10000000 + 384: 00174783 lbu a5,1(a4) + 388: 00170713 add a4,a4,1 + 38c: fe079ae3 bnez a5,380 + 390: 100007b7 lui a5,0x10000 + 394: 00a00713 li a4,10 + 398: 00e78023 sb a4,0(a5) # 10000000 + 39c: 02010113 add sp,sp,32 + 3a0: 00008067 ret + +00000000000003a4 : + 3a4: fe010113 add sp,sp,-32 + 3a8: 00813823 sd s0,16(sp) + 3ac: 00113c23 sd ra,24(sp) + 3b0: 00050413 mv s0,a0 + 3b4: 00004717 auipc a4,0x4 + 3b8: dc470713 add a4,a4,-572 # 4178 + 3bc: 04500793 li a5,69 + 3c0: 100006b7 lui a3,0x10000 + 3c4: 00f68023 sb a5,0(a3) # 10000000 + 3c8: 00174783 lbu a5,1(a4) + 3cc: 00170713 add a4,a4,1 + 3d0: fe079ae3 bnez a5,3c4 + 3d4: 00010593 mv a1,sp + 3d8: 00040513 mv a0,s0 + 3dc: e09ff0ef jal 1e4 + 3e0: 00014703 lbu a4,0(sp) + 3e4: 00070e63 beqz a4,400 + 3e8: 00010793 mv a5,sp + 3ec: 100006b7 lui a3,0x10000 + 3f0: 00e68023 sb a4,0(a3) # 10000000 + 3f4: 0017c703 lbu a4,1(a5) + 3f8: 00178793 add a5,a5,1 + 3fc: fe071ae3 bnez a4,3f0 + 400: 00040513 mv a0,s0 + 404: 100007b7 lui a5,0x10000 + 408: 00078023 sb zero,0(a5) # 10000000 + 40c: 0000006f j 40c + +0000000000000410 : + 410: ffff87b7 lui a5,0xffff8 + 414: fd010113 add sp,sp,-48 + 418: 8307c793 xor a5,a5,-2000 + 41c: 00f11423 sh a5,8(sp) + 420: 02113423 sd ra,40(sp) + 424: 01910793 add a5,sp,25 + 428: 00910813 add a6,sp,9 + 42c: 00900613 li a2,9 + 430: 00f5f713 and a4,a1,15 + 434: 03770693 add a3,a4,55 + 438: 00e66463 bltu a2,a4,440 + 43c: 03070693 add a3,a4,48 + 440: 00d78023 sb a3,0(a5) # ffffffffffff8000 <_end+0xffffffffefff7fb8> + 444: fff78793 add a5,a5,-1 + 448: 4045d593 sra a1,a1,0x4 + 44c: ff0792e3 bne a5,a6,430 + 450: 00010d23 sb zero,26(sp) + 454: 00b00793 li a5,11 + 458: 02a7e063 bltu a5,a0,478 + 45c: 00004717 auipc a4,0x4 + 460: c6470713 add a4,a4,-924 # 40c0 + 464: 00251513 sll a0,a0,0x2 + 468: 00e50533 add a0,a0,a4 + 46c: 00052783 lw a5,0(a0) + 470: 00e787b3 add a5,a5,a4 + 474: 00078067 jr a5 + 478: 00004717 auipc a4,0x4 + 47c: e2870713 add a4,a4,-472 # 42a0 + 480: 05500793 li a5,85 + 484: 100006b7 lui a3,0x10000 + 488: 00f68023 sb a5,0(a3) # 10000000 + 48c: 00174783 lbu a5,1(a4) + 490: 00170713 add a4,a4,1 + 494: fe079ae3 bnez a5,488 + 498: 00814783 lbu a5,8(sp) + 49c: 00810713 add a4,sp,8 + 4a0: 100006b7 lui a3,0x10000 + 4a4: 00078a63 beqz a5,4b8 + 4a8: 00f68023 sb a5,0(a3) # 10000000 + 4ac: 00174783 lbu a5,1(a4) + 4b0: 00170713 add a4,a4,1 + 4b4: fe079ae3 bnez a5,4a8 + 4b8: 00004717 auipc a4,0x4 + 4bc: e0870713 add a4,a4,-504 # 42c0 + 4c0: 00a00793 li a5,10 + 4c4: 100006b7 lui a3,0x10000 + 4c8: 00f68023 sb a5,0(a3) # 10000000 + 4cc: 00174783 lbu a5,1(a4) + 4d0: 00170713 add a4,a4,1 + 4d4: fe079ae3 bnez a5,4c8 + 4d8: fff00513 li a0,-1 + 4dc: ec9ff0ef jal 3a4 + 4e0: 00004717 auipc a4,0x4 + 4e4: ca870713 add a4,a4,-856 # 4188 + 4e8: 04900793 li a5,73 + 4ec: 100006b7 lui a3,0x10000 + 4f0: 00f68023 sb a5,0(a3) # 10000000 + 4f4: 00174783 lbu a5,1(a4) + 4f8: 00170713 add a4,a4,1 + 4fc: fe079ae3 bnez a5,4f0 + 500: 00814783 lbu a5,8(sp) + 504: 00810713 add a4,sp,8 + 508: 100006b7 lui a3,0x10000 + 50c: fc0786e3 beqz a5,4d8 + 510: 00f68023 sb a5,0(a3) # 10000000 + 514: 00174783 lbu a5,1(a4) + 518: 00170713 add a4,a4,1 + 51c: fe079ae3 bnez a5,510 + 520: fb9ff06f j 4d8 + 524: 00004717 auipc a4,0x4 + 528: c8c70713 add a4,a4,-884 # 41b0 + 52c: 04900793 li a5,73 + 530: 100006b7 lui a3,0x10000 + 534: 00f68023 sb a5,0(a3) # 10000000 + 538: 00174783 lbu a5,1(a4) + 53c: 00170713 add a4,a4,1 + 540: fe079ae3 bnez a5,534 + 544: 00814783 lbu a5,8(sp) + 548: f80788e3 beqz a5,4d8 + 54c: 00810713 add a4,sp,8 + 550: 100006b7 lui a3,0x10000 + 554: 00f68023 sb a5,0(a3) # 10000000 + 558: 00174783 lbu a5,1(a4) + 55c: 00170713 add a4,a4,1 + 560: fe079ae3 bnez a5,554 + 564: f75ff06f j 4d8 + 568: 00004717 auipc a4,0x4 + 56c: c7070713 add a4,a4,-912 # 41d8 + 570: 04900793 li a5,73 + 574: 100006b7 lui a3,0x10000 + 578: 00f68023 sb a5,0(a3) # 10000000 + 57c: 00174783 lbu a5,1(a4) + 580: 00170713 add a4,a4,1 + 584: fe079ae3 bnez a5,578 + 588: 00814783 lbu a5,8(sp) + 58c: f40786e3 beqz a5,4d8 + 590: 00810713 add a4,sp,8 + 594: 100006b7 lui a3,0x10000 + 598: 00f68023 sb a5,0(a3) # 10000000 + 59c: 00174783 lbu a5,1(a4) + 5a0: 00170713 add a4,a4,1 + 5a4: fe079ae3 bnez a5,598 + 5a8: f31ff06f j 4d8 + 5ac: 00004717 auipc a4,0x4 + 5b0: c4c70713 add a4,a4,-948 # 41f8 + 5b4: 04c00793 li a5,76 + 5b8: 100006b7 lui a3,0x10000 + 5bc: 00f68023 sb a5,0(a3) # 10000000 + 5c0: 00174783 lbu a5,1(a4) + 5c4: 00170713 add a4,a4,1 + 5c8: fe079ae3 bnez a5,5bc + 5cc: 00814783 lbu a5,8(sp) + 5d0: f00784e3 beqz a5,4d8 + 5d4: 00810713 add a4,sp,8 + 5d8: 100006b7 lui a3,0x10000 + 5dc: 00f68023 sb a5,0(a3) # 10000000 + 5e0: 00174783 lbu a5,1(a4) + 5e4: 00170713 add a4,a4,1 + 5e8: fe079ae3 bnez a5,5dc + 5ec: eedff06f j 4d8 + 5f0: 00004717 auipc a4,0x4 + 5f4: c2870713 add a4,a4,-984 # 4218 + 5f8: 04c00793 li a5,76 + 5fc: 100006b7 lui a3,0x10000 + 600: 00f68023 sb a5,0(a3) # 10000000 + 604: 00174783 lbu a5,1(a4) + 608: 00170713 add a4,a4,1 + 60c: fe079ae3 bnez a5,600 + 610: 00814783 lbu a5,8(sp) + 614: ec0782e3 beqz a5,4d8 + 618: 00810713 add a4,sp,8 + 61c: 100006b7 lui a3,0x10000 + 620: 00f68023 sb a5,0(a3) # 10000000 + 624: 00174783 lbu a5,1(a4) + 628: 00170713 add a4,a4,1 + 62c: fe079ae3 bnez a5,620 + 630: ea9ff06f j 4d8 + 634: 00004717 auipc a4,0x4 + 638: c0470713 add a4,a4,-1020 # 4238 + 63c: 05300793 li a5,83 + 640: 100006b7 lui a3,0x10000 + 644: 00f68023 sb a5,0(a3) # 10000000 + 648: 00174783 lbu a5,1(a4) + 64c: 00170713 add a4,a4,1 + 650: fe079ae3 bnez a5,644 + 654: 00814783 lbu a5,8(sp) + 658: e80780e3 beqz a5,4d8 + 65c: 00810713 add a4,sp,8 + 660: 100006b7 lui a3,0x10000 + 664: 00f68023 sb a5,0(a3) # 10000000 + 668: 00174783 lbu a5,1(a4) + 66c: 00170713 add a4,a4,1 + 670: fe079ae3 bnez a5,664 + 674: e65ff06f j 4d8 + 678: 00004717 auipc a4,0x4 + 67c: be870713 add a4,a4,-1048 # 4260 + 680: 05300793 li a5,83 + 684: 100006b7 lui a3,0x10000 + 688: 00f68023 sb a5,0(a3) # 10000000 + 68c: 00174783 lbu a5,1(a4) + 690: 00170713 add a4,a4,1 + 694: fe079ae3 bnez a5,688 + 698: 00814783 lbu a5,8(sp) + 69c: e2078ee3 beqz a5,4d8 + 6a0: 00810713 add a4,sp,8 + 6a4: 100006b7 lui a3,0x10000 + 6a8: 00f68023 sb a5,0(a3) # 10000000 + 6ac: 00174783 lbu a5,1(a4) + 6b0: 00170713 add a4,a4,1 + 6b4: fe079ae3 bnez a5,6a8 + 6b8: e21ff06f j 4d8 + 6bc: 00004717 auipc a4,0x4 + 6c0: bc470713 add a4,a4,-1084 # 4280 + 6c4: 04500793 li a5,69 + 6c8: 100006b7 lui a3,0x10000 + 6cc: 00f68023 sb a5,0(a3) # 10000000 + 6d0: 00174783 lbu a5,1(a4) + 6d4: 00170713 add a4,a4,1 + 6d8: fe079ae3 bnez a5,6cc + 6dc: 00814783 lbu a5,8(sp) + 6e0: de078ce3 beqz a5,4d8 + 6e4: 00810713 add a4,sp,8 + 6e8: 100006b7 lui a3,0x10000 + 6ec: 00f68023 sb a5,0(a3) # 10000000 + 6f0: 00174783 lbu a5,1(a4) + 6f4: 00170713 add a4,a4,1 + 6f8: fe079ae3 bnez a5,6ec + 6fc: dddff06f j 4d8 + +0000000000000700 : + 700: 00051063 bnez a0,700 + 704: 00008067 ret + +0000000000000708 <_init>: + 708: ff010113 add sp,sp,-16 + 70c: 00000593 li a1,0 + 710: 00000513 li a0,0 + 714: 00113423 sd ra,8(sp) + 718: 1d8000ef jal 8f0
+ 71c: c89ff0ef jal 3a4 + +0000000000000720 : + 720: 00b567b3 or a5,a0,a1 + 724: 00c7e7b3 or a5,a5,a2 + 728: 0077f793 and a5,a5,7 + 72c: 00c50833 add a6,a0,a2 + 730: 02078463 beqz a5,758 + 734: 00c58633 add a2,a1,a2 + 738: 00050793 mv a5,a0 + 73c: 0b057663 bgeu a0,a6,7e8 + 740: 0005c703 lbu a4,0(a1) + 744: 00158593 add a1,a1,1 + 748: 00178793 add a5,a5,1 + 74c: fee78fa3 sb a4,-1(a5) + 750: fec598e3 bne a1,a2,740 + 754: 00008067 ret + 758: 04050693 add a3,a0,64 + 75c: 0906f863 bgeu a3,a6,7ec + 760: 00058713 mv a4,a1 + 764: 00068793 mv a5,a3 + 768: 00073383 ld t2,0(a4) + 76c: 00873283 ld t0,8(a4) + 770: 01073f83 ld t6,16(a4) + 774: 01873f03 ld t5,24(a4) + 778: 02073e83 ld t4,32(a4) + 77c: 02873e03 ld t3,40(a4) + 780: 03073303 ld t1,48(a4) + 784: 03873883 ld a7,56(a4) + 788: 04078793 add a5,a5,64 + 78c: f877b023 sd t2,-128(a5) + 790: f857b423 sd t0,-120(a5) + 794: f9f7b823 sd t6,-112(a5) + 798: f9e7bc23 sd t5,-104(a5) + 79c: fbd7b023 sd t4,-96(a5) + 7a0: fbc7b423 sd t3,-88(a5) + 7a4: fa67b823 sd t1,-80(a5) + 7a8: fb17bc23 sd a7,-72(a5) + 7ac: 04070713 add a4,a4,64 + 7b0: fb07ece3 bltu a5,a6,768 + 7b4: fbf60613 add a2,a2,-65 + 7b8: fc067793 and a5,a2,-64 + 7bc: 04078793 add a5,a5,64 + 7c0: fc067613 and a2,a2,-64 + 7c4: 00f585b3 add a1,a1,a5 + 7c8: 00c687b3 add a5,a3,a2 + 7cc: f907f4e3 bgeu a5,a6,754 + 7d0: 0005b703 ld a4,0(a1) + 7d4: 00878793 add a5,a5,8 + 7d8: 00858593 add a1,a1,8 + 7dc: fee7bc23 sd a4,-8(a5) + 7e0: ff07e8e3 bltu a5,a6,7d0 + 7e4: 00008067 ret + 7e8: 00008067 ret + 7ec: 00050793 mv a5,a0 + 7f0: fddff06f j 7cc + +00000000000007f4 : + 7f4: 00c567b3 or a5,a0,a2 + 7f8: 0077f793 and a5,a5,7 + 7fc: 00c50633 add a2,a0,a2 + 800: 0ff5f713 zext.b a4,a1 + 804: 00078e63 beqz a5,820 + 808: 00050793 mv a5,a0 + 80c: 02c57c63 bgeu a0,a2,844 + 810: 00178793 add a5,a5,1 + 814: fee78fa3 sb a4,-1(a5) + 818: fef61ce3 bne a2,a5,810 + 81c: 00008067 ret + 820: 00004797 auipc a5,0x4 + 824: ab87b783 ld a5,-1352(a5) # 42d8 + 828: 02f70733 mul a4,a4,a5 + 82c: fec578e3 bgeu a0,a2,81c + 830: 00050793 mv a5,a0 + 834: 00878793 add a5,a5,8 + 838: fee7bc23 sd a4,-8(a5) + 83c: fec7ece3 bltu a5,a2,834 + 840: 00008067 ret + 844: 00008067 ret + +0000000000000848 : + 848: 00054783 lbu a5,0(a0) + 84c: 00078e63 beqz a5,868 + 850: 00050793 mv a5,a0 + 854: 0017c703 lbu a4,1(a5) + 858: 00178793 add a5,a5,1 + 85c: fe071ce3 bnez a4,854 + 860: 40a78533 sub a0,a5,a0 + 864: 00008067 ret + 868: 00000513 li a0,0 + 86c: 00008067 ret + +0000000000000870 : + 870: 00b506b3 add a3,a0,a1 + 874: 00050793 mv a5,a0 + 878: 00059863 bnez a1,888 + 87c: 0240006f j 8a0 + 880: 00178793 add a5,a5,1 + 884: 00f68a63 beq a3,a5,898 + 888: 0007c703 lbu a4,0(a5) + 88c: fe071ae3 bnez a4,880 + 890: 40a78533 sub a0,a5,a0 + 894: 00008067 ret + 898: 40a68533 sub a0,a3,a0 + 89c: 00008067 ret + 8a0: 00000513 li a0,0 + 8a4: 00008067 ret + +00000000000008a8 : + 8a8: 00054783 lbu a5,0(a0) + 8ac: 00158593 add a1,a1,1 + 8b0: 00150513 add a0,a0,1 + 8b4: fff5c703 lbu a4,-1(a1) + 8b8: 00078a63 beqz a5,8cc + 8bc: fee786e3 beq a5,a4,8a8 + 8c0: 0007851b sext.w a0,a5 + 8c4: 40e5053b subw a0,a0,a4 + 8c8: 00008067 ret + 8cc: 00000513 li a0,0 + 8d0: ff5ff06f j 8c4 + +00000000000008d4 : + 8d4: 00050793 mv a5,a0 + 8d8: 0005c703 lbu a4,0(a1) + 8dc: 00178793 add a5,a5,1 + 8e0: 00158593 add a1,a1,1 + 8e4: fee78fa3 sb a4,-1(a5) + 8e8: fe0718e3 bnez a4,8d8 + 8ec: 00008067 ret + +Disassembly of section .text.startup: + +00000000000008f0
: + 8f0: f7010113 add sp,sp,-144 + 8f4: 00003517 auipc a0,0x3 + 8f8: 7fc50513 add a0,a0,2044 # 40f0 + 8fc: 08813023 sd s0,128(sp) + 900: 08113423 sd ra,136(sp) + 904: 06913c23 sd s1,120(sp) + 908: 07213823 sd s2,112(sp) + 90c: 07313423 sd s3,104(sp) + 910: 07413023 sd s4,96(sp) + 914: 05513c23 sd s5,88(sp) + 918: 05613823 sd s6,80(sp) + 91c: 05713423 sd s7,72(sp) + 920: 05813023 sd s8,64(sp) + 924: 03913c23 sd s9,56(sp) + 928: 03a13823 sd s10,48(sp) + 92c: 03b13423 sd s11,40(sp) + 930: 93dff0ef jal 26c + 934: 02900413 li s0,41 + 938: 00004617 auipc a2,0x4 + 93c: 9a860613 add a2,a2,-1624 # 42e0 + 940: 00003697 auipc a3,0x3 + 944: 6c068693 add a3,a3,1728 # 4000 + 948: 00003717 auipc a4,0x3 + 94c: 71870713 add a4,a4,1816 # 4060 + 950: 0000c2b7 lui t0,0xc + 954: eef2829b addw t0,t0,-273 # beef <__global_pointer$+0x7417> + 958: 0c8475d7 vsetvli a1,s0,e16,m1,ta,ma + 95c: 0005879b sext.w a5,a1 + 960: 02075507 vle16.v v10,(a4) + 964: 0206d587 vle16.v v11,(a3) + 968: 26a58657 vand.vv v12,v10,v11 + 96c: 26c2c657 vand.vx v12,v12,t0 + 970: 26cbb657 vand.vi v12,v12,-9 + 974: 02065627 vse16.v v12,(a2) + 978: 00179793 sll a5,a5,0x1 + 97c: 40b4043b subw s0,s0,a1 + 980: 00f70733 add a4,a4,a5 + 984: 00f686b3 add a3,a3,a5 + 988: 00f60633 add a2,a2,a5 + 98c: fc0412e3 bnez s0,950 + 990: 00003497 auipc s1,0x3 + 994: 6d048493 add s1,s1,1744 # 4060 + 998: 00003a17 auipc s4,0x3 + 99c: 668a0a13 add s4,s4,1640 # 4000 + 9a0: 86818993 add s3,gp,-1944 # 4340 + 9a4: ffffc537 lui a0,0xffffc + 9a8: 00003b97 auipc s7,0x3 + 9ac: 70ab8b93 add s7,s7,1802 # 40b2 + 9b0: 00098613 mv a2,s3 + 9b4: 000a0693 mv a3,s4 + 9b8: 00048713 mv a4,s1 + 9bc: ee750513 add a0,a0,-281 # ffffffffffffbee7 <_end+0xffffffffefffbe9f> + 9c0: 00075783 lhu a5,0(a4) + 9c4: 0006d583 lhu a1,0(a3) + 9c8: 00270713 add a4,a4,2 + 9cc: 00268693 add a3,a3,2 + 9d0: 00b7f7b3 and a5,a5,a1 + 9d4: 00a7f7b3 and a5,a5,a0 + 9d8: 00f61023 sh a5,0(a2) + 9dc: 00260613 add a2,a2,2 + 9e0: ff7710e3 bne a4,s7,9c0 + 9e4: 00004917 auipc s2,0x4 + 9e8: 8fc90913 add s2,s2,-1796 # 42e0 + 9ec: 86818b13 add s6,gp,-1944 # 4340 + 9f0: 00090a93 mv s5,s2 + 9f4: 00100c13 li s8,1 + 9f8: 00003c97 auipc s9,0x3 + 9fc: 710c8c93 add s9,s9,1808 # 4108 + a00: 00003d17 auipc s10,0x3 + a04: 728d0d13 add s10,s10,1832 # 4128 + a08: 02900d93 li s11,41 + a0c: 000ad703 lhu a4,0(s5) + a10: 000b5783 lhu a5,0(s6) + a14: 000c8513 mv a0,s9 + a18: 002a8a93 add s5,s5,2 + a1c: 002b0b13 add s6,s6,2 + a20: 02f70463 beq a4,a5,a48 + a24: 849ff0ef jal 26c + a28: 00810593 add a1,sp,8 + a2c: 00040513 mv a0,s0 + a30: fb4ff0ef jal 1e4 + a34: 00810513 add a0,sp,8 + a38: 835ff0ef jal 26c + a3c: 000d0513 mv a0,s10 + a40: 82dff0ef jal 26c + a44: 00000c13 li s8,0 + a48: 0014041b addw s0,s0,1 + a4c: fdb410e3 bne s0,s11,a0c + a50: 00003517 auipc a0,0x3 + a54: 6e050513 add a0,a0,1760 # 4130 + a58: 815ff0ef jal 26c + a5c: 00004617 auipc a2,0x4 + a60: 88460613 add a2,a2,-1916 # 42e0 + a64: 00003697 auipc a3,0x3 + a68: 59c68693 add a3,a3,1436 # 4000 + a6c: 00003717 auipc a4,0x3 + a70: 5f470713 add a4,a4,1524 # 4060 + a74: 000022b7 lui t0,0x2 + a78: 9192829b addw t0,t0,-1767 # 1919 + a7c: 0c8475d7 vsetvli a1,s0,e16,m1,ta,ma + a80: 0005879b sext.w a5,a1 + a84: 02075507 vle16.v v10,(a4) + a88: 0206d587 vle16.v v11,(a3) + a8c: 2aa58657 vor.vv v12,v10,v11 + a90: 2ac2c657 vor.vx v12,v12,t0 + a94: 2ac23657 vor.vi v12,v12,4 + a98: 02065627 vse16.v v12,(a2) + a9c: 00179793 sll a5,a5,0x1 + aa0: 40b4043b subw s0,s0,a1 + aa4: 00f70733 add a4,a4,a5 + aa8: 00f686b3 add a3,a3,a5 + aac: 00f60633 add a2,a2,a5 + ab0: fc0412e3 bnez s0,a74 + ab4: 00002537 lui a0,0x2 + ab8: 86818613 add a2,gp,-1944 # 4340 + abc: 00003697 auipc a3,0x3 + ac0: 54468693 add a3,a3,1348 # 4000 + ac4: 00003717 auipc a4,0x3 + ac8: 59c70713 add a4,a4,1436 # 4060 + acc: 91d50513 add a0,a0,-1763 # 191d + ad0: 00075783 lhu a5,0(a4) + ad4: 0006d583 lhu a1,0(a3) + ad8: 00270713 add a4,a4,2 + adc: 00268693 add a3,a3,2 + ae0: 00b7e7b3 or a5,a5,a1 + ae4: 00a7e7b3 or a5,a5,a0 + ae8: 00f61023 sh a5,0(a2) + aec: 00260613 add a2,a2,2 + af0: ff7710e3 bne a4,s7,ad0 + af4: 86818b13 add s6,gp,-1944 # 4340 + af8: 00003a97 auipc s5,0x3 + afc: 7e8a8a93 add s5,s5,2024 # 42e0 + b00: 00003c97 auipc s9,0x3 + b04: 608c8c93 add s9,s9,1544 # 4108 + b08: 00003d17 auipc s10,0x3 + b0c: 620d0d13 add s10,s10,1568 # 4128 + b10: 02900d93 li s11,41 + b14: 000ad703 lhu a4,0(s5) + b18: 000b5783 lhu a5,0(s6) + b1c: 000c8513 mv a0,s9 + b20: 002a8a93 add s5,s5,2 + b24: 002b0b13 add s6,s6,2 + b28: 02f70463 beq a4,a5,b50 + b2c: f40ff0ef jal 26c + b30: 00810593 add a1,sp,8 + b34: 00040513 mv a0,s0 + b38: eacff0ef jal 1e4 + b3c: 00810513 add a0,sp,8 + b40: f2cff0ef jal 26c + b44: 000d0513 mv a0,s10 + b48: f24ff0ef jal 26c + b4c: 00000c13 li s8,0 + b50: 0014041b addw s0,s0,1 + b54: fdb410e3 bne s0,s11,b14 + b58: 00003517 auipc a0,0x3 + b5c: 5f050513 add a0,a0,1520 # 4148 + b60: f0cff0ef jal 26c + b64: 00003617 auipc a2,0x3 + b68: 77c60613 add a2,a2,1916 # 42e0 + b6c: 00003697 auipc a3,0x3 + b70: 49468693 add a3,a3,1172 # 4000 + b74: 00003717 auipc a4,0x3 + b78: 4ec70713 add a4,a4,1260 # 4060 + b7c: 000022b7 lui t0,0x2 + b80: 9192829b addw t0,t0,-1767 # 1919 + b84: 0c8475d7 vsetvli a1,s0,e16,m1,ta,ma + b88: 0005879b sext.w a5,a1 + b8c: 02075507 vle16.v v10,(a4) + b90: 0206d587 vle16.v v11,(a3) + b94: 2ea58657 vxor.vv v12,v10,v11 + b98: 2ec2c657 vxor.vx v12,v12,t0 + b9c: 2ecfb657 vnot.v v12,v12 + ba0: 02065627 vse16.v v12,(a2) + ba4: 00179793 sll a5,a5,0x1 + ba8: 40b4043b subw s0,s0,a1 + bac: 00f70733 add a4,a4,a5 + bb0: 00f686b3 add a3,a3,a5 + bb4: 00f60633 add a2,a2,a5 + bb8: fc0412e3 bnez s0,b7c + bbc: ffffe637 lui a2,0xffffe + bc0: 86818713 add a4,gp,-1944 # 4340 + bc4: 6e660613 add a2,a2,1766 # ffffffffffffe6e6 <_end+0xffffffffefffe69e> + bc8: 0004d783 lhu a5,0(s1) + bcc: 000a5683 lhu a3,0(s4) + bd0: 00248493 add s1,s1,2 + bd4: 002a0a13 add s4,s4,2 + bd8: 00d7c7b3 xor a5,a5,a3 + bdc: 00c7c7b3 xor a5,a5,a2 + be0: 00f71023 sh a5,0(a4) + be4: 00270713 add a4,a4,2 + be8: ff7490e3 bne s1,s7,bc8 + bec: 00003a17 auipc s4,0x3 + bf0: 51ca0a13 add s4,s4,1308 # 4108 + bf4: 00003a97 auipc s5,0x3 + bf8: 534a8a93 add s5,s5,1332 # 4128 + bfc: 02900493 li s1,41 + c00: 00095703 lhu a4,0(s2) + c04: 0009d783 lhu a5,0(s3) + c08: 000a0513 mv a0,s4 + c0c: 00290913 add s2,s2,2 + c10: 00298993 add s3,s3,2 + c14: 02f70463 beq a4,a5,c3c + c18: e54ff0ef jal 26c + c1c: 00810593 add a1,sp,8 + c20: 00040513 mv a0,s0 + c24: dc0ff0ef jal 1e4 + c28: 00810513 add a0,sp,8 + c2c: e40ff0ef jal 26c + c30: 000a8513 mv a0,s5 + c34: e38ff0ef jal 26c + c38: 00000c13 li s8,0 + c3c: 0014041b addw s0,s0,1 + c40: fc9410e3 bne s0,s1,c00 + c44: 08813083 ld ra,136(sp) + c48: 08013403 ld s0,128(sp) + c4c: 07813483 ld s1,120(sp) + c50: 07013903 ld s2,112(sp) + c54: 06813983 ld s3,104(sp) + c58: 06013a03 ld s4,96(sp) + c5c: 05813a83 ld s5,88(sp) + c60: 05013b03 ld s6,80(sp) + c64: 04813b83 ld s7,72(sp) + c68: 03813c83 ld s9,56(sp) + c6c: 03013d03 ld s10,48(sp) + c70: 02813d83 ld s11,40(sp) + c74: 001c4513 xor a0,s8,1 + c78: 04013c03 ld s8,64(sp) + c7c: 09010113 add sp,sp,144 + c80: 00008067 ret + c84: fff00513 li a0,-1 + c88: 00008067 ret + +Disassembly of section .rodata: + +0000000000004000 : + 4000: a225 .2byte 0xa225 + 4002: a2b1 .2byte 0xa2b1 + 4004: 56f0 .2byte 0x56f0 + 4006: 3862 vmsge.vx v16,v0,zero,v0.t + 4008: 6079 .2byte 0x6079 + 400a: 2300 vmsge.vx v6,v0,zero,v0.t + 400c: 3bf0 .2byte 0x3bf0 + 400e: f41aae87 .4byte 0xf41aae87 + 4012: d4765a87 .4byte 0xd4765a87 + 4016: 10492f2b .4byte 0x10492f2b + 401a: da35 .2byte 0xda35 + 401c: fe1c .2byte 0xfe1c + 401e: cbe1 vmsge.vx v23,v0,ra,v0.t + 4020: 2aa64fa7 .4byte 0x2aa64fa7 + 4024: fb7e .2byte 0xfb7e + 4026: 738d0923 sb s8,1842(s10) + 402a: 3c7c .2byte 0x3c7c + 402c: 7b0b7797 auipc a5,0x7b0b7 + 4030: 7fae .2byte 0x7fae + 4032: c46e .2byte 0xc46e + 4034: ba4c .2byte 0xba4c + 4036: 8001 vmsge.vx v0,v0,ra,v0.t + 4038: 590ee40b .4byte 0x590ee40b + 403c: d048 .2byte 0xd048 + 403e: 294a .2byte 0x294a + 4040: d186 .2byte 0xd186 + 4042: ebad .2byte 0xebad + 4044: b47f77bb .4byte 0xb47f77bb + 4048: 677a .2byte 0x677a + 404a: b406 .2byte 0xb406 + 404c: 1e40 vmsge.vx v28,v0,zero,v0.t + 404e: dbd5 .2byte 0xdbd5 + 4050: 299aae23 sw s9,668(s5) + 4054: 3f04 .2byte 0x3f04 + 4056: a982 vmsge.vx v19,v0,ra,v0.t + 4058: c976 .2byte 0xc976 + 405a: dc6d .2byte 0xdc6d + 405c: ace0 vmsge.vx v25,v0,ra,v0.t + 405e: 5d39 .2byte 0x5d39 + +0000000000004060 : + 4060: c02d .2byte 0xc02d + 4062: 28715923 vmsge.vx v18,v7,sp,v0.t + 4066: aff6 .2byte 0xaff6 + 4068: 880d .2byte 0x880d + 406a: e71d .2byte 0xe71d + 406c: f57abe2f .4byte 0xf57abe2f + 4070: 5b71 .2byte 0x5b71 + 4072: e16f34c7 .4byte 0xe16f34c7 + 4076: 1c60d3b7 lui t2,0x1c60d + 407a: 8cf43ee7 .4byte 0x8cf43ee7 + 407e: 5234 .2byte 0x5234 + 4080: 5b9a520f .4byte 0x5b9a520f + 4084: 2a58ce6b .4byte 0x2a58ce6b + 4088: efe8b2a7 .4byte 0xefe8b2a7 + 408c: 546e .2byte 0x546e + 408e: f4e1c4b3 .4byte 0xf4e1c4b3 + 4092: 1ff4beb7 lui t4,0x1ff4b + 4096: 0358 .2byte 0x358 + 4098: 5fbc .2byte 0x5fbc + 409a: 8726 .2byte 0x8726 + 409c: 2f498a4b .4byte 0x2f498a4b + 40a0: 9362 vmsge.vx v6,v0,ra,v0.t + 40a2: 4c5e .2byte 0x4c5e + 40a4: dfd9 .2byte 0xdfd9 + 40a6: 1615 .2byte 0x1615 + 40a8: c5ad .2byte 0xc5ad + 40aa: e4d8 .2byte 0xe4d8 + 40ac: b1396233 .4byte 0xb1396233 + 40b0: 44c8 .2byte 0x44c8 + 40b2: 466e .2byte 0x466e + 40b4: 1906 .2byte 0x1906 + 40b6: 407d .2byte 0x407d + 40b8: 33e1 vmsge.vx v7,v0,zero,v0.t + 40ba: 6844 .2byte 0x6844 + 40bc: e5fca3a7 .4byte 0xe5fca3a7 + 40c0: c420 vmsge.vx v8,v0,ra,v0.t + 40c2: ffff .2byte 0xffff + 40c4: c464 .2byte 0xc464 + 40c6: ffff .2byte 0xffff + 40c8: c4a8 .2byte 0xc4a8 + 40ca: ffff .2byte 0xffff + 40cc: c3b8 .2byte 0xc3b8 + 40ce: ffff .2byte 0xffff + 40d0: c4ec .2byte 0xc4ec + 40d2: ffff .2byte 0xffff + 40d4: c530 .2byte 0xc530 + 40d6: ffff .2byte 0xffff + 40d8: c574 .2byte 0xc574 + 40da: ffff .2byte 0xffff + 40dc: c5b8 .2byte 0xc5b8 + 40de: ffff .2byte 0xffff + 40e0: c3b8 .2byte 0xc3b8 + 40e2: ffff .2byte 0xffff + 40e4: c3b8 .2byte 0xc3b8 + 40e6: ffff .2byte 0xffff + 40e8: c3b8 .2byte 0xc3b8 + 40ea: ffff .2byte 0xffff + 40ec: c5fc .2byte 0xc5fc + 40ee: ffff .2byte 0xffff + +Disassembly of section .rodata.str1.8: + +00000000000040f0 <.rodata.str1.8>: + 40f0: 52415453 .4byte 0x52415453 + 40f4: 2054 .2byte 0x2054 + 40f6: 5620464f .4byte 0x5620464f + 40fa: 4e41 vmsge.vx v28,v0,zero,v0.t + 40fc: 2044 .2byte 0x2044 + 40fe: 4554 .2byte 0x4554 + 4100: 0a3a5453 .4byte 0xa3a5453 + 4104: 0000 vmsge.vx v0,v0,zero,v0.t + 4106: 0000 vmsge.vx v0,v0,zero,v0.t + 4108: 5241 vmsge.vx v4,v0,zero,v0.t + 410a: 4152 .2byte 0x4152 + 410c: 2059 .2byte 0x2059 + 410e: 4f4e .2byte 0x4f4e + 4110: 2054 .2byte 0x2054 + 4112: 52524f43 vmsge.vx v30,v5,tp + 4116: 4345 .2byte 0x4345 + 4118: 2054 .2byte 0x2054 + 411a: 4e49 .2byte 0x4e49 + 411c: 4920 vmsge.vx v18,v0,zero,v0.t + 411e: 444e .2byte 0x444e + 4120: 5845 .2byte 0x5845 + 4122: 203a .2byte 0x203a + 4124: 0000 vmsge.vx v0,v0,zero,v0.t + 4126: 0000 vmsge.vx v0,v0,zero,v0.t + 4128: 000a .2byte 0xa + 412a: 0000 vmsge.vx v0,v0,zero,v0.t + 412c: 0000 vmsge.vx v0,v0,zero,v0.t + 412e: 0000 vmsge.vx v0,v0,zero,v0.t + 4130: 52415453 .4byte 0x52415453 + 4134: 2054 .2byte 0x2054 + 4136: 5620464f .4byte 0x5620464f + 413a: 5420524f .4byte 0x5420524f + 413e: 5345 .2byte 0x5345 + 4140: 3a54 .2byte 0x3a54 + 4142: 000a .2byte 0xa + 4144: 0000 vmsge.vx v0,v0,zero,v0.t + 4146: 0000 vmsge.vx v0,v0,zero,v0.t + 4148: 52415453 .4byte 0x52415453 + 414c: 2054 .2byte 0x2054 + 414e: 5620464f .4byte 0x5620464f + 4152: 4f58 .2byte 0x4f58 + 4154: 2052 .2byte 0x2052 + 4156: 4554 .2byte 0x4554 + 4158: 0a3a5453 .4byte 0xa3a5453 + 415c: 0000 vmsge.vx v0,v0,zero,v0.t + 415e: 0000 vmsge.vx v0,v0,zero,v0.t + 4160: 6c637963 bgeu t1,t1,4832 <_tbss_end+0x492> + 4164: 3a65 .2byte 0x3a65 + 4166: 0020 vmsge.vx v0,v0,zero,v0.t + 4168: 690a .2byte 0x690a + 416a: 736e .2byte 0x736e + 416c: 7274 .2byte 0x7274 + 416e: 7465 .2byte 0x7465 + 4170: 203a .2byte 0x203a + 4172: 0000 vmsge.vx v0,v0,zero,v0.t + 4174: 0000 vmsge.vx v0,v0,zero,v0.t + 4176: 0000 vmsge.vx v0,v0,zero,v0.t + 4178: 7845 .2byte 0x7845 + 417a: 7469 .2byte 0x7469 + 417c: 6320 vmsge.vx v6,v0,zero,v0.t + 417e: 3a65646f jal s0,5a524 <__global_pointer$+0x55a4c> + 4182: 0020 vmsge.vx v0,v0,zero,v0.t + 4184: 0000 vmsge.vx v0,v0,zero,v0.t + 4186: 0000 vmsge.vx v0,v0,zero,v0.t + 4188: 4e49 .2byte 0x4e49 + 418a: 55525453 .4byte 0x55525453 + 418e: 4f495443 vmsge.vx v8,v20,s2 + 4192: 204e .2byte 0x204e + 4194: 4441 vmsge.vx v8,v0,zero,v0.t + 4196: 5244 .2byte 0x5244 + 4198: 5345 .2byte 0x5345 + 419a: 494d2053 .4byte 0x494d2053 + 419e: 494c4153 .4byte 0x494c4153 + 41a2: 44454e47 .4byte 0x44454e47 + 41a6: 6120 vmsge.vx v2,v0,zero,v0.t + 41a8: 2074 .2byte 0x2074 + 41aa: 4350 .2byte 0x4350 + 41ac: 203a .2byte 0x203a + 41ae: 0000 vmsge.vx v0,v0,zero,v0.t + 41b0: 4e49 .2byte 0x4e49 + 41b2: 55525453 .4byte 0x55525453 + 41b6: 4f495443 vmsge.vx v8,v20,s2 + 41ba: 204e .2byte 0x204e + 41bc: 4341 vmsge.vx v6,v0,zero,v0.t + 41be: 53534543 vmsge.vx v10,v21,t1 + 41c2: 4620 vmsge.vx v12,v0,zero,v0.t + 41c4: 5541 vmsge.vx v10,v0,zero,v0.t + 41c6: 544c .2byte 0x544c + 41c8: 6120 vmsge.vx v2,v0,zero,v0.t + 41ca: 2074 .2byte 0x2074 + 41cc: 4350 .2byte 0x4350 + 41ce: 203a .2byte 0x203a + ... + 41d8: 4c49 .2byte 0x4c49 + 41da: 454c .2byte 0x454c + 41dc: 204c4147 .4byte 0x204c4147 + 41e0: 4e49 .2byte 0x4e49 + 41e2: 55525453 .4byte 0x55525453 + 41e6: 4f495443 vmsge.vx v8,v20,s2 + 41ea: 204e .2byte 0x204e + 41ec: 7461 vmsge.vx v8,v0,zero,v0.t + 41ee: 5020 vmsge.vx v0,v0,zero,v0.t + 41f0: 00203a43 vmsge.vx v20,v2,zero,v0.t + 41f4: 0000 vmsge.vx v0,v0,zero,v0.t + 41f6: 0000 vmsge.vx v0,v0,zero,v0.t + 41f8: 4f4c .2byte 0x4f4c + 41fa: 4441 vmsge.vx v8,v0,zero,v0.t + 41fc: 4120 vmsge.vx v2,v0,zero,v0.t + 41fe: 4444 .2byte 0x4444 + 4200: 4552 .2byte 0x4552 + 4202: 4d205353 .4byte 0x4d205353 + 4206: 5349 .2byte 0x5349 + 4208: 4c41 vmsge.vx v24,v0,zero,v0.t + 420a: 4749 .2byte 0x4749 + 420c: 454e .2byte 0x454e + 420e: 2044 .2byte 0x2044 + 4210: 7461 vmsge.vx v8,v0,zero,v0.t + 4212: 5020 vmsge.vx v0,v0,zero,v0.t + 4214: 00203a43 vmsge.vx v20,v2,zero,v0.t + 4218: 4f4c .2byte 0x4f4c + 421a: 4441 vmsge.vx v8,v0,zero,v0.t + 421c: 4120 vmsge.vx v2,v0,zero,v0.t + 421e: 53454343 vmsge.vx v6,v20,a0 + 4222: 41462053 .4byte 0x41462053 + 4226: 4c55 .2byte 0x4c55 + 4228: 2054 .2byte 0x2054 + 422a: 7461 vmsge.vx v8,v0,zero,v0.t + 422c: 5020 vmsge.vx v0,v0,zero,v0.t + 422e: 00203a43 vmsge.vx v20,v2,zero,v0.t + 4232: 0000 vmsge.vx v0,v0,zero,v0.t + 4234: 0000 vmsge.vx v0,v0,zero,v0.t + 4236: 0000 vmsge.vx v0,v0,zero,v0.t + 4238: 524f5453 .4byte 0x524f5453 + 423c: 2045 .2byte 0x2045 + 423e: 4441 vmsge.vx v8,v0,zero,v0.t + 4240: 5244 .2byte 0x5244 + 4242: 5345 .2byte 0x5345 + 4244: 494d2053 .4byte 0x494d2053 + 4248: 494c4153 .4byte 0x494c4153 + 424c: 44454e47 .4byte 0x44454e47 + 4250: 6120 vmsge.vx v2,v0,zero,v0.t + 4252: 2074 .2byte 0x2074 + 4254: 4350 .2byte 0x4350 + 4256: 203a .2byte 0x203a + ... + 4260: 524f5453 .4byte 0x524f5453 + 4264: 2045 .2byte 0x2045 + 4266: 4341 vmsge.vx v6,v0,zero,v0.t + 4268: 53534543 vmsge.vx v10,v21,t1 + 426c: 4620 vmsge.vx v12,v0,zero,v0.t + 426e: 5541 vmsge.vx v10,v0,zero,v0.t + 4270: 544c .2byte 0x544c + 4272: 6120 vmsge.vx v2,v0,zero,v0.t + 4274: 2074 .2byte 0x2074 + 4276: 4350 .2byte 0x4350 + 4278: 203a .2byte 0x203a + 427a: 0000 vmsge.vx v0,v0,zero,v0.t + 427c: 0000 vmsge.vx v0,v0,zero,v0.t + 427e: 0000 vmsge.vx v0,v0,zero,v0.t + 4280: 4345 .2byte 0x4345 + 4282: 4c41 vmsge.vx v24,v0,zero,v0.t + 4284: 204c .2byte 0x204c + 4286: 5246 .2byte 0x5246 + 4288: 4d204d4f .4byte 0x4d204d4f + 428c: 4d2d .2byte 0x4d2d + 428e: 2045444f .4byte 0x2045444f + 4292: 7461 vmsge.vx v8,v0,zero,v0.t + 4294: 5020 vmsge.vx v0,v0,zero,v0.t + 4296: 00203a43 vmsge.vx v20,v2,zero,v0.t + 429a: 0000 vmsge.vx v0,v0,zero,v0.t + 429c: 0000 vmsge.vx v0,v0,zero,v0.t + 429e: 0000 vmsge.vx v0,v0,zero,v0.t + 42a0: 4e55 .2byte 0x4e55 + 42a2: 574f4e4b .4byte 0x574f4e4b + 42a6: 204e .2byte 0x204e + 42a8: 5845 .2byte 0x5845 + 42aa: 54504543 vmsge.vx v10,v5,zero,v0.t + 42ae: 4f49 .2byte 0x4f49 + 42b0: 204e .2byte 0x204e + 42b2: 7461 vmsge.vx v8,v0,zero,v0.t + 42b4: 5020 vmsge.vx v0,v0,zero,v0.t + 42b6: 00203a43 vmsge.vx v20,v2,zero,v0.t + 42ba: 0000 vmsge.vx v0,v0,zero,v0.t + 42bc: 0000 vmsge.vx v0,v0,zero,v0.t + 42be: 0000 vmsge.vx v0,v0,zero,v0.t + 42c0: 430a .2byte 0x430a + 42c2: 4548 .2byte 0x4548 + 42c4: 4d204b43 vmsge.vx v22,v18,zero,v0.t + 42c8: 53554143 vmsge.vx v2,v21,a0 + 42cc: 2045 .2byte 0x2045 + 42ce: 6e69 .2byte 0x6e69 + 42d0: 5220 vmsge.vx v4,v0,zero,v0.t + 42d2: 4c54 .2byte 0x4c54 + ... + +Disassembly of section .sdata: + +00000000000042d8 <__global_pointer$-0x800>: + 42d8: 0101 vmsge.vx v2,v0,zero,v0.t + 42da: 0101 vmsge.vx v2,v0,zero,v0.t + 42dc: 0101 vmsge.vx v2,v0,zero,v0.t + 42de: 0101 vmsge.vx v2,v0,zero,v0.t + +Disassembly of section .bss: + +00000000000042e0 : + ... + +0000000000004340 : + ... + +Disassembly of section .tohost: + +0000000010000000 : + ... + +0000000010000040 : + ... + +Disassembly of section .comment: + +0000000000000000 <.comment>: + 0: 3a434347 .4byte 0x3a434347 + 4: 2820 vmsge.vx v16,v0,zero,v0.t + 6: 65653267 .4byte 0x65653267 + a: 6535 .2byte 0x6535 + c: 3334 .2byte 0x3334 + e: 3030 .2byte 0x3030 + 10: 3831 .2byte 0x3831 + 12: 2029 .2byte 0x2029 + 14: 3231 .2byte 0x3231 + 16: 322e .2byte 0x322e + 18: 302e .2byte 0x302e + ... + +Disassembly of section .riscv.attributes: + +0000000000000000 <.riscv.attributes>: + 0: 5e41 vmsge.vx v28,v0,zero,v0.t + 2: 0000 vmsge.vx v0,v0,zero,v0.t + 4: 7200 vmsge.vx v4,v0,zero,v0.t + 6: 7369 .2byte 0x7369 + 8: 01007663 bgeu zero,a6,14 <_start+0x14> + c: 0054 .2byte 0x54 + e: 0000 vmsge.vx v0,v0,zero,v0.t + 10: 1004 .2byte 0x1004 + 12: 7205 .2byte 0x7205 + 14: 3676 .2byte 0x3676 + 16: 6934 .2byte 0x6934 + 18: 7032 .2byte 0x7032 + 1a: 5f31 .2byte 0x5f31 + 1c: 326d .2byte 0x326d + 1e: 3070 .2byte 0x3070 + 20: 7a5f 6369 7273 .byte 0x5f, 0x7a, 0x69, 0x63, 0x73, 0x72 + 26: 7032 .2byte 0x7032 + 28: 5f30 .2byte 0x5f30 + 2a: 6d7a .2byte 0x6d7a + 2c: 756d .2byte 0x756d + 2e: 316c .2byte 0x316c + 30: 3070 .2byte 0x3070 + 32: 7a5f 6576 3233 .byte 0x5f, 0x7a, 0x76, 0x65, 0x33, 0x32 + 38: 3178 .2byte 0x3178 + 3a: 3070 .2byte 0x3070 + 3c: 7a5f 6576 3436 .byte 0x5f, 0x7a, 0x76, 0x65, 0x36, 0x34 + 42: 3178 .2byte 0x3178 + 44: 3070 .2byte 0x3070 + 46: 7a5f 6c76 3233 .byte 0x5f, 0x7a, 0x76, 0x6c, 0x33, 0x32 + 4c: 3162 vmsge.vx v2,v0,zero,v0.t + 4e: 3070 .2byte 0x3070 + 50: 7a5f 6c76 3436 .byte 0x5f, 0x7a, 0x76, 0x6c, 0x36, 0x34 + 56: 3162 vmsge.vx v2,v0,zero,v0.t + 58: 3070 .2byte 0x3070 + 5a: 0800 vmsge.vx v16,v0,zero,v0.t + 5c: 0a01 vmsge.vx v20,v0,zero,v0.t + 5e: 0b Address 0x5e is out of bounds. + diff --git a/src/main/resources/applications_vector/vand/vand.c b/src/main/resources/applications_vector/vand/vand.c new file mode 100644 index 00000000..69b403d5 --- /dev/null +++ b/src/main/resources/applications_vector/vand/vand.c @@ -0,0 +1,141 @@ +#include "util.h" + +#define size_t long +#define N 48 + +const unsigned short dataArray0[N] = {0xC02D, 0x5923, 0x2871, 0xAFF6, 0x880D, 0xE71D, 0xBE2F, 0xF57A, 0x5B71, 0x34C7, 0xE16F, 0xD3B7, 0x1C60, 0x3EE7, 0x8CF4, 0x5234, 0x520F, 0x5B9A, 0xCE6B, 0x2A58, 0xB2A7, 0xEFE8, 0x546E, 0xC4B3, 0xF4E1, 0xBEB7, 0x1FF4, 0x358, 0x5FBC, 0x8726, 0x8A4B, 0x2F49, 0x9362, 0x4C5E, 0xDFD9, 0x1615, 0xC5AD, 0xE4D8, 0x6233, 0xB139, 0x44C8, 0x466E, 0x1906, 0x407D, 0x33E1, 0x6844, 0xA3A7, 0xE5FC}; +const unsigned short dataArray1[N] = {0xA225, 0xA2B1, 0x56F0, 0x3862, 0x6079, 0x2300, 0x3BF0, 0xAE87, 0xF41A, 0x5A87, 0xD476, 0x2F2B, 0x1049, 0xDA35, 0xFE1C, 0xCBE1, 0x4FA7, 0x2AA6, 0xFB7E, 0x923, 0x738D, 0x3C7C, 0x7797, 0x7B0B, 0x7FAE, 0xC46E, 0xBA4C, 0x8001, 0xE40B, 0x590E, 0xD048, 0x294A, 0xD186, 0xEBAD, 0x77BB, 0xB47F, 0x677A, 0xB406, 0x1E40, 0xDBD5, 0xAE23, 0x299A, 0x3F04, 0xA982, 0xC976, 0xDC6D, 0xACE0, 0x5D39}; +unsigned short resultArray[N] = {0}; +unsigned short answerArray[N] = {0}; + +extern void printstr(char* str); +extern void int64ToHex(long num, char* str); +extern void int32ToHex(int num, char* str); +extern void clearCounters(); +extern void printCounters(); + +int main(int argc, char** argv) { + int vl, avl = 41; + const unsigned short *ptr0 = dataArray0, *ptr1 = dataArray1; + unsigned short *ptrRes = resultArray; + printstr("START OF VAND TEST:\n"); + while(avl != 0) { + asm volatile ("li t0, 0xBEEF"); + asm volatile ("vsetvli %0, %1, e16, m1, ta, ma" + : "=r"(vl) + : "r"(avl) + ); + asm volatile ("vle16.v v10, (%0)" + : + : "r"(ptr0)); + asm volatile ("vle16.v v11, (%0)" + : + : "r"(ptr1)); + asm volatile ("vand.vv v12, v10, v11"); + asm volatile ("vand.vx v12, v12, t0"); + asm volatile ("vand.vi v12, v12, -9"); + asm volatile ("vse16.v v12, (%0)" + : + : "r"(ptrRes)); + ptr0 += vl; + ptr1 += vl; + ptrRes += vl; + avl -= vl; + } + int i; + for(i=0; i<41; i++) { + answerArray[i] = dataArray0[i] & dataArray1[i] & 0xBEEF & 0xFFF7; + } + _Bool correct = 1; + char string[19]; + for(i=0; i<41; i++) { + if(resultArray[i] != answerArray[i]) { + printstr("ARRAY NOT CORRECT IN INDEX: "); + int32ToHex(i, string); + printstr(string); + printstr("\n"); + correct = 0; + } + } + printstr("START OF VOR TEST:\n"); + avl = 41; + ptr0 = dataArray0; + ptr1 = dataArray1; + ptrRes = resultArray; + while(avl != 0) { + asm volatile ("li t0, 0x1919"); + asm volatile ("vsetvli %0, %1, e16, m1, ta, ma" + : "=r"(vl) + : "r"(avl) + ); + asm volatile ("vle16.v v10, (%0)" + : + : "r"(ptr0)); + asm volatile ("vle16.v v11, (%0)" + : + : "r"(ptr1)); + asm volatile ("vor.vv v12, v10, v11"); + asm volatile ("vor.vx v12, v12, t0"); + asm volatile ("vor.vi v12, v12, 0x4"); + asm volatile ("vse16.v v12, (%0)" + : + : "r"(ptrRes)); + ptr0 += vl; + ptr1 += vl; + ptrRes += vl; + avl -= vl; + } + for(i=0; i<41; i++) { + answerArray[i] = dataArray0[i] | dataArray1[i] | 0x1919 | 0x0004; + } + for(i=0; i<41; i++) { + if(resultArray[i] != answerArray[i]) { + printstr("ARRAY NOT CORRECT IN INDEX: "); + int32ToHex(i, string); + printstr(string); + printstr("\n"); + correct = 0; + } + } + printstr("START OF VXOR TEST:\n"); + avl = 41; + ptr0 = dataArray0; + ptr1 = dataArray1; + ptrRes = resultArray; + while(avl != 0) { + asm volatile ("li t0, 0x1919"); + asm volatile ("vsetvli %0, %1, e16, m1, ta, ma" + : "=r"(vl) + : "r"(avl) + ); + asm volatile ("vle16.v v10, (%0)" + : + : "r"(ptr0)); + asm volatile ("vle16.v v11, (%0)" + : + : "r"(ptr1)); + asm volatile ("vxor.vv v12, v10, v11"); + asm volatile ("vxor.vx v12, v12, t0"); + asm volatile ("vxor.vi v12, v12, -1"); + asm volatile ("vse16.v v12, (%0)" + : + : "r"(ptrRes)); + ptr0 += vl; + ptr1 += vl; + ptrRes += vl; + avl -= vl; + } + for(i=0; i<41; i++) { + answerArray[i] = dataArray0[i] ^ dataArray1[i] ^ 0x1919 ^ 0xFFFF; + } + for(i=0; i<41; i++) { + if(resultArray[i] != answerArray[i]) { + printstr("ARRAY NOT CORRECT IN INDEX: "); + int32ToHex(i, string); + printstr(string); + printstr("\n"); + correct = 0; + } + } + return !correct; +} \ No newline at end of file diff --git a/src/main/resources/applications_vector/vand_data.hex b/src/main/resources/applications_vector/vand_data.hex new file mode 100644 index 00000000..bf677e89 --- /dev/null +++ b/src/main/resources/applications_vector/vand_data.hex @@ -0,0 +1,184 @@ +a2b1a225 +386256f0 +23006079 +ae873bf0 +5a87f41a +2f2bd476 +da351049 +cbe1fe1c +2aa64fa7 +0923fb7e +3c7c738d +7b0b7797 +c46e7fae +8001ba4c +590ee40b +294ad048 +ebadd186 +b47f77bb +b406677a +dbd51e40 +299aae23 +a9823f04 +dc6dc976 +5d39ace0 +5923c02d +aff62871 +e71d880d +f57abe2f +34c75b71 +d3b7e16f +3ee71c60 +52348cf4 +5b9a520f +2a58ce6b +efe8b2a7 +c4b3546e +beb7f4e1 +03581ff4 +87265fbc +2f498a4b +4c5e9362 +1615dfd9 +e4d8c5ad +b1396233 +466e44c8 +407d1906 +684433e1 +e5fca3a7 +ffffc420 +ffffc464 +ffffc4a8 +ffffc3b8 +ffffc4ec +ffffc530 +ffffc574 +ffffc5b8 +ffffc3b8 +ffffc3b8 +ffffc3b8 +ffffc5fc +52415453 +464f2054 +4e415620 +45542044 +0a3a5453 +00000000 +41525241 +4f4e2059 +4f432054 +43455252 +4e492054 +444e4920 +203a5845 +00000000 +0000000a +00000000 +52415453 +464f2054 +524f5620 +53455420 +000a3a54 +00000000 +52415453 +464f2054 +4f585620 +45542052 +0a3a5453 +00000000 +6c637963 +00203a65 +736e690a +74657274 +0000203a +00000000 +74697845 +646f6320 +00203a65 +00000000 +54534e49 +54435552 +204e4f49 +52444441 +20535345 +4153494d +4e47494c +61204445 +43502074 +0000203a +54534e49 +54435552 +204e4f49 +45434341 +46205353 +544c5541 +20746120 +203a4350 +00000000 +00000000 +454c4c49 +204c4147 +54534e49 +54435552 +204e4f49 +50207461 +00203a43 +00000000 +44414f4c +44444120 +53534552 +53494d20 +47494c41 +2044454e +50207461 +00203a43 +44414f4c +43434120 +20535345 +4c554146 +74612054 +3a435020 +00000020 +00000000 +524f5453 +44412045 +53455244 +494d2053 +494c4153 +44454e47 +20746120 +203a4350 +00000000 +00000000 +524f5453 +43412045 +53534543 +55414620 +6120544c +43502074 +0000203a +00000000 +4c414345 +5246204c +4d204d4f +444f4d2d +74612045 +3a435020 +00000020 +00000000 +4e4b4e55 +204e574f +45435845 +4f495450 +7461204e +3a435020 +00000020 +00000000 +4548430a +4d204b43 +53554143 +6e692045 +4c545220 +00000000 +01010101 +01010101 diff --git a/src/main/resources/applications_vector/vand_inst.hex b/src/main/resources/applications_vector/vand_inst.hex new file mode 100644 index 00000000..22e08892 --- /dev/null +++ b/src/main/resources/applications_vector/vand_inst.hex @@ -0,0 +1,803 @@ +00000093 +00000113 +00000193 +00000213 +00000293 +00000313 +00000393 +00000413 +00000493 +00000513 +00000593 +00000613 +00000693 +00000713 +00000793 +00000813 +00000893 +00000913 +00000993 +00000a13 +00000a93 +00000b13 +00000b93 +00000c13 +00000c93 +00000d13 +00000d93 +00000e13 +00000e93 +00000f13 +00000f93 +00000297 +03828293 +30529073 +00005197 +a5018193 +10000217 +ff720213 +fc027213 +f1402573 +00100593 +00b57063 +00006137 +ff01011b +6580006f +ef010113 +00113423 +00213823 +00313c23 +02413023 +02513423 +02613823 +02713c23 +04813023 +04913423 +04a13823 +04b13c23 +06c13023 +06d13423 +06e13823 +06f13c23 +09013023 +09113423 +09213823 +09313c23 +0b413023 +0b513423 +0b613823 +0b713c23 +0d813023 +0d913423 +0da13823 +0db13c23 +0fc13023 +0fd13423 +0fe13823 +0ff13c23 +34202573 +341025f3 +00010613 +2d0000ef +34151073 +000022b7 +8002829b +3002a073 +00813083 +01013103 +01813183 +02013203 +02813283 +03013303 +03813383 +04013403 +04813483 +05013503 +05813583 +06013603 +06813683 +07013703 +07813783 +08013803 +08813883 +09013903 +09813983 +0a013a03 +0a813a83 +0b013b03 +0b813b83 +0c013c03 +0c813c83 +0d013d03 +0d813d83 +0e013e03 +0e813e83 +0f013f03 +0f813f83 +11010113 +30200073 +b0201073 +b0001073 +00008067 +03000793 +00f58023 +07800793 +00f580a3 +00158813 +00958793 +00900613 +00f57713 +03770693 +00e66463 +03070693 +00d78023 +fff78793 +40455513 +fef812e3 +00058523 +00008067 +03000793 +00f58023 +07800793 +00f580a3 +00158813 +01158793 +00900613 +00f57713 +03770693 +00e66463 +03070693 +00d78023 +fff78793 +40455513 +fef812e3 +00058923 +00008067 +00054783 +00078c63 +10000737 +00f70023 +00154783 +00150513 +fe079ae3 +00008067 +fe010113 +c0202673 +c00025f3 +00004717 +ec870713 +06300793 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +ffff8737 +83074713 +01910793 +00e11423 +00910813 +00078713 +00900893 +00f5f693 +03768513 +00d8e463 +03068513 +00a70023 +fff70713 +4045d593 +fee812e3 +00814703 +00010d23 +00810693 +100005b7 +00070a63 +00e58023 +0016c703 +00168693 +fe071ae3 +00004697 +e5068693 +00a00713 +100005b7 +00e58023 +0016c703 +00168693 +fe071ae3 +ffff8737 +83074713 +00060693 +00e11423 +00900593 +00f6f713 +03770613 +00e5e463 +03070613 +00c78023 +fff78793 +4046d693 +fef812e3 +00814783 +00010d23 +00810713 +100006b7 +00078a63 +00f68023 +00174783 +00170713 +fe079ae3 +100007b7 +00a00713 +00e78023 +02010113 +00008067 +fe010113 +00813823 +00113c23 +00050413 +00004717 +dc470713 +04500793 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +00010593 +00040513 +e09ff0ef +00014703 +00070e63 +00010793 +100006b7 +00e68023 +0017c703 +00178793 +fe071ae3 +00040513 +100007b7 +00078023 +0000006f +ffff87b7 +fd010113 +8307c793 +00f11423 +02113423 +01910793 +00910813 +00900613 +00f5f713 +03770693 +00e66463 +03070693 +00d78023 +fff78793 +4045d593 +ff0792e3 +00010d23 +00b00793 +02a7e063 +00004717 +c6470713 +00251513 +00e50533 +00052783 +00e787b3 +00078067 +00004717 +e2870713 +05500793 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +00814783 +00810713 +100006b7 +00078a63 +00f68023 +00174783 +00170713 +fe079ae3 +00004717 +e0870713 +00a00793 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +fff00513 +ec9ff0ef +00004717 +ca870713 +04900793 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +00814783 +00810713 +100006b7 +fc0786e3 +00f68023 +00174783 +00170713 +fe079ae3 +fb9ff06f +00004717 +c8c70713 +04900793 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +00814783 +f80788e3 +00810713 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +f75ff06f +00004717 +c7070713 +04900793 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +00814783 +f40786e3 +00810713 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +f31ff06f +00004717 +c4c70713 +04c00793 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +00814783 +f00784e3 +00810713 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +eedff06f +00004717 +c2870713 +04c00793 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +00814783 +ec0782e3 +00810713 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +ea9ff06f +00004717 +c0470713 +05300793 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +00814783 +e80780e3 +00810713 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +e65ff06f +00004717 +be870713 +05300793 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +00814783 +e2078ee3 +00810713 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +e21ff06f +00004717 +bc470713 +04500793 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +00814783 +de078ce3 +00810713 +100006b7 +00f68023 +00174783 +00170713 +fe079ae3 +dddff06f +00051063 +00008067 +ff010113 +00000593 +00000513 +00113423 +1d8000ef +c89ff0ef +00b567b3 +00c7e7b3 +0077f793 +00c50833 +02078463 +00c58633 +00050793 +0b057663 +0005c703 +00158593 +00178793 +fee78fa3 +fec598e3 +00008067 +04050693 +0906f863 +00058713 +00068793 +00073383 +00873283 +01073f83 +01873f03 +02073e83 +02873e03 +03073303 +03873883 +04078793 +f877b023 +f857b423 +f9f7b823 +f9e7bc23 +fbd7b023 +fbc7b423 +fa67b823 +fb17bc23 +04070713 +fb07ece3 +fbf60613 +fc067793 +04078793 +fc067613 +00f585b3 +00c687b3 +f907f4e3 +0005b703 +00878793 +00858593 +fee7bc23 +ff07e8e3 +00008067 +00008067 +00050793 +fddff06f +00c567b3 +0077f793 +00c50633 +0ff5f713 +00078e63 +00050793 +02c57c63 +00178793 +fee78fa3 +fef61ce3 +00008067 +00004797 +ab87b783 +02f70733 +fec578e3 +00050793 +00878793 +fee7bc23 +fec7ece3 +00008067 +00008067 +00054783 +00078e63 +00050793 +0017c703 +00178793 +fe071ce3 +40a78533 +00008067 +00000513 +00008067 +00b506b3 +00050793 +00059863 +0240006f +00178793 +00f68a63 +0007c703 +fe071ae3 +40a78533 +00008067 +40a68533 +00008067 +00000513 +00008067 +00054783 +00158593 +00150513 +fff5c703 +00078a63 +fee786e3 +0007851b +40e5053b +00008067 +00000513 +ff5ff06f +00050793 +0005c703 +00178793 +00158593 +fee78fa3 +fe0718e3 +00008067 +f7010113 +00003517 +7fc50513 +08813023 +08113423 +06913c23 +07213823 +07313423 +07413023 +05513c23 +05613823 +05713423 +05813023 +03913c23 +03a13823 +03b13423 +93dff0ef +02900413 +00004617 +9a860613 +00003697 +6c068693 +00003717 +71870713 +0000c2b7 +eef2829b +0c8475d7 +0005879b +02075507 +0206d587 +26a58657 +26c2c657 +26cbb657 +02065627 +00179793 +40b4043b +00f70733 +00f686b3 +00f60633 +fc0412e3 +00003497 +6d048493 +00003a17 +668a0a13 +86818993 +ffffc537 +00003b97 +70ab8b93 +00098613 +000a0693 +00048713 +ee750513 +00075783 +0006d583 +00270713 +00268693 +00b7f7b3 +00a7f7b3 +00f61023 +00260613 +ff7710e3 +00004917 +8fc90913 +86818b13 +00090a93 +00100c13 +00003c97 +710c8c93 +00003d17 +728d0d13 +02900d93 +000ad703 +000b5783 +000c8513 +002a8a93 +002b0b13 +02f70463 +849ff0ef +00810593 +00040513 +fb4ff0ef +00810513 +835ff0ef +000d0513 +82dff0ef +00000c13 +0014041b +fdb410e3 +00003517 +6e050513 +815ff0ef +00004617 +88460613 +00003697 +59c68693 +00003717 +5f470713 +000022b7 +9192829b +0c8475d7 +0005879b +02075507 +0206d587 +2aa58657 +2ac2c657 +2ac23657 +02065627 +00179793 +40b4043b +00f70733 +00f686b3 +00f60633 +fc0412e3 +00002537 +86818613 +00003697 +54468693 +00003717 +59c70713 +91d50513 +00075783 +0006d583 +00270713 +00268693 +00b7e7b3 +00a7e7b3 +00f61023 +00260613 +ff7710e3 +86818b13 +00003a97 +7e8a8a93 +00003c97 +608c8c93 +00003d17 +620d0d13 +02900d93 +000ad703 +000b5783 +000c8513 +002a8a93 +002b0b13 +02f70463 +f40ff0ef +00810593 +00040513 +eacff0ef +00810513 +f2cff0ef +000d0513 +f24ff0ef +00000c13 +0014041b +fdb410e3 +00003517 +5f050513 +f0cff0ef +00003617 +77c60613 +00003697 +49468693 +00003717 +4ec70713 +000022b7 +9192829b +0c8475d7 +0005879b +02075507 +0206d587 +2ea58657 +2ec2c657 +2ecfb657 +02065627 +00179793 +40b4043b +00f70733 +00f686b3 +00f60633 +fc0412e3 +ffffe637 +86818713 +6e660613 +0004d783 +000a5683 +00248493 +002a0a13 +00d7c7b3 +00c7c7b3 +00f71023 +00270713 +ff7490e3 +00003a17 +51ca0a13 +00003a97 +534a8a93 +02900493 +00095703 +0009d783 +000a0513 +00290913 +00298993 +02f70463 +e54ff0ef +00810593 +00040513 +dc0ff0ef +00810513 +e40ff0ef +000a8513 +e38ff0ef +00000c13 +0014041b +fc9410e3 +08813083 +08013403 +07813483 +07013903 +06813983 +06013a03 +05813a83 +05013b03 +04813b83 +03813c83 +03013d03 +02813d83 +001c4513 +04013c03 +09010113 +00008067 +fff00513 +00008067 diff --git a/src/test/scala/hajime/simple4Stage/Core_ApplicationTest.scala b/src/test/scala/hajime/simple4Stage/Core_ApplicationTest.scala index 4fefe9f9..f0f77d90 100644 --- a/src/test/scala/hajime/simple4Stage/Core_ApplicationTest.scala +++ b/src/test/scala/hajime/simple4Stage/Core_ApplicationTest.scala @@ -33,7 +33,7 @@ object Core_ApplicationTest { toHostWrittenChar = toHostWrittenChar :+ get_toHostChar(dut) } } - // dut.io.debug_io.debug_abi_map.a0.expect(0.U(64.W)) + dut.io.debug_io.debug_abi_map.a0.expect(0.U(64.W)) toHostWrittenChar.foreach(print) println() } diff --git a/src/test/scala/hajime/vectormodules/VectorCpuSpec.scala b/src/test/scala/hajime/vectormodules/VectorCpuSpec.scala index 98d8d2b5..dde2502a 100644 --- a/src/test/scala/hajime/vectormodules/VectorCpuSpec.scala +++ b/src/test/scala/hajime/vectormodules/VectorCpuSpec.scala @@ -136,8 +136,8 @@ class Rv64imAppTestForVecCpu extends AnyFlatSpec with ChiselScalatestTester { class Zve64xAppTestForVecCpu extends AnyFlatSpec with ChiselScalatestTester { val ldstTest = Seq("vector_conf", "vector_ldst", "vector_memcpy", "vector_stride", "vector_index") val arithmeticTest = Seq( - // "vadd", "vsub", "vmadc", - "vmsbc" + "vadd", "vsub", // "vmadc", "vmsbc", + "vand" ) val zve64xTestList: Seq[String] = (if(false) ldstTest else Nil) ++ (if(true) arithmeticTest else Nil) for (e <- zve64xTestList) {