add test data
This commit is contained in:
21
test/testcases/array_test1.c
Normal file
21
test/testcases/array_test1.c
Normal file
@ -0,0 +1,21 @@
|
||||
#include "io.inc"
|
||||
|
||||
int a[4];
|
||||
int main() {
|
||||
int b[4];
|
||||
int i;
|
||||
for (i = 0; i < 4; i++) {
|
||||
a[i] = 0;
|
||||
b[i] = i + 1;
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
printInt(a[i]);
|
||||
}
|
||||
|
||||
int *p;
|
||||
p = b;
|
||||
for (i = 0; i < 4; i++) {
|
||||
printInt(p[i]);
|
||||
}
|
||||
return judgeResult % Mod; // 123
|
||||
}
|
32
test/testcases/array_test1.data
Normal file
32
test/testcases/array_test1.data
Normal file
@ -0,0 +1,32 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 00 04 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 07 1B 33 45 F5 00 13 05 D5 0A
|
||||
23 28 A7 1A 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 07 1B B3 C7 D7 00 93 87 97 20
|
||||
23 28 F7 1A 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FE 23 2E 11 00 23 2C 81 00
|
||||
23 2A 91 00 37 14 00 00 93 07 04 1A 23 A0 07 00
|
||||
13 07 10 00 23 20 E1 00 23 A2 07 00 13 07 20 00
|
||||
23 22 E1 00 23 A4 07 00 13 07 30 00 23 24 E1 00
|
||||
23 A6 07 00 93 07 40 00 23 26 F1 00 13 04 04 1A
|
||||
93 04 04 01 03 25 04 00 EF F0 9F F6 13 04 44 00
|
||||
E3 1A 94 FE 13 05 10 00 EF F0 9F F5 13 05 20 00
|
||||
EF F0 1F F5 13 05 30 00 EF F0 9F F4 13 05 40 00
|
||||
EF F0 1F F4 93 05 D0 0F B7 17 00 00 03 A5 07 1B
|
||||
EF 00 C0 09 83 20 C1 01 03 24 81 01 83 24 41 01
|
||||
13 01 01 02 67 80 00 00 63 40 05 06 63 C6 05 06
|
||||
13 86 05 00 93 05 05 00 13 05 F0 FF 63 0C 06 02
|
||||
93 06 10 00 63 7A B6 00 63 58 C0 00 13 16 16 00
|
||||
93 96 16 00 E3 6A B6 FE 13 05 00 00 63 E6 C5 00
|
||||
B3 85 C5 40 33 65 D5 00 93 D6 16 00 13 56 16 00
|
||||
E3 96 06 FE 67 80 00 00 93 82 00 00 EF F0 5F FB
|
||||
13 85 05 00 67 80 02 00 33 05 A0 40 63 D8 05 00
|
||||
B3 05 B0 40 6F F0 DF F9 B3 05 B0 40 93 82 00 00
|
||||
EF F0 1F F9 33 05 A0 40 67 80 02 00 93 82 00 00
|
||||
63 CA 05 00 63 4C 05 00 EF F0 9F F7 13 85 05 00
|
||||
67 80 02 00 B3 05 B0 40 E3 58 05 FE 33 05 A0 40
|
||||
EF F0 1F F6 33 05 B0 40 67 80 02 00
|
||||
@0000119C
|
||||
FD 00 00 00
|
401
test/testcases/array_test1.dump
Normal file
401
test/testcases/array_test1.dump
Normal file
@ -0,0 +1,401 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 040010ef jal ra,1044 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 1b072783 lw a5,432(a4) # 11b0 <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 1aa72823 sw a0,432(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 1b072683 lw a3,432(a4) # 11b0 <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 1af72823 sw a5,432(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <main>:
|
||||
1044: fe010113 addi sp,sp,-32 # 1ffe0 <__heap_start+0x1dfe0>
|
||||
1048: 00112e23 sw ra,28(sp)
|
||||
104c: 00812c23 sw s0,24(sp)
|
||||
1050: 00912a23 sw s1,20(sp)
|
||||
1054: 00001437 lui s0,0x1
|
||||
1058: 1a040793 addi a5,s0,416 # 11a0 <__bss_start>
|
||||
105c: 0007a023 sw zero,0(a5)
|
||||
1060: 00100713 li a4,1
|
||||
1064: 00e12023 sw a4,0(sp)
|
||||
1068: 0007a223 sw zero,4(a5)
|
||||
106c: 00200713 li a4,2
|
||||
1070: 00e12223 sw a4,4(sp)
|
||||
1074: 0007a423 sw zero,8(a5)
|
||||
1078: 00300713 li a4,3
|
||||
107c: 00e12423 sw a4,8(sp)
|
||||
1080: 0007a623 sw zero,12(a5)
|
||||
1084: 00400793 li a5,4
|
||||
1088: 00f12623 sw a5,12(sp)
|
||||
108c: 1a040413 addi s0,s0,416
|
||||
1090: 01040493 addi s1,s0,16
|
||||
1094: 00042503 lw a0,0(s0)
|
||||
1098: f69ff0ef jal ra,1000 <printInt>
|
||||
109c: 00440413 addi s0,s0,4
|
||||
10a0: fe941ae3 bne s0,s1,1094 <main+0x50>
|
||||
10a4: 00100513 li a0,1
|
||||
10a8: f59ff0ef jal ra,1000 <printInt>
|
||||
10ac: 00200513 li a0,2
|
||||
10b0: f51ff0ef jal ra,1000 <printInt>
|
||||
10b4: 00300513 li a0,3
|
||||
10b8: f49ff0ef jal ra,1000 <printInt>
|
||||
10bc: 00400513 li a0,4
|
||||
10c0: f41ff0ef jal ra,1000 <printInt>
|
||||
10c4: 0fd00593 li a1,253
|
||||
10c8: 000017b7 lui a5,0x1
|
||||
10cc: 1b07a503 lw a0,432(a5) # 11b0 <__bss_end>
|
||||
10d0: 09c000ef jal ra,116c <__modsi3>
|
||||
10d4: 01c12083 lw ra,28(sp)
|
||||
10d8: 01812403 lw s0,24(sp)
|
||||
10dc: 01412483 lw s1,20(sp)
|
||||
10e0: 02010113 addi sp,sp,32
|
||||
10e4: 00008067 ret
|
||||
|
||||
000010e8 <__divsi3>:
|
||||
10e8: 06054063 bltz a0,1148 <__umodsi3+0x10>
|
||||
10ec: 0605c663 bltz a1,1158 <__umodsi3+0x20>
|
||||
|
||||
000010f0 <__udivsi3>:
|
||||
10f0: 00058613 mv a2,a1
|
||||
10f4: 00050593 mv a1,a0
|
||||
10f8: fff00513 li a0,-1
|
||||
10fc: 02060c63 beqz a2,1134 <__udivsi3+0x44>
|
||||
1100: 00100693 li a3,1
|
||||
1104: 00b67a63 bgeu a2,a1,1118 <__udivsi3+0x28>
|
||||
1108: 00c05863 blez a2,1118 <__udivsi3+0x28>
|
||||
110c: 00161613 slli a2,a2,0x1
|
||||
1110: 00169693 slli a3,a3,0x1
|
||||
1114: feb66ae3 bltu a2,a1,1108 <__udivsi3+0x18>
|
||||
1118: 00000513 li a0,0
|
||||
111c: 00c5e663 bltu a1,a2,1128 <__udivsi3+0x38>
|
||||
1120: 40c585b3 sub a1,a1,a2
|
||||
1124: 00d56533 or a0,a0,a3
|
||||
1128: 0016d693 srli a3,a3,0x1
|
||||
112c: 00165613 srli a2,a2,0x1
|
||||
1130: fe0696e3 bnez a3,111c <__udivsi3+0x2c>
|
||||
1134: 00008067 ret
|
||||
|
||||
00001138 <__umodsi3>:
|
||||
1138: 00008293 mv t0,ra
|
||||
113c: fb5ff0ef jal ra,10f0 <__udivsi3>
|
||||
1140: 00058513 mv a0,a1
|
||||
1144: 00028067 jr t0
|
||||
1148: 40a00533 neg a0,a0
|
||||
114c: 0005d863 bgez a1,115c <__umodsi3+0x24>
|
||||
1150: 40b005b3 neg a1,a1
|
||||
1154: f9dff06f j 10f0 <__udivsi3>
|
||||
1158: 40b005b3 neg a1,a1
|
||||
115c: 00008293 mv t0,ra
|
||||
1160: f91ff0ef jal ra,10f0 <__udivsi3>
|
||||
1164: 40a00533 neg a0,a0
|
||||
1168: 00028067 jr t0
|
||||
|
||||
0000116c <__modsi3>:
|
||||
116c: 00008293 mv t0,ra
|
||||
1170: 0005ca63 bltz a1,1184 <__modsi3+0x18>
|
||||
1174: 00054c63 bltz a0,118c <__modsi3+0x20>
|
||||
1178: f79ff0ef jal ra,10f0 <__udivsi3>
|
||||
117c: 00058513 mv a0,a1
|
||||
1180: 00028067 jr t0
|
||||
1184: 40b005b3 neg a1,a1
|
||||
1188: fe0558e3 bgez a0,1178 <__modsi3+0xc>
|
||||
118c: 40a00533 neg a0,a0
|
||||
1190: f61ff0ef jal ra,10f0 <__udivsi3>
|
||||
1194: 40b00533 neg a0,a1
|
||||
1198: 00028067 jr t0
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
0000119c <Mod>:
|
||||
119c: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
000011a0 <a>:
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
000011b0 <judgeResult>:
|
||||
11b0: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 10e8 addi a0,sp,108
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 10e8 addi a0,sp,108
|
||||
12: 0000 unimp
|
||||
14: 119c addi a5,sp,224
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 10e8 addi a0,sp,108
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
23
test/testcases/array_test2.c
Normal file
23
test/testcases/array_test2.c
Normal file
@ -0,0 +1,23 @@
|
||||
#include "io.inc"
|
||||
|
||||
int a[4];
|
||||
int *pa = a;
|
||||
int main() {
|
||||
int *pb[4];
|
||||
int i;
|
||||
pb[0] = pa;
|
||||
pb[1] = pa;
|
||||
pb[2] = pa;
|
||||
pb[3] = pa;
|
||||
printInt(4);
|
||||
for (i = 0; i < 4; i++)
|
||||
pb[0][i] = i + 1;
|
||||
for (i = 0; i < 4; i++)
|
||||
printInt(pb[1][i]);
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
pb[2][i] = 0;
|
||||
for (i = 0; i < 4; i++)
|
||||
printInt(pb[3][i]);
|
||||
return judgeResult % Mod; // 43
|
||||
}
|
35
test/testcases/array_test2.data
Normal file
35
test/testcases/array_test2.data
Normal file
@ -0,0 +1,35 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 00 04 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 07 1C 33 45 F5 00 13 05 D5 0A
|
||||
23 20 A7 1C 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 07 1C B3 C7 D7 00 93 87 97 20
|
||||
23 20 F7 1C 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FE 23 2E 11 00 23 2C 81 00
|
||||
23 2A 91 00 23 28 21 01 23 26 31 01 B7 17 00 00
|
||||
03 A9 C7 1A 13 05 40 00 EF F0 9F F9 93 07 10 00
|
||||
23 20 F9 00 93 07 20 00 23 22 F9 00 93 07 30 00
|
||||
23 24 F9 00 93 07 40 00 23 26 F9 00 13 04 09 00
|
||||
93 09 09 01 93 04 09 00 03 A5 04 00 EF F0 5F F6
|
||||
93 84 44 00 E3 9A 34 FF 23 20 09 00 23 22 09 00
|
||||
23 24 09 00 23 26 09 00 03 25 04 00 EF F0 5F F4
|
||||
13 04 44 00 E3 9A 89 FE 93 05 D0 0F B7 17 00 00
|
||||
03 A5 07 1C EF 00 40 0A 83 20 C1 01 03 24 81 01
|
||||
83 24 41 01 03 29 01 01 83 29 C1 00 13 01 01 02
|
||||
67 80 00 00 63 40 05 06 63 C6 05 06 13 86 05 00
|
||||
93 05 05 00 13 05 F0 FF 63 0C 06 02 93 06 10 00
|
||||
63 7A B6 00 63 58 C0 00 13 16 16 00 93 96 16 00
|
||||
E3 6A B6 FE 13 05 00 00 63 E6 C5 00 B3 85 C5 40
|
||||
33 65 D5 00 93 D6 16 00 13 56 16 00 E3 96 06 FE
|
||||
67 80 00 00 93 82 00 00 EF F0 5F FB 13 85 05 00
|
||||
67 80 02 00 33 05 A0 40 63 D8 05 00 B3 05 B0 40
|
||||
6F F0 DF F9 B3 05 B0 40 93 82 00 00 EF F0 1F F9
|
||||
33 05 A0 40 67 80 02 00 93 82 00 00 63 CA 05 00
|
||||
63 4C 05 00 EF F0 9F F7 13 85 05 00 67 80 02 00
|
||||
B3 05 B0 40 E3 58 05 FE 33 05 A0 40 EF F0 1F F6
|
||||
33 05 B0 40 67 80 02 00
|
||||
@000011A8
|
||||
FD 00 00 00
|
||||
@000011AC
|
||||
B0 11 00 00
|
410
test/testcases/array_test2.dump
Normal file
410
test/testcases/array_test2.dump
Normal file
@ -0,0 +1,410 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 040010ef jal ra,1044 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 1c072783 lw a5,448(a4) # 11c0 <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 1ca72023 sw a0,448(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 1c072683 lw a3,448(a4) # 11c0 <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 1cf72023 sw a5,448(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <main>:
|
||||
1044: fe010113 addi sp,sp,-32 # 1ffe0 <__heap_start+0x1dfe0>
|
||||
1048: 00112e23 sw ra,28(sp)
|
||||
104c: 00812c23 sw s0,24(sp)
|
||||
1050: 00912a23 sw s1,20(sp)
|
||||
1054: 01212823 sw s2,16(sp)
|
||||
1058: 01312623 sw s3,12(sp)
|
||||
105c: 000017b7 lui a5,0x1
|
||||
1060: 1ac7a903 lw s2,428(a5) # 11ac <__bss_start>
|
||||
1064: 00400513 li a0,4
|
||||
1068: f99ff0ef jal ra,1000 <printInt>
|
||||
106c: 00100793 li a5,1
|
||||
1070: 00f92023 sw a5,0(s2)
|
||||
1074: 00200793 li a5,2
|
||||
1078: 00f92223 sw a5,4(s2)
|
||||
107c: 00300793 li a5,3
|
||||
1080: 00f92423 sw a5,8(s2)
|
||||
1084: 00400793 li a5,4
|
||||
1088: 00f92623 sw a5,12(s2)
|
||||
108c: 00090413 mv s0,s2
|
||||
1090: 01090993 addi s3,s2,16
|
||||
1094: 00090493 mv s1,s2
|
||||
1098: 0004a503 lw a0,0(s1)
|
||||
109c: f65ff0ef jal ra,1000 <printInt>
|
||||
10a0: 00448493 addi s1,s1,4
|
||||
10a4: ff349ae3 bne s1,s3,1098 <main+0x54>
|
||||
10a8: 00092023 sw zero,0(s2)
|
||||
10ac: 00092223 sw zero,4(s2)
|
||||
10b0: 00092423 sw zero,8(s2)
|
||||
10b4: 00092623 sw zero,12(s2)
|
||||
10b8: 00042503 lw a0,0(s0)
|
||||
10bc: f45ff0ef jal ra,1000 <printInt>
|
||||
10c0: 00440413 addi s0,s0,4
|
||||
10c4: fe899ae3 bne s3,s0,10b8 <main+0x74>
|
||||
10c8: 0fd00593 li a1,253
|
||||
10cc: 000017b7 lui a5,0x1
|
||||
10d0: 1c07a503 lw a0,448(a5) # 11c0 <__bss_end>
|
||||
10d4: 0a4000ef jal ra,1178 <__modsi3>
|
||||
10d8: 01c12083 lw ra,28(sp)
|
||||
10dc: 01812403 lw s0,24(sp)
|
||||
10e0: 01412483 lw s1,20(sp)
|
||||
10e4: 01012903 lw s2,16(sp)
|
||||
10e8: 00c12983 lw s3,12(sp)
|
||||
10ec: 02010113 addi sp,sp,32
|
||||
10f0: 00008067 ret
|
||||
|
||||
000010f4 <__divsi3>:
|
||||
10f4: 06054063 bltz a0,1154 <__umodsi3+0x10>
|
||||
10f8: 0605c663 bltz a1,1164 <__umodsi3+0x20>
|
||||
|
||||
000010fc <__udivsi3>:
|
||||
10fc: 00058613 mv a2,a1
|
||||
1100: 00050593 mv a1,a0
|
||||
1104: fff00513 li a0,-1
|
||||
1108: 02060c63 beqz a2,1140 <__udivsi3+0x44>
|
||||
110c: 00100693 li a3,1
|
||||
1110: 00b67a63 bgeu a2,a1,1124 <__udivsi3+0x28>
|
||||
1114: 00c05863 blez a2,1124 <__udivsi3+0x28>
|
||||
1118: 00161613 slli a2,a2,0x1
|
||||
111c: 00169693 slli a3,a3,0x1
|
||||
1120: feb66ae3 bltu a2,a1,1114 <__udivsi3+0x18>
|
||||
1124: 00000513 li a0,0
|
||||
1128: 00c5e663 bltu a1,a2,1134 <__udivsi3+0x38>
|
||||
112c: 40c585b3 sub a1,a1,a2
|
||||
1130: 00d56533 or a0,a0,a3
|
||||
1134: 0016d693 srli a3,a3,0x1
|
||||
1138: 00165613 srli a2,a2,0x1
|
||||
113c: fe0696e3 bnez a3,1128 <__udivsi3+0x2c>
|
||||
1140: 00008067 ret
|
||||
|
||||
00001144 <__umodsi3>:
|
||||
1144: 00008293 mv t0,ra
|
||||
1148: fb5ff0ef jal ra,10fc <__udivsi3>
|
||||
114c: 00058513 mv a0,a1
|
||||
1150: 00028067 jr t0
|
||||
1154: 40a00533 neg a0,a0
|
||||
1158: 0005d863 bgez a1,1168 <__umodsi3+0x24>
|
||||
115c: 40b005b3 neg a1,a1
|
||||
1160: f9dff06f j 10fc <__udivsi3>
|
||||
1164: 40b005b3 neg a1,a1
|
||||
1168: 00008293 mv t0,ra
|
||||
116c: f91ff0ef jal ra,10fc <__udivsi3>
|
||||
1170: 40a00533 neg a0,a0
|
||||
1174: 00028067 jr t0
|
||||
|
||||
00001178 <__modsi3>:
|
||||
1178: 00008293 mv t0,ra
|
||||
117c: 0005ca63 bltz a1,1190 <__modsi3+0x18>
|
||||
1180: 00054c63 bltz a0,1198 <__modsi3+0x20>
|
||||
1184: f79ff0ef jal ra,10fc <__udivsi3>
|
||||
1188: 00058513 mv a0,a1
|
||||
118c: 00028067 jr t0
|
||||
1190: 40b005b3 neg a1,a1
|
||||
1194: fe0558e3 bgez a0,1184 <__modsi3+0xc>
|
||||
1198: 40a00533 neg a0,a0
|
||||
119c: f61ff0ef jal ra,10fc <__udivsi3>
|
||||
11a0: 40b00533 neg a0,a1
|
||||
11a4: 00028067 jr t0
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
000011a8 <Mod>:
|
||||
11a8: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .sdata:
|
||||
|
||||
000011ac <pa>:
|
||||
11ac: 11b0 addi a2,sp,232
|
||||
...
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
000011b0 <a>:
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
000011c0 <judgeResult>:
|
||||
11c0: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 10f4 addi a3,sp,108
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 10f4 addi a3,sp,108
|
||||
12: 0000 unimp
|
||||
14: 11a8 addi a0,sp,232
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 10f4 addi a3,sp,108
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
29
test/testcases/basicopt1.c
Normal file
29
test/testcases/basicopt1.c
Normal file
@ -0,0 +1,29 @@
|
||||
#include "io.inc"
|
||||
|
||||
int main() {
|
||||
int a[100][100];
|
||||
int i;
|
||||
int j;
|
||||
int sum = 0;
|
||||
|
||||
for (i = 0; i < 100; i++)
|
||||
for (j = 0; j < 100; j++)
|
||||
a[i][j] = 0;
|
||||
int quotient;
|
||||
int remainder;
|
||||
for (i = 0; i < 100; i++)
|
||||
if (i > 20 && i < 80) {
|
||||
for (j = 0; j < 100; j++)
|
||||
if (j > 5 || i < 90) {
|
||||
quotient = j * 4 / 100;
|
||||
remainder = j * 4 % 100;
|
||||
a[i + quotient][remainder] = j + (100 - 1 + 1 - 1 + 1) / 2;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < 100; i++)
|
||||
for (j = 0; j < 100; j++)
|
||||
sum = sum + a[i][j];
|
||||
printInt(sum);
|
||||
return judgeResult % Mod; // 88
|
||||
}
|
46
test/testcases/basicopt1.data
Normal file
46
test/testcases/basicopt1.data
Normal file
@ -0,0 +1,46 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 00 04 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 C7 27 33 45 F5 00 13 05 D5 0A
|
||||
23 2E A7 26 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 C7 27 B3 C7 D7 00 93 87 97 20
|
||||
23 2E F7 26 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 81 23 26 11 7E 23 24 81 7E
|
||||
23 22 91 7E 23 20 21 7F 23 2E 31 7D 23 2C 41 7D
|
||||
23 2A 51 7D 23 28 61 7D 23 26 71 7D 23 24 81 7D
|
||||
37 73 FF FF 13 03 03 B8 33 01 61 00 37 64 FF FF
|
||||
37 A7 00 00 93 07 07 C4 B3 87 27 00 33 84 87 00
|
||||
13 04 04 55 93 07 07 DD 33 09 F1 00 13 07 04 00
|
||||
6F 00 C0 00 13 07 07 19 63 0C 27 01 93 07 07 E7
|
||||
23 A0 07 00 93 87 47 00 E3 9C E7 FE 6F F0 9F FE
|
||||
93 04 10 00 13 0A A0 03 93 09 30 06 37 6B FF FF
|
||||
B7 A7 00 00 93 87 07 C4 B3 87 27 00 33 8B 67 01
|
||||
6F 00 C0 05 93 0B 00 00 93 05 90 01 13 85 0B 00
|
||||
EF 00 40 0D 33 0C 55 01 93 05 40 06 13 95 2B 00
|
||||
EF 00 80 14 93 17 1C 00 B3 87 87 01 93 97 37 00
|
||||
B3 87 87 01 93 97 27 00 B3 87 A7 00 93 97 27 00
|
||||
B3 07 FB 00 13 87 2B 03 23 A0 E7 3C 93 8B 1B 00
|
||||
93 07 40 06 E3 9A FB FA 93 84 14 00 93 8A F4 FF
|
||||
93 87 A4 FE E3 70 FA FA E3 D8 99 FE 13 05 00 00
|
||||
6F 00 C0 00 13 04 04 19 63 0E 24 01 93 07 04 E7
|
||||
03 A7 07 00 33 05 E5 00 93 87 47 00 E3 9A 87 FE
|
||||
6F F0 5F FE EF F0 DF E8 93 05 D0 0F B7 17 00 00
|
||||
03 A5 C7 27 EF 00 40 0C 37 93 00 00 13 03 03 48
|
||||
33 01 61 00 83 20 C1 7E 03 24 81 7E 83 24 41 7E
|
||||
03 29 01 7E 83 29 C1 7D 03 2A 81 7D 83 2A 41 7D
|
||||
03 2B 01 7D 83 2B C1 7C 03 2C 81 7C 13 01 01 7F
|
||||
67 80 00 00 63 40 05 06 63 C6 05 06 13 86 05 00
|
||||
93 05 05 00 13 05 F0 FF 63 0C 06 02 93 06 10 00
|
||||
63 7A B6 00 63 58 C0 00 13 16 16 00 93 96 16 00
|
||||
E3 6A B6 FE 13 05 00 00 63 E6 C5 00 B3 85 C5 40
|
||||
33 65 D5 00 93 D6 16 00 13 56 16 00 E3 96 06 FE
|
||||
67 80 00 00 93 82 00 00 EF F0 5F FB 13 85 05 00
|
||||
67 80 02 00 33 05 A0 40 63 D8 05 00 B3 05 B0 40
|
||||
6F F0 DF F9 B3 05 B0 40 93 82 00 00 EF F0 1F F9
|
||||
33 05 A0 40 67 80 02 00 93 82 00 00 63 CA 05 00
|
||||
63 4C 05 00 EF F0 9F F7 13 85 05 00 67 80 02 00
|
||||
B3 05 B0 40 E3 58 05 FE 33 05 A0 40 EF F0 1F F6
|
||||
33 05 B0 40 67 80 02 00
|
||||
@00001278
|
||||
FD 00 00 00
|
451
test/testcases/basicopt1.dump
Normal file
451
test/testcases/basicopt1.dump
Normal file
@ -0,0 +1,451 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 040010ef jal ra,1044 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 27c72783 lw a5,636(a4) # 127c <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 26a72e23 sw a0,636(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 27c72683 lw a3,636(a4) # 127c <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 26f72e23 sw a5,636(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <main>:
|
||||
1044: 81010113 addi sp,sp,-2032 # 1f810 <__heap_start+0x1d810>
|
||||
1048: 7e112623 sw ra,2028(sp)
|
||||
104c: 7e812423 sw s0,2024(sp)
|
||||
1050: 7e912223 sw s1,2020(sp)
|
||||
1054: 7f212023 sw s2,2016(sp)
|
||||
1058: 7d312e23 sw s3,2012(sp)
|
||||
105c: 7d412c23 sw s4,2008(sp)
|
||||
1060: 7d512a23 sw s5,2004(sp)
|
||||
1064: 7d612823 sw s6,2000(sp)
|
||||
1068: 7d712623 sw s7,1996(sp)
|
||||
106c: 7d812423 sw s8,1992(sp)
|
||||
1070: ffff7337 lui t1,0xffff7
|
||||
1074: b8030313 addi t1,t1,-1152 # ffff6b80 <__heap_start+0xffff4b80>
|
||||
1078: 00610133 add sp,sp,t1
|
||||
107c: ffff6437 lui s0,0xffff6
|
||||
1080: 0000a737 lui a4,0xa
|
||||
1084: c4070793 addi a5,a4,-960 # 9c40 <__heap_start+0x7c40>
|
||||
1088: 002787b3 add a5,a5,sp
|
||||
108c: 00878433 add s0,a5,s0
|
||||
1090: 55040413 addi s0,s0,1360 # ffff6550 <__heap_start+0xffff4550>
|
||||
1094: dd070793 addi a5,a4,-560
|
||||
1098: 00f10933 add s2,sp,a5
|
||||
109c: 00040713 mv a4,s0
|
||||
10a0: 00c0006f j 10ac <main+0x68>
|
||||
10a4: 19070713 addi a4,a4,400
|
||||
10a8: 01270c63 beq a4,s2,10c0 <main+0x7c>
|
||||
10ac: e7070793 addi a5,a4,-400
|
||||
10b0: 0007a023 sw zero,0(a5)
|
||||
10b4: 00478793 addi a5,a5,4
|
||||
10b8: fee79ce3 bne a5,a4,10b0 <main+0x6c>
|
||||
10bc: fe9ff06f j 10a4 <main+0x60>
|
||||
10c0: 00100493 li s1,1
|
||||
10c4: 03a00a13 li s4,58
|
||||
10c8: 06300993 li s3,99
|
||||
10cc: ffff6b37 lui s6,0xffff6
|
||||
10d0: 0000a7b7 lui a5,0xa
|
||||
10d4: c4078793 addi a5,a5,-960 # 9c40 <__heap_start+0x7c40>
|
||||
10d8: 002787b3 add a5,a5,sp
|
||||
10dc: 01678b33 add s6,a5,s6
|
||||
10e0: 05c0006f j 113c <main+0xf8>
|
||||
10e4: 00000b93 li s7,0
|
||||
10e8: 01900593 li a1,25
|
||||
10ec: 000b8513 mv a0,s7
|
||||
10f0: 0d4000ef jal ra,11c4 <__divsi3>
|
||||
10f4: 01550c33 add s8,a0,s5
|
||||
10f8: 06400593 li a1,100
|
||||
10fc: 002b9513 slli a0,s7,0x2
|
||||
1100: 148000ef jal ra,1248 <__modsi3>
|
||||
1104: 001c1793 slli a5,s8,0x1
|
||||
1108: 018787b3 add a5,a5,s8
|
||||
110c: 00379793 slli a5,a5,0x3
|
||||
1110: 018787b3 add a5,a5,s8
|
||||
1114: 00279793 slli a5,a5,0x2
|
||||
1118: 00a787b3 add a5,a5,a0
|
||||
111c: 00279793 slli a5,a5,0x2
|
||||
1120: 00fb07b3 add a5,s6,a5
|
||||
1124: 032b8713 addi a4,s7,50
|
||||
1128: 3ce7a023 sw a4,960(a5)
|
||||
112c: 001b8b93 addi s7,s7,1
|
||||
1130: 06400793 li a5,100
|
||||
1134: fafb9ae3 bne s7,a5,10e8 <main+0xa4>
|
||||
1138: 00148493 addi s1,s1,1
|
||||
113c: fff48a93 addi s5,s1,-1
|
||||
1140: fea48793 addi a5,s1,-22
|
||||
1144: fafa70e3 bgeu s4,a5,10e4 <main+0xa0>
|
||||
1148: fe99d8e3 bge s3,s1,1138 <main+0xf4>
|
||||
114c: 00000513 li a0,0
|
||||
1150: 00c0006f j 115c <main+0x118>
|
||||
1154: 19040413 addi s0,s0,400
|
||||
1158: 01240e63 beq s0,s2,1174 <main+0x130>
|
||||
115c: e7040793 addi a5,s0,-400
|
||||
1160: 0007a703 lw a4,0(a5)
|
||||
1164: 00e50533 add a0,a0,a4
|
||||
1168: 00478793 addi a5,a5,4
|
||||
116c: fe879ae3 bne a5,s0,1160 <main+0x11c>
|
||||
1170: fe5ff06f j 1154 <main+0x110>
|
||||
1174: e8dff0ef jal ra,1000 <printInt>
|
||||
1178: 0fd00593 li a1,253
|
||||
117c: 000017b7 lui a5,0x1
|
||||
1180: 27c7a503 lw a0,636(a5) # 127c <__bss_end>
|
||||
1184: 0c4000ef jal ra,1248 <__modsi3>
|
||||
1188: 00009337 lui t1,0x9
|
||||
118c: 48030313 addi t1,t1,1152 # 9480 <__heap_start+0x7480>
|
||||
1190: 00610133 add sp,sp,t1
|
||||
1194: 7ec12083 lw ra,2028(sp)
|
||||
1198: 7e812403 lw s0,2024(sp)
|
||||
119c: 7e412483 lw s1,2020(sp)
|
||||
11a0: 7e012903 lw s2,2016(sp)
|
||||
11a4: 7dc12983 lw s3,2012(sp)
|
||||
11a8: 7d812a03 lw s4,2008(sp)
|
||||
11ac: 7d412a83 lw s5,2004(sp)
|
||||
11b0: 7d012b03 lw s6,2000(sp)
|
||||
11b4: 7cc12b83 lw s7,1996(sp)
|
||||
11b8: 7c812c03 lw s8,1992(sp)
|
||||
11bc: 7f010113 addi sp,sp,2032
|
||||
11c0: 00008067 ret
|
||||
|
||||
000011c4 <__divsi3>:
|
||||
11c4: 06054063 bltz a0,1224 <__umodsi3+0x10>
|
||||
11c8: 0605c663 bltz a1,1234 <__umodsi3+0x20>
|
||||
|
||||
000011cc <__udivsi3>:
|
||||
11cc: 00058613 mv a2,a1
|
||||
11d0: 00050593 mv a1,a0
|
||||
11d4: fff00513 li a0,-1
|
||||
11d8: 02060c63 beqz a2,1210 <__udivsi3+0x44>
|
||||
11dc: 00100693 li a3,1
|
||||
11e0: 00b67a63 bgeu a2,a1,11f4 <__udivsi3+0x28>
|
||||
11e4: 00c05863 blez a2,11f4 <__udivsi3+0x28>
|
||||
11e8: 00161613 slli a2,a2,0x1
|
||||
11ec: 00169693 slli a3,a3,0x1
|
||||
11f0: feb66ae3 bltu a2,a1,11e4 <__udivsi3+0x18>
|
||||
11f4: 00000513 li a0,0
|
||||
11f8: 00c5e663 bltu a1,a2,1204 <__udivsi3+0x38>
|
||||
11fc: 40c585b3 sub a1,a1,a2
|
||||
1200: 00d56533 or a0,a0,a3
|
||||
1204: 0016d693 srli a3,a3,0x1
|
||||
1208: 00165613 srli a2,a2,0x1
|
||||
120c: fe0696e3 bnez a3,11f8 <__udivsi3+0x2c>
|
||||
1210: 00008067 ret
|
||||
|
||||
00001214 <__umodsi3>:
|
||||
1214: 00008293 mv t0,ra
|
||||
1218: fb5ff0ef jal ra,11cc <__udivsi3>
|
||||
121c: 00058513 mv a0,a1
|
||||
1220: 00028067 jr t0
|
||||
1224: 40a00533 neg a0,a0
|
||||
1228: 0005d863 bgez a1,1238 <__umodsi3+0x24>
|
||||
122c: 40b005b3 neg a1,a1
|
||||
1230: f9dff06f j 11cc <__udivsi3>
|
||||
1234: 40b005b3 neg a1,a1
|
||||
1238: 00008293 mv t0,ra
|
||||
123c: f91ff0ef jal ra,11cc <__udivsi3>
|
||||
1240: 40a00533 neg a0,a0
|
||||
1244: 00028067 jr t0
|
||||
|
||||
00001248 <__modsi3>:
|
||||
1248: 00008293 mv t0,ra
|
||||
124c: 0005ca63 bltz a1,1260 <__modsi3+0x18>
|
||||
1250: 00054c63 bltz a0,1268 <__modsi3+0x20>
|
||||
1254: f79ff0ef jal ra,11cc <__udivsi3>
|
||||
1258: 00058513 mv a0,a1
|
||||
125c: 00028067 jr t0
|
||||
1260: 40b005b3 neg a1,a1
|
||||
1264: fe0558e3 bgez a0,1254 <__modsi3+0xc>
|
||||
1268: 40a00533 neg a0,a0
|
||||
126c: f61ff0ef jal ra,11cc <__udivsi3>
|
||||
1270: 40b00533 neg a0,a1
|
||||
1274: 00028067 jr t0
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
00001278 <Mod>:
|
||||
1278: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
0000127c <judgeResult>:
|
||||
127c: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 11c4 addi s1,sp,228
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 11c4 addi s1,sp,228
|
||||
12: 0000 unimp
|
||||
14: 1278 addi a4,sp,300
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 11c4 addi s1,sp,228
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
128
test/testcases/bulgarian.c
Normal file
128
test/testcases/bulgarian.c
Normal file
@ -0,0 +1,128 @@
|
||||
#include "io.inc"
|
||||
// Target: Simulate a Bulgarian-solitaire game.
|
||||
// Possible opitimization: Dead code elimination, common expression, inline
|
||||
// function, loop unrolling, etc. REMARKS: A funny game. If you like, you can
|
||||
// try to prove that when n=1+2+..+i(i>0), the game will always stop
|
||||
// and converge to the only solution: {1,2,...i}. :)
|
||||
|
||||
int n;
|
||||
int h;
|
||||
int now;
|
||||
int a[100];
|
||||
int A = 48271;
|
||||
int M = 2147483647;
|
||||
int Q;
|
||||
int R;
|
||||
int seed = 1;
|
||||
int random() {
|
||||
int tempseed = A * (seed % Q) - R * (seed / Q);
|
||||
if (tempseed >= 0)
|
||||
seed = tempseed;
|
||||
else
|
||||
seed = tempseed + M;
|
||||
return seed;
|
||||
}
|
||||
void initialize(int val) { seed = val; }
|
||||
void swap(int x, int y) {
|
||||
int temp = a[x];
|
||||
a[x] = a[y];
|
||||
a[y] = temp;
|
||||
}
|
||||
int pd(int x) {
|
||||
for (; h <= x; ++h)
|
||||
if (x == h * (h + 1) / 2)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
void show() {
|
||||
int i;
|
||||
for (i = 0; i < now; ++i) {
|
||||
printInt(a[i]);
|
||||
}
|
||||
}
|
||||
int win() {
|
||||
int i;
|
||||
int j;
|
||||
int b[100];
|
||||
int temp;
|
||||
if (now != h)
|
||||
return 0;
|
||||
for (j = 0; j < now; ++j)
|
||||
b[j] = a[j];
|
||||
for (i = 0; i < now - 1; ++i)
|
||||
for (j = i + 1; j < now; ++j)
|
||||
if (b[i] > b[j]) {
|
||||
temp = b[i];
|
||||
b[i] = b[j];
|
||||
b[j] = temp;
|
||||
}
|
||||
for (i = 0; i < now; ++i)
|
||||
if (b[i] != i + 1)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
void merge() {
|
||||
int i;
|
||||
for (i = 0; i < now; ++i)
|
||||
if (a[i] == 0) {
|
||||
int j;
|
||||
for (j = i + 1; j < now; ++j)
|
||||
if (a[j] != 0) {
|
||||
swap(i, j);
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < now; ++i)
|
||||
if (a[i] == 0) {
|
||||
now = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
void move() {
|
||||
int i = 0;
|
||||
for (; i < now;) {
|
||||
--a[i];
|
||||
i = i + 1;
|
||||
}
|
||||
a[now] = now;
|
||||
now++;
|
||||
}
|
||||
int main() {
|
||||
int i = 0;
|
||||
int temp = 0;
|
||||
int count = 0;
|
||||
n = 3 * 7 * 10;
|
||||
h = 0;
|
||||
Q = M / A;
|
||||
R = M % A;
|
||||
if (!pd(n)) {
|
||||
// println("Sorry, the number n must be a number s.t. there exists i "
|
||||
// "satisfying n=1+2+...+i");
|
||||
return 1;
|
||||
}
|
||||
// println("Let's start!");
|
||||
initialize(3654898);
|
||||
now = random() % 10 + 1;
|
||||
printInt(now);
|
||||
for (; i < now - 1; ++i) {
|
||||
a[i] = random() % 10 + 1;
|
||||
while (a[i] + temp > n)
|
||||
a[i] = random() % 10 + 1;
|
||||
temp = temp + a[i];
|
||||
}
|
||||
a[now - 1] = n - temp;
|
||||
show();
|
||||
merge();
|
||||
while (!win()) {
|
||||
// print("step ");
|
||||
printInt(++count);
|
||||
// println(":");
|
||||
move();
|
||||
merge();
|
||||
show();
|
||||
}
|
||||
// print("Total: ");
|
||||
printInt(count);
|
||||
// println(" step(s)");
|
||||
return judgeResult % Mod; // 159
|
||||
}
|
117
test/testcases/bulgarian.data
Normal file
117
test/testcases/bulgarian.data
Normal file
@ -0,0 +1,117 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 80 42 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 27 00 00 83 27 47 88 33 45 F5 00 13 05 D5 0A
|
||||
23 22 A7 88 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 27 00 00 83 26 47 88 B3 C7 D7 00 93 87 97 20
|
||||
23 22 F7 88 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FF 23 26 11 00 23 24 81 00
|
||||
23 22 91 00 23 20 21 01 B7 17 00 00 83 A4 47 6D
|
||||
B7 17 00 00 03 A9 87 6E 93 05 09 00 13 85 04 00
|
||||
EF 00 00 63 B7 17 00 00 83 A5 C7 6D EF 00 C0 57
|
||||
13 04 05 00 93 05 09 00 13 85 04 00 EF 00 00 59
|
||||
B7 17 00 00 83 A5 C7 6E EF 00 00 56 33 05 A4 40
|
||||
63 42 05 02 B7 17 00 00 23 AA A7 6C 83 20 C1 00
|
||||
03 24 81 00 83 24 41 00 03 29 01 00 13 01 01 01
|
||||
67 80 00 00 B7 17 00 00 83 A7 87 6D 33 05 F5 00
|
||||
6F F0 5F FD B7 17 00 00 23 AA A7 6C 67 80 00 00
|
||||
B7 17 00 00 93 87 47 6F 13 15 25 00 33 85 A7 00
|
||||
03 27 05 00 93 95 25 00 B3 87 B7 00 83 A6 07 00
|
||||
23 20 D5 00 23 A0 E7 00 67 80 00 00 13 01 01 FF
|
||||
23 26 11 00 23 24 81 00 23 22 91 00 23 20 21 01
|
||||
13 09 05 00 B7 17 00 00 03 A5 07 6F 63 40 A9 08
|
||||
13 04 15 00 93 05 04 00 EF 00 00 4C 93 57 F5 01
|
||||
33 85 A7 00 13 55 15 40 63 06 A9 06 63 4E 89 02
|
||||
93 04 14 00 93 05 04 00 13 85 04 00 EF 00 C0 49
|
||||
93 57 F5 01 B3 87 A7 00 93 D7 17 40 63 86 27 01
|
||||
13 84 04 00 6F F0 9F FD B7 17 00 00 23 A8 87 6E
|
||||
13 05 10 00 6F 00 00 01 B7 17 00 00 23 A8 87 6E
|
||||
13 05 00 00 83 20 C1 00 03 24 81 00 83 24 41 00
|
||||
03 29 01 00 13 01 01 01 67 80 00 00 13 05 00 00
|
||||
6F F0 5F FE 13 05 10 00 6F F0 DF FD B7 17 00 00
|
||||
83 A7 07 6E 63 5C F0 04 13 01 01 FF 23 26 11 00
|
||||
23 24 81 00 23 22 91 00 23 20 21 01 37 14 00 00
|
||||
13 04 44 6F 93 04 00 00 37 19 00 00 03 25 04 00
|
||||
EF F0 1F E1 93 84 14 00 13 04 44 00 83 27 09 6E
|
||||
E3 C6 F4 FE 83 20 C1 00 03 24 81 00 83 24 41 00
|
||||
03 29 01 00 13 01 01 01 67 80 00 00 67 80 00 00
|
||||
B7 17 00 00 83 A8 07 6E B7 17 00 00 83 A7 07 6F
|
||||
13 05 00 00 63 96 F8 0C 13 01 01 E7 63 56 10 03
|
||||
B7 17 00 00 93 87 47 6F 13 07 01 00 13 96 28 00
|
||||
33 06 F6 00 83 A6 07 00 23 20 D7 00 93 87 47 00
|
||||
13 07 47 00 E3 98 C7 FE 13 08 41 00 13 8E 08 00
|
||||
93 95 28 00 B3 85 25 00 13 06 08 00 13 05 00 00
|
||||
13 83 F8 FF 6F 00 80 02 93 87 47 00 63 8E B7 00
|
||||
03 27 C6 FF 83 A6 07 00 E3 D8 E6 FE 23 2E D6 FE
|
||||
23 A0 E7 00 6F F0 5F FE 13 06 46 00 63 5A 65 00
|
||||
13 05 15 00 E3 5A 15 FF 93 07 06 00 6F F0 5F FD
|
||||
63 58 10 03 03 25 01 00 93 07 10 00 63 16 F5 02
|
||||
63 8C C7 01 03 27 08 00 93 87 17 00 13 08 48 00
|
||||
E3 08 F7 FE 13 05 00 00 13 01 01 19 67 80 00 00
|
||||
13 05 10 00 6F F0 5F FF 13 05 00 00 6F F0 DF FE
|
||||
67 80 00 00 B7 17 00 00 03 A7 07 6E 63 54 E0 0C
|
||||
13 01 01 FF 23 26 11 00 23 24 81 00 23 22 91 00
|
||||
23 20 21 01 37 14 00 00 13 04 44 6F 93 04 00 00
|
||||
13 89 07 00 6F 00 C0 01 13 85 04 00 EF F0 5F DA
|
||||
93 84 14 00 03 27 09 6E 13 04 44 00 63 DC E4 02
|
||||
83 27 04 00 E3 96 07 FE 93 85 14 00 E3 D2 E5 FE
|
||||
83 27 44 00 E3 9A 07 FC 93 07 84 00 93 85 15 00
|
||||
E3 88 E5 FC 93 87 47 00 83 A6 C7 FF E3 88 06 FE
|
||||
6F F0 9F FB 63 5C E0 02 B7 17 00 00 83 A7 47 6F
|
||||
63 82 07 02 B7 16 00 00 93 86 86 6F 93 07 00 00
|
||||
93 87 17 00 63 0C F7 00 93 86 46 00 03 A6 C6 FF
|
||||
E3 18 06 FE 37 17 00 00 23 20 F7 6E 83 20 C1 00
|
||||
03 24 81 00 83 24 41 00 03 29 01 00 13 01 01 01
|
||||
67 80 00 00 67 80 00 00 B7 17 00 00 03 A6 07 6E
|
||||
63 54 C0 02 B7 17 00 00 93 87 47 6F 93 16 26 00
|
||||
B3 86 F6 00 03 A7 07 00 13 07 F7 FF 23 A0 E7 00
|
||||
93 87 47 00 E3 98 D7 FE B7 17 00 00 13 17 26 00
|
||||
93 87 47 6F B3 87 E7 00 23 A0 C7 00 13 06 16 00
|
||||
B7 17 00 00 23 A0 C7 6E 67 80 00 00 13 01 01 FE
|
||||
23 2E 11 00 23 2C 81 00 23 2A 91 00 23 28 21 01
|
||||
23 26 31 01 23 24 41 01 23 22 51 01 B7 17 00 00
|
||||
13 07 20 0D 23 A2 E7 6E B7 17 00 00 23 A8 07 6E
|
||||
B7 17 00 00 03 A4 87 6D B7 17 00 00 83 A4 C7 6D
|
||||
93 85 04 00 13 05 04 00 EF 00 40 1A B7 17 00 00
|
||||
23 A4 A7 6E 93 85 04 00 13 05 04 00 EF 00 40 21
|
||||
B7 17 00 00 23 A6 A7 6E 13 05 20 0D EF F0 1F C7
|
||||
93 07 10 00 63 16 05 02 13 85 07 00 83 20 C1 01
|
||||
03 24 81 01 83 24 41 01 03 29 01 01 83 29 C1 00
|
||||
03 2A 81 00 83 2A 41 00 13 01 01 02 67 80 00 00
|
||||
37 17 00 00 B7 C7 37 00 93 87 27 4F 23 2A F7 6C
|
||||
EF F0 5F B6 93 05 A0 00 EF 00 80 1B 13 05 15 00
|
||||
37 14 00 00 23 20 A4 6E EF F0 9F B0 83 27 04 6E
|
||||
93 87 F7 FF 63 50 F0 08 B7 19 00 00 93 89 49 6F
|
||||
13 04 00 00 13 0A 00 00 B7 14 00 00 B7 1A 00 00
|
||||
6F 00 C0 01 13 0A 1A 00 83 A7 0A 6E 93 87 F7 FF
|
||||
93 89 49 00 13 04 05 00 63 58 FA 04 EF F0 9F B0
|
||||
93 05 A0 00 EF 00 C0 15 13 05 15 00 13 89 09 00
|
||||
23 A0 A9 00 33 05 85 00 83 A7 44 6E E3 D4 A7 FC
|
||||
EF F0 5F AE 93 05 A0 00 EF 00 80 13 13 05 15 00
|
||||
23 20 A9 00 33 05 85 00 83 A7 44 6E E3 C2 A7 FE
|
||||
6F F0 5F FA 13 05 00 00 37 17 00 00 93 97 27 00
|
||||
13 07 47 6F B3 07 F7 00 37 17 00 00 03 27 47 6E
|
||||
33 05 A7 40 23 A0 A7 00 EF F0 5F C1 EF F0 9F D5
|
||||
13 04 00 00 6F 00 C0 01 13 04 14 00 13 05 04 00
|
||||
EF F0 1F A4 EF F0 5F E1 EF F0 DF D3 EF F0 1F BF
|
||||
EF F0 1F C5 E3 02 05 FE 13 05 04 00 EF F0 5F A2
|
||||
93 05 D0 0F B7 27 00 00 03 A5 47 88 EF 00 40 0B
|
||||
93 07 05 00 6F F0 5F EB 13 06 05 00 13 05 00 00
|
||||
93 F6 15 00 63 84 06 00 33 05 C5 00 93 D5 15 00
|
||||
13 16 16 00 E3 96 05 FE 67 80 00 00 63 40 05 06
|
||||
63 C6 05 06 13 86 05 00 93 05 05 00 13 05 F0 FF
|
||||
63 0C 06 02 93 06 10 00 63 7A B6 00 63 58 C0 00
|
||||
13 16 16 00 93 96 16 00 E3 6A B6 FE 13 05 00 00
|
||||
63 E6 C5 00 B3 85 C5 40 33 65 D5 00 93 D6 16 00
|
||||
13 56 16 00 E3 96 06 FE 67 80 00 00 93 82 00 00
|
||||
EF F0 5F FB 13 85 05 00 67 80 02 00 33 05 A0 40
|
||||
63 D8 05 00 B3 05 B0 40 6F F0 DF F9 B3 05 B0 40
|
||||
93 82 00 00 EF F0 1F F9 33 05 A0 40 67 80 02 00
|
||||
93 82 00 00 63 CA 05 00 63 4C 05 00 EF F0 9F F7
|
||||
13 85 05 00 67 80 02 00 B3 05 B0 40 E3 58 05 FE
|
||||
33 05 A0 40 EF F0 1F F6 33 05 B0 40 67 80 02 00
|
||||
@000016D0
|
||||
FD 00 00 00
|
||||
@000016D4
|
||||
01 00 00 00 FF FF FF 7F 8F BC 00 00
|
897
test/testcases/bulgarian.dump
Normal file
897
test/testcases/bulgarian.dump
Normal file
@ -0,0 +1,897 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 428010ef jal ra,142c <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00002737 lui a4,0x2
|
||||
1004: 88472783 lw a5,-1916(a4) # 1884 <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 88a72223 sw a0,-1916(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00002737 lui a4,0x2
|
||||
1024: 88472683 lw a3,-1916(a4) # 1884 <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 88f72223 sw a5,-1916(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <random>:
|
||||
1044: ff010113 addi sp,sp,-16 # 1fff0 <__heap_start+0x1dff0>
|
||||
1048: 00112623 sw ra,12(sp)
|
||||
104c: 00812423 sw s0,8(sp)
|
||||
1050: 00912223 sw s1,4(sp)
|
||||
1054: 01212023 sw s2,0(sp)
|
||||
1058: 000017b7 lui a5,0x1
|
||||
105c: 6d47a483 lw s1,1748(a5) # 16d4 <__bss_start>
|
||||
1060: 000017b7 lui a5,0x1
|
||||
1064: 6e87a903 lw s2,1768(a5) # 16e8 <Q>
|
||||
1068: 00090593 mv a1,s2
|
||||
106c: 00048513 mv a0,s1
|
||||
1070: 630000ef jal ra,16a0 <__modsi3>
|
||||
1074: 000017b7 lui a5,0x1
|
||||
1078: 6dc7a583 lw a1,1756(a5) # 16dc <A>
|
||||
107c: 57c000ef jal ra,15f8 <__mulsi3>
|
||||
1080: 00050413 mv s0,a0
|
||||
1084: 00090593 mv a1,s2
|
||||
1088: 00048513 mv a0,s1
|
||||
108c: 590000ef jal ra,161c <__divsi3>
|
||||
1090: 000017b7 lui a5,0x1
|
||||
1094: 6ec7a583 lw a1,1772(a5) # 16ec <R>
|
||||
1098: 560000ef jal ra,15f8 <__mulsi3>
|
||||
109c: 40a40533 sub a0,s0,a0
|
||||
10a0: 02054263 bltz a0,10c4 <random+0x80>
|
||||
10a4: 000017b7 lui a5,0x1
|
||||
10a8: 6ca7aa23 sw a0,1748(a5) # 16d4 <__bss_start>
|
||||
10ac: 00c12083 lw ra,12(sp)
|
||||
10b0: 00812403 lw s0,8(sp)
|
||||
10b4: 00412483 lw s1,4(sp)
|
||||
10b8: 00012903 lw s2,0(sp)
|
||||
10bc: 01010113 addi sp,sp,16
|
||||
10c0: 00008067 ret
|
||||
10c4: 000017b7 lui a5,0x1
|
||||
10c8: 6d87a783 lw a5,1752(a5) # 16d8 <M>
|
||||
10cc: 00f50533 add a0,a0,a5
|
||||
10d0: fd5ff06f j 10a4 <random+0x60>
|
||||
|
||||
000010d4 <initialize>:
|
||||
10d4: 000017b7 lui a5,0x1
|
||||
10d8: 6ca7aa23 sw a0,1748(a5) # 16d4 <__bss_start>
|
||||
10dc: 00008067 ret
|
||||
|
||||
000010e0 <swap>:
|
||||
10e0: 000017b7 lui a5,0x1
|
||||
10e4: 6f478793 addi a5,a5,1780 # 16f4 <a>
|
||||
10e8: 00251513 slli a0,a0,0x2
|
||||
10ec: 00a78533 add a0,a5,a0
|
||||
10f0: 00052703 lw a4,0(a0)
|
||||
10f4: 00259593 slli a1,a1,0x2
|
||||
10f8: 00b787b3 add a5,a5,a1
|
||||
10fc: 0007a683 lw a3,0(a5)
|
||||
1100: 00d52023 sw a3,0(a0)
|
||||
1104: 00e7a023 sw a4,0(a5)
|
||||
1108: 00008067 ret
|
||||
|
||||
0000110c <pd>:
|
||||
110c: ff010113 addi sp,sp,-16
|
||||
1110: 00112623 sw ra,12(sp)
|
||||
1114: 00812423 sw s0,8(sp)
|
||||
1118: 00912223 sw s1,4(sp)
|
||||
111c: 01212023 sw s2,0(sp)
|
||||
1120: 00050913 mv s2,a0
|
||||
1124: 000017b7 lui a5,0x1
|
||||
1128: 6f07a503 lw a0,1776(a5) # 16f0 <h>
|
||||
112c: 08a94063 blt s2,a0,11ac <pd+0xa0>
|
||||
1130: 00150413 addi s0,a0,1
|
||||
1134: 00040593 mv a1,s0
|
||||
1138: 4c0000ef jal ra,15f8 <__mulsi3>
|
||||
113c: 01f55793 srli a5,a0,0x1f
|
||||
1140: 00a78533 add a0,a5,a0
|
||||
1144: 40155513 srai a0,a0,0x1
|
||||
1148: 06a90663 beq s2,a0,11b4 <pd+0xa8>
|
||||
114c: 02894e63 blt s2,s0,1188 <pd+0x7c>
|
||||
1150: 00140493 addi s1,s0,1
|
||||
1154: 00040593 mv a1,s0
|
||||
1158: 00048513 mv a0,s1
|
||||
115c: 49c000ef jal ra,15f8 <__mulsi3>
|
||||
1160: 01f55793 srli a5,a0,0x1f
|
||||
1164: 00a787b3 add a5,a5,a0
|
||||
1168: 4017d793 srai a5,a5,0x1
|
||||
116c: 01278663 beq a5,s2,1178 <pd+0x6c>
|
||||
1170: 00048413 mv s0,s1
|
||||
1174: fd9ff06f j 114c <pd+0x40>
|
||||
1178: 000017b7 lui a5,0x1
|
||||
117c: 6e87a823 sw s0,1776(a5) # 16f0 <h>
|
||||
1180: 00100513 li a0,1
|
||||
1184: 0100006f j 1194 <pd+0x88>
|
||||
1188: 000017b7 lui a5,0x1
|
||||
118c: 6e87a823 sw s0,1776(a5) # 16f0 <h>
|
||||
1190: 00000513 li a0,0
|
||||
1194: 00c12083 lw ra,12(sp)
|
||||
1198: 00812403 lw s0,8(sp)
|
||||
119c: 00412483 lw s1,4(sp)
|
||||
11a0: 00012903 lw s2,0(sp)
|
||||
11a4: 01010113 addi sp,sp,16
|
||||
11a8: 00008067 ret
|
||||
11ac: 00000513 li a0,0
|
||||
11b0: fe5ff06f j 1194 <pd+0x88>
|
||||
11b4: 00100513 li a0,1
|
||||
11b8: fddff06f j 1194 <pd+0x88>
|
||||
|
||||
000011bc <show>:
|
||||
11bc: 000017b7 lui a5,0x1
|
||||
11c0: 6e07a783 lw a5,1760(a5) # 16e0 <now>
|
||||
11c4: 04f05c63 blez a5,121c <show+0x60>
|
||||
11c8: ff010113 addi sp,sp,-16
|
||||
11cc: 00112623 sw ra,12(sp)
|
||||
11d0: 00812423 sw s0,8(sp)
|
||||
11d4: 00912223 sw s1,4(sp)
|
||||
11d8: 01212023 sw s2,0(sp)
|
||||
11dc: 00001437 lui s0,0x1
|
||||
11e0: 6f440413 addi s0,s0,1780 # 16f4 <a>
|
||||
11e4: 00000493 li s1,0
|
||||
11e8: 00001937 lui s2,0x1
|
||||
11ec: 00042503 lw a0,0(s0)
|
||||
11f0: e11ff0ef jal ra,1000 <printInt>
|
||||
11f4: 00148493 addi s1,s1,1
|
||||
11f8: 00440413 addi s0,s0,4
|
||||
11fc: 6e092783 lw a5,1760(s2) # 16e0 <now>
|
||||
1200: fef4c6e3 blt s1,a5,11ec <show+0x30>
|
||||
1204: 00c12083 lw ra,12(sp)
|
||||
1208: 00812403 lw s0,8(sp)
|
||||
120c: 00412483 lw s1,4(sp)
|
||||
1210: 00012903 lw s2,0(sp)
|
||||
1214: 01010113 addi sp,sp,16
|
||||
1218: 00008067 ret
|
||||
121c: 00008067 ret
|
||||
|
||||
00001220 <win>:
|
||||
1220: 000017b7 lui a5,0x1
|
||||
1224: 6e07a883 lw a7,1760(a5) # 16e0 <now>
|
||||
1228: 000017b7 lui a5,0x1
|
||||
122c: 6f07a783 lw a5,1776(a5) # 16f0 <h>
|
||||
1230: 00000513 li a0,0
|
||||
1234: 0cf89663 bne a7,a5,1300 <win+0xe0>
|
||||
1238: e7010113 addi sp,sp,-400
|
||||
123c: 03105663 blez a7,1268 <win+0x48>
|
||||
1240: 000017b7 lui a5,0x1
|
||||
1244: 6f478793 addi a5,a5,1780 # 16f4 <a>
|
||||
1248: 00010713 mv a4,sp
|
||||
124c: 00289613 slli a2,a7,0x2
|
||||
1250: 00f60633 add a2,a2,a5
|
||||
1254: 0007a683 lw a3,0(a5)
|
||||
1258: 00d72023 sw a3,0(a4)
|
||||
125c: 00478793 addi a5,a5,4
|
||||
1260: 00470713 addi a4,a4,4
|
||||
1264: fec798e3 bne a5,a2,1254 <win+0x34>
|
||||
1268: 00410813 addi a6,sp,4
|
||||
126c: 00088e13 mv t3,a7
|
||||
1270: 00289593 slli a1,a7,0x2
|
||||
1274: 002585b3 add a1,a1,sp
|
||||
1278: 00080613 mv a2,a6
|
||||
127c: 00000513 li a0,0
|
||||
1280: fff88313 addi t1,a7,-1
|
||||
1284: 0280006f j 12ac <win+0x8c>
|
||||
1288: 00478793 addi a5,a5,4
|
||||
128c: 00b78e63 beq a5,a1,12a8 <win+0x88>
|
||||
1290: ffc62703 lw a4,-4(a2)
|
||||
1294: 0007a683 lw a3,0(a5)
|
||||
1298: fee6d8e3 bge a3,a4,1288 <win+0x68>
|
||||
129c: fed62e23 sw a3,-4(a2)
|
||||
12a0: 00e7a023 sw a4,0(a5)
|
||||
12a4: fe5ff06f j 1288 <win+0x68>
|
||||
12a8: 00460613 addi a2,a2,4
|
||||
12ac: 00655a63 bge a0,t1,12c0 <win+0xa0>
|
||||
12b0: 00150513 addi a0,a0,1
|
||||
12b4: ff155ae3 bge a0,a7,12a8 <win+0x88>
|
||||
12b8: 00060793 mv a5,a2
|
||||
12bc: fd5ff06f j 1290 <win+0x70>
|
||||
12c0: 03105863 blez a7,12f0 <win+0xd0>
|
||||
12c4: 00012503 lw a0,0(sp)
|
||||
12c8: 00100793 li a5,1
|
||||
12cc: 02f51663 bne a0,a5,12f8 <win+0xd8>
|
||||
12d0: 01c78c63 beq a5,t3,12e8 <win+0xc8>
|
||||
12d4: 00082703 lw a4,0(a6)
|
||||
12d8: 00178793 addi a5,a5,1
|
||||
12dc: 00480813 addi a6,a6,4
|
||||
12e0: fef708e3 beq a4,a5,12d0 <win+0xb0>
|
||||
12e4: 00000513 li a0,0
|
||||
12e8: 19010113 addi sp,sp,400
|
||||
12ec: 00008067 ret
|
||||
12f0: 00100513 li a0,1
|
||||
12f4: ff5ff06f j 12e8 <win+0xc8>
|
||||
12f8: 00000513 li a0,0
|
||||
12fc: fedff06f j 12e8 <win+0xc8>
|
||||
1300: 00008067 ret
|
||||
|
||||
00001304 <merge>:
|
||||
1304: 000017b7 lui a5,0x1
|
||||
1308: 6e07a703 lw a4,1760(a5) # 16e0 <now>
|
||||
130c: 0ce05463 blez a4,13d4 <merge+0xd0>
|
||||
1310: ff010113 addi sp,sp,-16
|
||||
1314: 00112623 sw ra,12(sp)
|
||||
1318: 00812423 sw s0,8(sp)
|
||||
131c: 00912223 sw s1,4(sp)
|
||||
1320: 01212023 sw s2,0(sp)
|
||||
1324: 00001437 lui s0,0x1
|
||||
1328: 6f440413 addi s0,s0,1780 # 16f4 <a>
|
||||
132c: 00000493 li s1,0
|
||||
1330: 00078913 mv s2,a5
|
||||
1334: 01c0006f j 1350 <merge+0x4c>
|
||||
1338: 00048513 mv a0,s1
|
||||
133c: da5ff0ef jal ra,10e0 <swap>
|
||||
1340: 00148493 addi s1,s1,1
|
||||
1344: 6e092703 lw a4,1760(s2)
|
||||
1348: 00440413 addi s0,s0,4
|
||||
134c: 02e4dc63 bge s1,a4,1384 <merge+0x80>
|
||||
1350: 00042783 lw a5,0(s0)
|
||||
1354: fe0796e3 bnez a5,1340 <merge+0x3c>
|
||||
1358: 00148593 addi a1,s1,1
|
||||
135c: fee5d2e3 bge a1,a4,1340 <merge+0x3c>
|
||||
1360: 00442783 lw a5,4(s0)
|
||||
1364: fc079ae3 bnez a5,1338 <merge+0x34>
|
||||
1368: 00840793 addi a5,s0,8
|
||||
136c: 00158593 addi a1,a1,1
|
||||
1370: fce588e3 beq a1,a4,1340 <merge+0x3c>
|
||||
1374: 00478793 addi a5,a5,4
|
||||
1378: ffc7a683 lw a3,-4(a5)
|
||||
137c: fe0688e3 beqz a3,136c <merge+0x68>
|
||||
1380: fb9ff06f j 1338 <merge+0x34>
|
||||
1384: 02e05c63 blez a4,13bc <merge+0xb8>
|
||||
1388: 000017b7 lui a5,0x1
|
||||
138c: 6f47a783 lw a5,1780(a5) # 16f4 <a>
|
||||
1390: 02078263 beqz a5,13b4 <merge+0xb0>
|
||||
1394: 000016b7 lui a3,0x1
|
||||
1398: 6f868693 addi a3,a3,1784 # 16f8 <a+0x4>
|
||||
139c: 00000793 li a5,0
|
||||
13a0: 00178793 addi a5,a5,1
|
||||
13a4: 00f70c63 beq a4,a5,13bc <merge+0xb8>
|
||||
13a8: 00468693 addi a3,a3,4
|
||||
13ac: ffc6a603 lw a2,-4(a3)
|
||||
13b0: fe0618e3 bnez a2,13a0 <merge+0x9c>
|
||||
13b4: 00001737 lui a4,0x1
|
||||
13b8: 6ef72023 sw a5,1760(a4) # 16e0 <now>
|
||||
13bc: 00c12083 lw ra,12(sp)
|
||||
13c0: 00812403 lw s0,8(sp)
|
||||
13c4: 00412483 lw s1,4(sp)
|
||||
13c8: 00012903 lw s2,0(sp)
|
||||
13cc: 01010113 addi sp,sp,16
|
||||
13d0: 00008067 ret
|
||||
13d4: 00008067 ret
|
||||
|
||||
000013d8 <move>:
|
||||
13d8: 000017b7 lui a5,0x1
|
||||
13dc: 6e07a603 lw a2,1760(a5) # 16e0 <now>
|
||||
13e0: 02c05463 blez a2,1408 <move+0x30>
|
||||
13e4: 000017b7 lui a5,0x1
|
||||
13e8: 6f478793 addi a5,a5,1780 # 16f4 <a>
|
||||
13ec: 00261693 slli a3,a2,0x2
|
||||
13f0: 00f686b3 add a3,a3,a5
|
||||
13f4: 0007a703 lw a4,0(a5)
|
||||
13f8: fff70713 addi a4,a4,-1
|
||||
13fc: 00e7a023 sw a4,0(a5)
|
||||
1400: 00478793 addi a5,a5,4
|
||||
1404: fed798e3 bne a5,a3,13f4 <move+0x1c>
|
||||
1408: 000017b7 lui a5,0x1
|
||||
140c: 00261713 slli a4,a2,0x2
|
||||
1410: 6f478793 addi a5,a5,1780 # 16f4 <a>
|
||||
1414: 00e787b3 add a5,a5,a4
|
||||
1418: 00c7a023 sw a2,0(a5)
|
||||
141c: 00160613 addi a2,a2,1
|
||||
1420: 000017b7 lui a5,0x1
|
||||
1424: 6ec7a023 sw a2,1760(a5) # 16e0 <now>
|
||||
1428: 00008067 ret
|
||||
|
||||
0000142c <main>:
|
||||
142c: fe010113 addi sp,sp,-32
|
||||
1430: 00112e23 sw ra,28(sp)
|
||||
1434: 00812c23 sw s0,24(sp)
|
||||
1438: 00912a23 sw s1,20(sp)
|
||||
143c: 01212823 sw s2,16(sp)
|
||||
1440: 01312623 sw s3,12(sp)
|
||||
1444: 01412423 sw s4,8(sp)
|
||||
1448: 01512223 sw s5,4(sp)
|
||||
144c: 000017b7 lui a5,0x1
|
||||
1450: 0d200713 li a4,210
|
||||
1454: 6ee7a223 sw a4,1764(a5) # 16e4 <n>
|
||||
1458: 000017b7 lui a5,0x1
|
||||
145c: 6e07a823 sw zero,1776(a5) # 16f0 <h>
|
||||
1460: 000017b7 lui a5,0x1
|
||||
1464: 6d87a403 lw s0,1752(a5) # 16d8 <M>
|
||||
1468: 000017b7 lui a5,0x1
|
||||
146c: 6dc7a483 lw s1,1756(a5) # 16dc <A>
|
||||
1470: 00048593 mv a1,s1
|
||||
1474: 00040513 mv a0,s0
|
||||
1478: 1a4000ef jal ra,161c <__divsi3>
|
||||
147c: 000017b7 lui a5,0x1
|
||||
1480: 6ea7a423 sw a0,1768(a5) # 16e8 <Q>
|
||||
1484: 00048593 mv a1,s1
|
||||
1488: 00040513 mv a0,s0
|
||||
148c: 214000ef jal ra,16a0 <__modsi3>
|
||||
1490: 000017b7 lui a5,0x1
|
||||
1494: 6ea7a623 sw a0,1772(a5) # 16ec <R>
|
||||
1498: 0d200513 li a0,210
|
||||
149c: c71ff0ef jal ra,110c <pd>
|
||||
14a0: 00100793 li a5,1
|
||||
14a4: 02051663 bnez a0,14d0 <main+0xa4>
|
||||
14a8: 00078513 mv a0,a5
|
||||
14ac: 01c12083 lw ra,28(sp)
|
||||
14b0: 01812403 lw s0,24(sp)
|
||||
14b4: 01412483 lw s1,20(sp)
|
||||
14b8: 01012903 lw s2,16(sp)
|
||||
14bc: 00c12983 lw s3,12(sp)
|
||||
14c0: 00812a03 lw s4,8(sp)
|
||||
14c4: 00412a83 lw s5,4(sp)
|
||||
14c8: 02010113 addi sp,sp,32
|
||||
14cc: 00008067 ret
|
||||
14d0: 00001737 lui a4,0x1
|
||||
14d4: 0037c7b7 lui a5,0x37c
|
||||
14d8: 4f278793 addi a5,a5,1266 # 37c4f2 <__heap_start+0x37a4f2>
|
||||
14dc: 6cf72a23 sw a5,1748(a4) # 16d4 <__bss_start>
|
||||
14e0: b65ff0ef jal ra,1044 <random>
|
||||
14e4: 00a00593 li a1,10
|
||||
14e8: 1b8000ef jal ra,16a0 <__modsi3>
|
||||
14ec: 00150513 addi a0,a0,1
|
||||
14f0: 00001437 lui s0,0x1
|
||||
14f4: 6ea42023 sw a0,1760(s0) # 16e0 <now>
|
||||
14f8: b09ff0ef jal ra,1000 <printInt>
|
||||
14fc: 6e042783 lw a5,1760(s0)
|
||||
1500: fff78793 addi a5,a5,-1
|
||||
1504: 08f05063 blez a5,1584 <main+0x158>
|
||||
1508: 000019b7 lui s3,0x1
|
||||
150c: 6f498993 addi s3,s3,1780 # 16f4 <a>
|
||||
1510: 00000413 li s0,0
|
||||
1514: 00000a13 li s4,0
|
||||
1518: 000014b7 lui s1,0x1
|
||||
151c: 00001ab7 lui s5,0x1
|
||||
1520: 01c0006f j 153c <main+0x110>
|
||||
1524: 001a0a13 addi s4,s4,1
|
||||
1528: 6e0aa783 lw a5,1760(s5) # 16e0 <now>
|
||||
152c: fff78793 addi a5,a5,-1
|
||||
1530: 00498993 addi s3,s3,4
|
||||
1534: 00050413 mv s0,a0
|
||||
1538: 04fa5863 bge s4,a5,1588 <main+0x15c>
|
||||
153c: b09ff0ef jal ra,1044 <random>
|
||||
1540: 00a00593 li a1,10
|
||||
1544: 15c000ef jal ra,16a0 <__modsi3>
|
||||
1548: 00150513 addi a0,a0,1
|
||||
154c: 00098913 mv s2,s3
|
||||
1550: 00a9a023 sw a0,0(s3)
|
||||
1554: 00850533 add a0,a0,s0
|
||||
1558: 6e44a783 lw a5,1764(s1) # 16e4 <n>
|
||||
155c: fca7d4e3 bge a5,a0,1524 <main+0xf8>
|
||||
1560: ae5ff0ef jal ra,1044 <random>
|
||||
1564: 00a00593 li a1,10
|
||||
1568: 138000ef jal ra,16a0 <__modsi3>
|
||||
156c: 00150513 addi a0,a0,1
|
||||
1570: 00a92023 sw a0,0(s2)
|
||||
1574: 00850533 add a0,a0,s0
|
||||
1578: 6e44a783 lw a5,1764(s1)
|
||||
157c: fea7c2e3 blt a5,a0,1560 <main+0x134>
|
||||
1580: fa5ff06f j 1524 <main+0xf8>
|
||||
1584: 00000513 li a0,0
|
||||
1588: 00001737 lui a4,0x1
|
||||
158c: 00279793 slli a5,a5,0x2
|
||||
1590: 6f470713 addi a4,a4,1780 # 16f4 <a>
|
||||
1594: 00f707b3 add a5,a4,a5
|
||||
1598: 00001737 lui a4,0x1
|
||||
159c: 6e472703 lw a4,1764(a4) # 16e4 <n>
|
||||
15a0: 40a70533 sub a0,a4,a0
|
||||
15a4: 00a7a023 sw a0,0(a5)
|
||||
15a8: c15ff0ef jal ra,11bc <show>
|
||||
15ac: d59ff0ef jal ra,1304 <merge>
|
||||
15b0: 00000413 li s0,0
|
||||
15b4: 01c0006f j 15d0 <main+0x1a4>
|
||||
15b8: 00140413 addi s0,s0,1
|
||||
15bc: 00040513 mv a0,s0
|
||||
15c0: a41ff0ef jal ra,1000 <printInt>
|
||||
15c4: e15ff0ef jal ra,13d8 <move>
|
||||
15c8: d3dff0ef jal ra,1304 <merge>
|
||||
15cc: bf1ff0ef jal ra,11bc <show>
|
||||
15d0: c51ff0ef jal ra,1220 <win>
|
||||
15d4: fe0502e3 beqz a0,15b8 <main+0x18c>
|
||||
15d8: 00040513 mv a0,s0
|
||||
15dc: a25ff0ef jal ra,1000 <printInt>
|
||||
15e0: 0fd00593 li a1,253
|
||||
15e4: 000027b7 lui a5,0x2
|
||||
15e8: 8847a503 lw a0,-1916(a5) # 1884 <__bss_end>
|
||||
15ec: 0b4000ef jal ra,16a0 <__modsi3>
|
||||
15f0: 00050793 mv a5,a0
|
||||
15f4: eb5ff06f j 14a8 <main+0x7c>
|
||||
|
||||
000015f8 <__mulsi3>:
|
||||
15f8: 00050613 mv a2,a0
|
||||
15fc: 00000513 li a0,0
|
||||
1600: 0015f693 andi a3,a1,1
|
||||
1604: 00068463 beqz a3,160c <__mulsi3+0x14>
|
||||
1608: 00c50533 add a0,a0,a2
|
||||
160c: 0015d593 srli a1,a1,0x1
|
||||
1610: 00161613 slli a2,a2,0x1
|
||||
1614: fe0596e3 bnez a1,1600 <__mulsi3+0x8>
|
||||
1618: 00008067 ret
|
||||
|
||||
0000161c <__divsi3>:
|
||||
161c: 06054063 bltz a0,167c <__umodsi3+0x10>
|
||||
1620: 0605c663 bltz a1,168c <__umodsi3+0x20>
|
||||
|
||||
00001624 <__udivsi3>:
|
||||
1624: 00058613 mv a2,a1
|
||||
1628: 00050593 mv a1,a0
|
||||
162c: fff00513 li a0,-1
|
||||
1630: 02060c63 beqz a2,1668 <__udivsi3+0x44>
|
||||
1634: 00100693 li a3,1
|
||||
1638: 00b67a63 bgeu a2,a1,164c <__udivsi3+0x28>
|
||||
163c: 00c05863 blez a2,164c <__udivsi3+0x28>
|
||||
1640: 00161613 slli a2,a2,0x1
|
||||
1644: 00169693 slli a3,a3,0x1
|
||||
1648: feb66ae3 bltu a2,a1,163c <__udivsi3+0x18>
|
||||
164c: 00000513 li a0,0
|
||||
1650: 00c5e663 bltu a1,a2,165c <__udivsi3+0x38>
|
||||
1654: 40c585b3 sub a1,a1,a2
|
||||
1658: 00d56533 or a0,a0,a3
|
||||
165c: 0016d693 srli a3,a3,0x1
|
||||
1660: 00165613 srli a2,a2,0x1
|
||||
1664: fe0696e3 bnez a3,1650 <__udivsi3+0x2c>
|
||||
1668: 00008067 ret
|
||||
|
||||
0000166c <__umodsi3>:
|
||||
166c: 00008293 mv t0,ra
|
||||
1670: fb5ff0ef jal ra,1624 <__udivsi3>
|
||||
1674: 00058513 mv a0,a1
|
||||
1678: 00028067 jr t0
|
||||
167c: 40a00533 neg a0,a0
|
||||
1680: 0005d863 bgez a1,1690 <__umodsi3+0x24>
|
||||
1684: 40b005b3 neg a1,a1
|
||||
1688: f9dff06f j 1624 <__udivsi3>
|
||||
168c: 40b005b3 neg a1,a1
|
||||
1690: 00008293 mv t0,ra
|
||||
1694: f91ff0ef jal ra,1624 <__udivsi3>
|
||||
1698: 40a00533 neg a0,a0
|
||||
169c: 00028067 jr t0
|
||||
|
||||
000016a0 <__modsi3>:
|
||||
16a0: 00008293 mv t0,ra
|
||||
16a4: 0005ca63 bltz a1,16b8 <__modsi3+0x18>
|
||||
16a8: 00054c63 bltz a0,16c0 <__modsi3+0x20>
|
||||
16ac: f79ff0ef jal ra,1624 <__udivsi3>
|
||||
16b0: 00058513 mv a0,a1
|
||||
16b4: 00028067 jr t0
|
||||
16b8: 40b005b3 neg a1,a1
|
||||
16bc: fe0558e3 bgez a0,16ac <__modsi3+0xc>
|
||||
16c0: 40a00533 neg a0,a0
|
||||
16c4: f61ff0ef jal ra,1624 <__udivsi3>
|
||||
16c8: 40b00533 neg a0,a1
|
||||
16cc: 00028067 jr t0
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
000016d0 <Mod>:
|
||||
16d0: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .sdata:
|
||||
|
||||
000016d4 <seed>:
|
||||
16d4: 0001 nop
|
||||
...
|
||||
|
||||
000016d8 <M>:
|
||||
16d8: ffff 0xffff
|
||||
16da: 7fff 0x7fff
|
||||
|
||||
000016dc <A>:
|
||||
16dc: 0000bc8f 0xbc8f
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
000016e0 <now>:
|
||||
16e0: 0000 unimp
|
||||
...
|
||||
|
||||
000016e4 <n>:
|
||||
16e4: 0000 unimp
|
||||
...
|
||||
|
||||
000016e8 <Q>:
|
||||
16e8: 0000 unimp
|
||||
...
|
||||
|
||||
000016ec <R>:
|
||||
16ec: 0000 unimp
|
||||
...
|
||||
|
||||
000016f0 <h>:
|
||||
16f0: 0000 unimp
|
||||
...
|
||||
|
||||
000016f4 <a>:
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
00001884 <judgeResult>:
|
||||
1884: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 008e slli ra,ra,0x3
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0048 addi a0,sp,4
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6d00 flw fs0,24(a0)
|
||||
46: 6c75 lui s8,0x1d
|
||||
48: 6964 flw fs1,84(a0)
|
||||
4a: 00532e33 slt t3,t1,t0
|
||||
4e: 0001 nop
|
||||
50: 0000 unimp
|
||||
52: 0500 addi s0,sp,640
|
||||
54: f802 fsw ft0,48(sp)
|
||||
56: 0015 c.nop 5
|
||||
58: 0300 addi s0,sp,384
|
||||
5a: 0124 addi s1,sp,136
|
||||
5c: 04090103 lb sp,64(s2)
|
||||
60: 0100 addi s0,sp,128
|
||||
62: 04090203 lb tp,64(s2)
|
||||
66: 0100 addi s0,sp,128
|
||||
68: 04090103 lb sp,64(s2)
|
||||
6c: 0100 addi s0,sp,128
|
||||
6e: 04090103 lb sp,64(s2)
|
||||
72: 0100 addi s0,sp,128
|
||||
74: 04090203 lb tp,64(s2)
|
||||
78: 0100 addi s0,sp,128
|
||||
7a: 04090103 lb sp,64(s2)
|
||||
7e: 0100 addi s0,sp,128
|
||||
80: 04090103 lb sp,64(s2)
|
||||
84: 0100 addi s0,sp,128
|
||||
86: 04090103 lb sp,64(s2)
|
||||
8a: 0100 addi s0,sp,128
|
||||
8c: 0409 addi s0,s0,2
|
||||
8e: 0000 unimp
|
||||
90: 0101 addi sp,sp,0
|
||||
92: 0164 addi s1,sp,140
|
||||
94: 0000 unimp
|
||||
96: 0002 c.slli64 zero
|
||||
98: 0045 c.nop 17
|
||||
9a: 0000 unimp
|
||||
9c: 0101 addi sp,sp,0
|
||||
9e: 000d0efb 0xd0efb
|
||||
a2: 0101 addi sp,sp,0
|
||||
a4: 0101 addi sp,sp,0
|
||||
a6: 0000 unimp
|
||||
a8: 0100 addi s0,sp,128
|
||||
aa: 0000 unimp
|
||||
ac: 2e01 jal 3bc <printInt-0xc44>
|
||||
ae: 2f2e fld ft10,200(sp)
|
||||
b0: 2e2e fld ft8,200(sp)
|
||||
b2: 2f2e2e2f 0x2f2e2e2f
|
||||
b6: 2f2e fld ft10,200(sp)
|
||||
b8: 6972 flw fs2,28(sp)
|
||||
ba: 2d766373 csrrsi t1,0x2d7,12
|
||||
be: 2f636367 0x2f636367
|
||||
c2: 696c flw fa1,84(a0)
|
||||
c4: 6762 flw fa4,24(sp)
|
||||
c6: 632f6363 bltu t5,s2,6ec <printInt-0x914>
|
||||
ca: 69666e6f jal t3,66760 <__heap_start+0x64760>
|
||||
ce: 69722f67 0x69722f67
|
||||
d2: 00766373 csrrsi t1,0x7,12
|
||||
d6: 6400 flw fs0,8(s0)
|
||||
d8: 7669 lui a2,0xffffa
|
||||
da: 532e lw t1,232(sp)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 0000 unimp
|
||||
e0: 0000 unimp
|
||||
e2: 0205 addi tp,tp,1
|
||||
e4: 161c addi a5,sp,800
|
||||
e6: 0000 unimp
|
||||
e8: 0100c403 lbu s0,16(ra)
|
||||
ec: 04090103 lb sp,64(s2)
|
||||
f0: 0100 addi s0,sp,128
|
||||
f2: 04090403 lb s0,64(s2)
|
||||
f6: 0100 addi s0,sp,128
|
||||
f8: 04090103 lb sp,64(s2)
|
||||
fc: 0100 addi s0,sp,128
|
||||
fe: 04090103 lb sp,64(s2)
|
||||
102: 0100 addi s0,sp,128
|
||||
104: 04090103 lb sp,64(s2)
|
||||
108: 0100 addi s0,sp,128
|
||||
10a: 04090103 lb sp,64(s2)
|
||||
10e: 0100 addi s0,sp,128
|
||||
110: 04090103 lb sp,64(s2)
|
||||
114: 0100 addi s0,sp,128
|
||||
116: 04090203 lb tp,64(s2)
|
||||
11a: 0100 addi s0,sp,128
|
||||
11c: 04090103 lb sp,64(s2)
|
||||
120: 0100 addi s0,sp,128
|
||||
122: 04090103 lb sp,64(s2)
|
||||
126: 0100 addi s0,sp,128
|
||||
128: 04090103 lb sp,64(s2)
|
||||
12c: 0100 addi s0,sp,128
|
||||
12e: 04090203 lb tp,64(s2)
|
||||
132: 0100 addi s0,sp,128
|
||||
134: 04090203 lb tp,64(s2)
|
||||
138: 0100 addi s0,sp,128
|
||||
13a: 04090103 lb sp,64(s2)
|
||||
13e: 0100 addi s0,sp,128
|
||||
140: 04090103 lb sp,64(s2)
|
||||
144: 0100 addi s0,sp,128
|
||||
146: 04090203 lb tp,64(s2)
|
||||
14a: 0100 addi s0,sp,128
|
||||
14c: 04090103 lb sp,64(s2)
|
||||
150: 0100 addi s0,sp,128
|
||||
152: 04090103 lb sp,64(s2)
|
||||
156: 0100 addi s0,sp,128
|
||||
158: 04090203 lb tp,64(s2)
|
||||
15c: 0100 addi s0,sp,128
|
||||
15e: 04090503 lb a0,64(s2)
|
||||
162: 0100 addi s0,sp,128
|
||||
164: 04090103 lb sp,64(s2)
|
||||
168: 0100 addi s0,sp,128
|
||||
16a: 04090103 lb sp,64(s2)
|
||||
16e: 0100 addi s0,sp,128
|
||||
170: 04090103 lb sp,64(s2)
|
||||
174: 0100 addi s0,sp,128
|
||||
176: 04090503 lb a0,64(s2)
|
||||
17a: 0100 addi s0,sp,128
|
||||
17c: 04090103 lb sp,64(s2)
|
||||
180: 0100 addi s0,sp,128
|
||||
182: 04090103 lb sp,64(s2)
|
||||
186: 0100 addi s0,sp,128
|
||||
188: 04090103 lb sp,64(s2)
|
||||
18c: 0100 addi s0,sp,128
|
||||
18e: 04090203 lb tp,64(s2)
|
||||
192: 0100 addi s0,sp,128
|
||||
194: 04090203 lb tp,64(s2)
|
||||
198: 0100 addi s0,sp,128
|
||||
19a: 04090103 lb sp,64(s2)
|
||||
19e: 0100 addi s0,sp,128
|
||||
1a0: 04090103 lb sp,64(s2)
|
||||
1a4: 0100 addi s0,sp,128
|
||||
1a6: 04090103 lb sp,64(s2)
|
||||
1aa: 0100 addi s0,sp,128
|
||||
1ac: 04090403 lb s0,64(s2)
|
||||
1b0: 0100 addi s0,sp,128
|
||||
1b2: 04090103 lb sp,64(s2)
|
||||
1b6: 0100 addi s0,sp,128
|
||||
1b8: 04090103 lb sp,64(s2)
|
||||
1bc: 0100 addi s0,sp,128
|
||||
1be: 04090203 lb tp,64(s2)
|
||||
1c2: 0100 addi s0,sp,128
|
||||
1c4: 04090103 lb sp,64(s2)
|
||||
1c8: 0100 addi s0,sp,128
|
||||
1ca: 04090103 lb sp,64(s2)
|
||||
1ce: 0100 addi s0,sp,128
|
||||
1d0: 04090203 lb tp,64(s2)
|
||||
1d4: 0100 addi s0,sp,128
|
||||
1d6: 04090103 lb sp,64(s2)
|
||||
1da: 0100 addi s0,sp,128
|
||||
1dc: 04090203 lb tp,64(s2)
|
||||
1e0: 0100 addi s0,sp,128
|
||||
1e2: 04090103 lb sp,64(s2)
|
||||
1e6: 0100 addi s0,sp,128
|
||||
1e8: 04090103 lb sp,64(s2)
|
||||
1ec: 0100 addi s0,sp,128
|
||||
1ee: 04090103 lb sp,64(s2)
|
||||
1f2: 0100 addi s0,sp,128
|
||||
1f4: 0409 addi s0,s0,2
|
||||
1f6: 0000 unimp
|
||||
1f8: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 15f8 addi a4,sp,748
|
||||
12: 0000 unimp
|
||||
14: 161c addi a5,sp,800
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0032 c.slli zero,0xc
|
||||
1e: 0000 unimp
|
||||
20: 0000008b 0x8b
|
||||
24: 8001 c.srli64 s0
|
||||
26: 0022 c.slli zero,0x8
|
||||
28: 0000 unimp
|
||||
2a: 0002 c.slli64 zero
|
||||
2c: 0014 0x14
|
||||
2e: 0000 unimp
|
||||
30: 0104 addi s1,sp,128
|
||||
32: 0092 slli ra,ra,0x4
|
||||
34: 0000 unimp
|
||||
36: 161c addi a5,sp,800
|
||||
38: 0000 unimp
|
||||
3a: 16d0 addi a2,sp,868
|
||||
3c: 0000 unimp
|
||||
3e: 0099 addi ra,ra,6
|
||||
40: 0000 unimp
|
||||
42: 0032 c.slli zero,0xc
|
||||
44: 0000 unimp
|
||||
46: 0000008b 0x8b
|
||||
4a: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
12: 0000 unimp
|
||||
14: 1101 addi sp,sp,-32
|
||||
16: 1000 addi s0,sp,32
|
||||
18: 1106 slli sp,sp,0x21
|
||||
1a: 1201 addi tp,tp,-32
|
||||
1c: 0301 addi t1,t1,0
|
||||
1e: 1b0e slli s6,s6,0x23
|
||||
20: 250e fld fa0,192(sp)
|
||||
22: 130e slli t1,t1,0x23
|
||||
24: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 15f8 addi a4,sp,748
|
||||
12: 0000 unimp
|
||||
14: 0024 addi s1,sp,8
|
||||
...
|
||||
1e: 0000 unimp
|
||||
20: 001c 0x1c
|
||||
22: 0000 unimp
|
||||
24: 0002 c.slli64 zero
|
||||
26: 0026 c.slli zero,0x9
|
||||
28: 0000 unimp
|
||||
2a: 0004 0x4
|
||||
2c: 0000 unimp
|
||||
2e: 0000 unimp
|
||||
30: 161c addi a5,sp,800
|
||||
32: 0000 unimp
|
||||
34: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 6d2f7663 bgeu t5,s2,6f2 <printInt-0x90e>
|
||||
2a: 6c75 lui s8,0x1d
|
||||
2c: 6964 flw fs1,84(a0)
|
||||
2e: 00532e33 slt t3,t1,t0
|
||||
32: 6d6f682f 0x6d6f682f
|
||||
36: 2f65 jal 7ee <printInt-0x812>
|
||||
38: 712d7577 0x712d7577
|
||||
3c: 6e69 lui t3,0x1a
|
||||
3e: 35312d67 0x35312d67
|
||||
42: 69722f37 lui t5,0x69722
|
||||
46: 2d766373 csrrsi t1,0x2d7,12
|
||||
4a: 2d756e67 0x2d756e67
|
||||
4e: 6f74 flw fa3,92(a4)
|
||||
50: 68636c6f jal s8,366d6 <__heap_start+0x346d6>
|
||||
54: 6961 lui s2,0x18
|
||||
56: 2f6e fld ft10,216(sp)
|
||||
58: 7562 flw fa0,56(sp)
|
||||
5a: 6c69 lui s8,0x1a
|
||||
5c: 2d64 fld fs1,216(a0)
|
||||
5e: 2d636367 0x2d636367
|
||||
62: 656e flw fa0,216(sp)
|
||||
64: 62696c77 0x62696c77
|
||||
68: 732d lui t1,0xfffeb
|
||||
6a: 6174 flw fa3,68(a0)
|
||||
6c: 2f326567 0x2f326567
|
||||
70: 6972 flw fs2,28(sp)
|
||||
72: 33766373 csrrsi t1,mhpmevent23,12
|
||||
76: 2d32 fld fs10,264(sp)
|
||||
78: 6e75 lui t3,0x1d
|
||||
7a: 776f6e6b 0x776f6e6b
|
||||
7e: 2d6e fld fs10,216(sp)
|
||||
80: 6c65 lui s8,0x19
|
||||
82: 2f66 fld ft10,88(sp)
|
||||
84: 696c flw fa1,84(a0)
|
||||
86: 6762 flw fa4,24(sp)
|
||||
88: 47006363 bltu zero,a6,4ee <printInt-0xb12>
|
||||
8c: 554e lw a0,240(sp)
|
||||
8e: 4120 lw s0,64(a0)
|
||||
90: 2e322053 0x2e322053
|
||||
94: 312e3133 0x312e3133
|
||||
98: 2e00 fld fs0,24(a2)
|
||||
9a: 2f2e fld ft10,200(sp)
|
||||
9c: 2e2e fld ft8,200(sp)
|
||||
9e: 2f2e2e2f 0x2f2e2e2f
|
||||
a2: 2f2e fld ft10,200(sp)
|
||||
a4: 6972 flw fs2,28(sp)
|
||||
a6: 2d766373 csrrsi t1,0x2d7,12
|
||||
aa: 2f636367 0x2f636367
|
||||
ae: 696c flw fa1,84(a0)
|
||||
b0: 6762 flw fa4,24(sp)
|
||||
b2: 632f6363 bltu t5,s2,6d8 <printInt-0x928>
|
||||
b6: 69666e6f jal t3,6674c <__heap_start+0x6474c>
|
||||
ba: 69722f67 0x69722f67
|
||||
be: 2f766373 csrrsi t1,0x2f7,12
|
||||
c2: 6964 flw fs1,84(a0)
|
||||
c4: 2e76 fld ft8,344(sp)
|
||||
c6: fadd.s ft0,ft0,ft0,rne
|
117
test/testcases/expr.c
Normal file
117
test/testcases/expr.c
Normal file
@ -0,0 +1,117 @@
|
||||
#include "io.inc"
|
||||
// This file use massive recursive expression to test: Common Expression
|
||||
// substitution. For my optimized version: All: 1397 Load:
|
||||
// 86 Store: 55 Jumped: 23 For my unoptimized version: All: 24519
|
||||
// Load: 12183 Store: 55 Jumped: 23 A better result is welcomed. ------
|
||||
// From JinTianxing.
|
||||
|
||||
int A = 1;
|
||||
int B = 1;
|
||||
int C = 1;
|
||||
|
||||
int main() {
|
||||
while (C < (1 << 29) && C > -(1 << 29)) {
|
||||
A = ((((((((C - A + B) - (A + B)) + ((C - A + B) - (A + B))) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))) -
|
||||
(((((A + B) + (C - A + B)) - ((A + B) + (C - A + B))) -
|
||||
(((A + B) + (C - A + B)) - (A + B))) +
|
||||
((((C - A + B) - (A + B)) + (C - A + B)) -
|
||||
(((A + B) + (C - A + B)) - (A + B))))) +
|
||||
((((((C - A + B) - (A + B)) + ((C - A + B) - (A + B))) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))) -
|
||||
(((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))))) -
|
||||
(((((((A + B) + (C - A + B)) - ((A + B) + (C - A + B))) -
|
||||
(((A + B) + (C - A + B)) - (A + B))) +
|
||||
((((C - A + B) - (A + B)) + (C - A + B)) -
|
||||
(((A + B) + (C - A + B)) - (A + B)))) +
|
||||
(((((C - A + B) - (A + B)) + (C - A + B)) -
|
||||
(((A + B) + (C - A + B)) - (A + B))) +
|
||||
((((C - A + B) - (A + B)) + (C - A + B)) -
|
||||
(((A + B) + (C - A + B)) - (A + B))))) +
|
||||
((((((C - A + B) - (A + B)) + ((C - A + B) - (A + B))) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))) -
|
||||
(((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))))));
|
||||
B = ((((((((C - A + B) - (A + B)) + ((C - A + B) - (A + B))) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))) -
|
||||
(((((A + B) + (C - A + B)) - ((A + B) + (C - A + B))) -
|
||||
(((A + B) + (C - A + B)) - (A + B))) +
|
||||
((((C - A + B) - (A + B)) + (C - A + B)) -
|
||||
(((A + B) + (C - A + B)) - (A + B))))) +
|
||||
((((((C - A + B) - (A + B)) + ((C - A + B) - (A + B))) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))) -
|
||||
(((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))))) -
|
||||
(((((((A + B) + (C - A + B)) - ((A + B) + (C - A + B))) -
|
||||
(((A + B) + (C - A + B)) - (A + B))) +
|
||||
((((C - A + B) - (A + B)) + (C - A + B)) -
|
||||
(((A + B) + (C - A + B)) - (A + B)))) +
|
||||
(((((C - A + B) - (A + B)) + (C - A + B)) -
|
||||
(((A + B) + (C - A + B)) - (A + B))) +
|
||||
((((C - A + B) - (A + B)) + (C - A + B)) -
|
||||
(((A + B) + (C - A + B)) - (A + B))))) +
|
||||
((((((C - A + B) - (A + B)) + ((C - A + B) - (A + B))) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))) -
|
||||
(((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))))));
|
||||
C = ((((((((C - A + B) - (A + B)) + ((C - A + B) - (A + B))) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))) -
|
||||
(((((A + B) + (C - A + B)) - ((A + B) + (C - A + B))) -
|
||||
(((A + B) + (C - A + B)) - (A + B))) +
|
||||
((((C - A + B) - (A + B)) + (C - A + B)) -
|
||||
(((A + B) + (C - A + B)) - (A + B))))) +
|
||||
((((((C - A + B) - (A + B)) + ((C - A + B) - (A + B))) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))) -
|
||||
(((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))))) -
|
||||
(((((((A + B) + (C - A + B)) - ((A + B) + (C - A + B))) -
|
||||
(((A + B) + (C - A + B)) - (A + B))) +
|
||||
((((C - A + B) - (A + B)) + (C - A + B)) -
|
||||
(((A + B) + (C - A + B)) - (A + B)))) +
|
||||
(((((C - A + B) - (A + B)) + (C - A + B)) -
|
||||
(((A + B) + (C - A + B)) - (A + B))) +
|
||||
((((C - A + B) - (A + B)) + (C - A + B)) -
|
||||
(((A + B) + (C - A + B)) - (A + B))))) +
|
||||
((((((C - A + B) - (A + B)) + ((C - A + B) - (A + B))) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))) -
|
||||
(((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B))) -
|
||||
((((A + B) + (C - A + B)) - (A + B)) +
|
||||
(((C - A + B) - (A + B)) + (C - A + B)))))));
|
||||
}
|
||||
printInt(A);
|
||||
// print(" ");
|
||||
printInt(B);
|
||||
// print(" ");
|
||||
printInt(C);
|
||||
return judgeResult % Mod; // 58
|
||||
}
|
37
test/testcases/expr.data
Normal file
37
test/testcases/expr.data
Normal file
@ -0,0 +1,37 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 00 04 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 07 1E 33 45 F5 00 13 05 D5 0A
|
||||
23 20 A7 1E 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 07 1E B3 C7 D7 00 93 87 97 20
|
||||
23 20 F7 1E 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FF 23 26 11 00 B7 17 00 00
|
||||
83 A7 47 1D 37 07 00 20 13 07 F7 FF 33 87 E7 00
|
||||
B7 06 00 40 93 86 E6 FF 63 EA E6 06 37 17 00 00
|
||||
03 27 C7 1D B7 16 00 00 83 A6 86 1D 37 05 00 20
|
||||
13 05 F5 FF B7 05 00 40 93 85 E5 FF 33 86 E7 40
|
||||
33 07 E6 40 33 06 D6 00 13 17 17 00 33 07 E6 40
|
||||
B3 87 E7 40 33 86 E7 40 13 16 16 00 B3 86 D7 00
|
||||
B3 86 C6 40 B3 87 D7 00 B3 87 C7 40 33 86 A7 00
|
||||
E3 F6 C5 FC 37 16 00 00 23 2E E6 1C 37 17 00 00
|
||||
23 2C D7 1C 37 17 00 00 23 2A F7 1C B7 17 00 00
|
||||
03 A5 C7 1D EF F0 DF F1 B7 17 00 00 03 A5 87 1D
|
||||
EF F0 1F F1 B7 17 00 00 03 A5 47 1D EF F0 5F F0
|
||||
93 05 D0 0F B7 17 00 00 03 A5 07 1E EF 00 40 09
|
||||
83 20 C1 00 13 01 01 01 67 80 00 00 63 40 05 06
|
||||
63 C6 05 06 13 86 05 00 93 05 05 00 13 05 F0 FF
|
||||
63 0C 06 02 93 06 10 00 63 7A B6 00 63 58 C0 00
|
||||
13 16 16 00 93 96 16 00 E3 6A B6 FE 13 05 00 00
|
||||
63 E6 C5 00 B3 85 C5 40 33 65 D5 00 93 D6 16 00
|
||||
13 56 16 00 E3 96 06 FE 67 80 00 00 93 82 00 00
|
||||
EF F0 5F FB 13 85 05 00 67 80 02 00 33 05 A0 40
|
||||
63 D8 05 00 B3 05 B0 40 6F F0 DF F9 B3 05 B0 40
|
||||
93 82 00 00 EF F0 1F F9 33 05 A0 40 67 80 02 00
|
||||
93 82 00 00 63 CA 05 00 63 4C 05 00 EF F0 9F F7
|
||||
13 85 05 00 67 80 02 00 B3 05 B0 40 E3 58 05 FE
|
||||
33 05 A0 40 EF F0 1F F6 33 05 B0 40 67 80 02 00
|
||||
@000011D0
|
||||
FD 00 00 00
|
||||
@000011D4
|
||||
01 00 00 00 01 00 00 00 01 00 00 00
|
423
test/testcases/expr.dump
Normal file
423
test/testcases/expr.dump
Normal file
@ -0,0 +1,423 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 040010ef jal ra,1044 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 1e072783 lw a5,480(a4) # 11e0 <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 1ea72023 sw a0,480(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 1e072683 lw a3,480(a4) # 11e0 <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 1ef72023 sw a5,480(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <main>:
|
||||
1044: ff010113 addi sp,sp,-16 # 1fff0 <__heap_start+0x1dff0>
|
||||
1048: 00112623 sw ra,12(sp)
|
||||
104c: 000017b7 lui a5,0x1
|
||||
1050: 1d47a783 lw a5,468(a5) # 11d4 <__bss_start>
|
||||
1054: 20000737 lui a4,0x20000
|
||||
1058: fff70713 addi a4,a4,-1 # 1fffffff <__heap_start+0x1fffdfff>
|
||||
105c: 00e78733 add a4,a5,a4
|
||||
1060: 400006b7 lui a3,0x40000
|
||||
1064: ffe68693 addi a3,a3,-2 # 3ffffffe <__heap_start+0x3fffdffe>
|
||||
1068: 06e6ea63 bltu a3,a4,10dc <main+0x98>
|
||||
106c: 00001737 lui a4,0x1
|
||||
1070: 1dc72703 lw a4,476(a4) # 11dc <A>
|
||||
1074: 000016b7 lui a3,0x1
|
||||
1078: 1d86a683 lw a3,472(a3) # 11d8 <B>
|
||||
107c: 20000537 lui a0,0x20000
|
||||
1080: fff50513 addi a0,a0,-1 # 1fffffff <__heap_start+0x1fffdfff>
|
||||
1084: 400005b7 lui a1,0x40000
|
||||
1088: ffe58593 addi a1,a1,-2 # 3ffffffe <__heap_start+0x3fffdffe>
|
||||
108c: 40e78633 sub a2,a5,a4
|
||||
1090: 40e60733 sub a4,a2,a4
|
||||
1094: 00d60633 add a2,a2,a3
|
||||
1098: 00171713 slli a4,a4,0x1
|
||||
109c: 40e60733 sub a4,a2,a4
|
||||
10a0: 40e787b3 sub a5,a5,a4
|
||||
10a4: 40e78633 sub a2,a5,a4
|
||||
10a8: 00161613 slli a2,a2,0x1
|
||||
10ac: 00d786b3 add a3,a5,a3
|
||||
10b0: 40c686b3 sub a3,a3,a2
|
||||
10b4: 00d787b3 add a5,a5,a3
|
||||
10b8: 40c787b3 sub a5,a5,a2
|
||||
10bc: 00a78633 add a2,a5,a0
|
||||
10c0: fcc5f6e3 bgeu a1,a2,108c <main+0x48>
|
||||
10c4: 00001637 lui a2,0x1
|
||||
10c8: 1ce62e23 sw a4,476(a2) # 11dc <A>
|
||||
10cc: 00001737 lui a4,0x1
|
||||
10d0: 1cd72c23 sw a3,472(a4) # 11d8 <B>
|
||||
10d4: 00001737 lui a4,0x1
|
||||
10d8: 1cf72a23 sw a5,468(a4) # 11d4 <__bss_start>
|
||||
10dc: 000017b7 lui a5,0x1
|
||||
10e0: 1dc7a503 lw a0,476(a5) # 11dc <A>
|
||||
10e4: f1dff0ef jal ra,1000 <printInt>
|
||||
10e8: 000017b7 lui a5,0x1
|
||||
10ec: 1d87a503 lw a0,472(a5) # 11d8 <B>
|
||||
10f0: f11ff0ef jal ra,1000 <printInt>
|
||||
10f4: 000017b7 lui a5,0x1
|
||||
10f8: 1d47a503 lw a0,468(a5) # 11d4 <__bss_start>
|
||||
10fc: f05ff0ef jal ra,1000 <printInt>
|
||||
1100: 0fd00593 li a1,253
|
||||
1104: 000017b7 lui a5,0x1
|
||||
1108: 1e07a503 lw a0,480(a5) # 11e0 <__bss_end>
|
||||
110c: 094000ef jal ra,11a0 <__modsi3>
|
||||
1110: 00c12083 lw ra,12(sp)
|
||||
1114: 01010113 addi sp,sp,16
|
||||
1118: 00008067 ret
|
||||
|
||||
0000111c <__divsi3>:
|
||||
111c: 06054063 bltz a0,117c <__umodsi3+0x10>
|
||||
1120: 0605c663 bltz a1,118c <__umodsi3+0x20>
|
||||
|
||||
00001124 <__udivsi3>:
|
||||
1124: 00058613 mv a2,a1
|
||||
1128: 00050593 mv a1,a0
|
||||
112c: fff00513 li a0,-1
|
||||
1130: 02060c63 beqz a2,1168 <__udivsi3+0x44>
|
||||
1134: 00100693 li a3,1
|
||||
1138: 00b67a63 bgeu a2,a1,114c <__udivsi3+0x28>
|
||||
113c: 00c05863 blez a2,114c <__udivsi3+0x28>
|
||||
1140: 00161613 slli a2,a2,0x1
|
||||
1144: 00169693 slli a3,a3,0x1
|
||||
1148: feb66ae3 bltu a2,a1,113c <__udivsi3+0x18>
|
||||
114c: 00000513 li a0,0
|
||||
1150: 00c5e663 bltu a1,a2,115c <__udivsi3+0x38>
|
||||
1154: 40c585b3 sub a1,a1,a2
|
||||
1158: 00d56533 or a0,a0,a3
|
||||
115c: 0016d693 srli a3,a3,0x1
|
||||
1160: 00165613 srli a2,a2,0x1
|
||||
1164: fe0696e3 bnez a3,1150 <__udivsi3+0x2c>
|
||||
1168: 00008067 ret
|
||||
|
||||
0000116c <__umodsi3>:
|
||||
116c: 00008293 mv t0,ra
|
||||
1170: fb5ff0ef jal ra,1124 <__udivsi3>
|
||||
1174: 00058513 mv a0,a1
|
||||
1178: 00028067 jr t0
|
||||
117c: 40a00533 neg a0,a0
|
||||
1180: 0005d863 bgez a1,1190 <__umodsi3+0x24>
|
||||
1184: 40b005b3 neg a1,a1
|
||||
1188: f9dff06f j 1124 <__udivsi3>
|
||||
118c: 40b005b3 neg a1,a1
|
||||
1190: 00008293 mv t0,ra
|
||||
1194: f91ff0ef jal ra,1124 <__udivsi3>
|
||||
1198: 40a00533 neg a0,a0
|
||||
119c: 00028067 jr t0
|
||||
|
||||
000011a0 <__modsi3>:
|
||||
11a0: 00008293 mv t0,ra
|
||||
11a4: 0005ca63 bltz a1,11b8 <__modsi3+0x18>
|
||||
11a8: 00054c63 bltz a0,11c0 <__modsi3+0x20>
|
||||
11ac: f79ff0ef jal ra,1124 <__udivsi3>
|
||||
11b0: 00058513 mv a0,a1
|
||||
11b4: 00028067 jr t0
|
||||
11b8: 40b005b3 neg a1,a1
|
||||
11bc: fe0558e3 bgez a0,11ac <__modsi3+0xc>
|
||||
11c0: 40a00533 neg a0,a0
|
||||
11c4: f61ff0ef jal ra,1124 <__udivsi3>
|
||||
11c8: 40b00533 neg a0,a1
|
||||
11cc: 00028067 jr t0
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
000011d0 <Mod>:
|
||||
11d0: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .sdata:
|
||||
|
||||
000011d4 <C>:
|
||||
11d4: 0001 nop
|
||||
...
|
||||
|
||||
000011d8 <B>:
|
||||
11d8: 0001 nop
|
||||
...
|
||||
|
||||
000011dc <A>:
|
||||
11dc: 0001 nop
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
000011e0 <judgeResult>:
|
||||
11e0: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 111c addi a5,sp,160
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 111c addi a5,sp,160
|
||||
12: 0000 unimp
|
||||
14: 11d0 addi a2,sp,228
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 111c addi a5,sp,160
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
15
test/testcases/gcd.c
Normal file
15
test/testcases/gcd.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include "io.inc"
|
||||
|
||||
int gcd(int x, int y) {
|
||||
if (x % y == 0)
|
||||
return y;
|
||||
else
|
||||
return gcd(y, x % y);
|
||||
}
|
||||
|
||||
int main() {
|
||||
printInt(gcd(10, 1));
|
||||
printInt(gcd(34986, 3087));
|
||||
printInt(gcd(2907, 1539));
|
||||
return judgeResult % Mod; // 178
|
||||
}
|
32
test/testcases/gcd.data
Normal file
32
test/testcases/gcd.data
Normal file
@ -0,0 +1,32 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 00 08 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 07 1A 33 45 F5 00 13 05 D5 0A
|
||||
23 20 A7 1A 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 07 1A B3 C7 D7 00 93 87 97 20
|
||||
23 20 F7 1A 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FF 23 26 11 00 23 24 81 00
|
||||
13 84 05 00 EF 00 80 11 63 1C 05 00 13 05 04 00
|
||||
83 20 C1 00 03 24 81 00 13 01 01 01 67 80 00 00
|
||||
93 05 05 00 13 05 04 00 EF F0 DF FC 13 04 05 00
|
||||
6F F0 DF FD 13 01 01 FF 23 26 11 00 23 24 81 00
|
||||
93 05 10 00 13 05 A0 00 EF F0 DF FA EF F0 5F F6
|
||||
37 14 00 00 93 05 F4 C0 37 95 00 00 13 05 A5 8A
|
||||
EF F0 5F F9 EF F0 DF F4 93 05 30 60 13 05 B4 B5
|
||||
EF F0 5F F8 EF F0 DF F3 93 05 D0 0F B7 17 00 00
|
||||
03 A5 07 1A EF 00 80 09 83 20 C1 00 03 24 81 00
|
||||
13 01 01 01 67 80 00 00 63 40 05 06 63 C6 05 06
|
||||
13 86 05 00 93 05 05 00 13 05 F0 FF 63 0C 06 02
|
||||
93 06 10 00 63 7A B6 00 63 58 C0 00 13 16 16 00
|
||||
93 96 16 00 E3 6A B6 FE 13 05 00 00 63 E6 C5 00
|
||||
B3 85 C5 40 33 65 D5 00 93 D6 16 00 13 56 16 00
|
||||
E3 96 06 FE 67 80 00 00 93 82 00 00 EF F0 5F FB
|
||||
13 85 05 00 67 80 02 00 33 05 A0 40 63 D8 05 00
|
||||
B3 05 B0 40 6F F0 DF F9 B3 05 B0 40 93 82 00 00
|
||||
EF F0 1F F9 33 05 A0 40 67 80 02 00 93 82 00 00
|
||||
63 CA 05 00 63 4C 05 00 EF F0 9F F7 13 85 05 00
|
||||
67 80 02 00 B3 05 B0 40 E3 58 05 FE 33 05 A0 40
|
||||
EF F0 1F F6 33 05 B0 40 67 80 02 00
|
||||
@0000119C
|
||||
FD 00 00 00
|
398
test/testcases/gcd.dump
Normal file
398
test/testcases/gcd.dump
Normal file
@ -0,0 +1,398 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 080010ef jal ra,1084 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 1a072783 lw a5,416(a4) # 11a0 <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 1aa72023 sw a0,416(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 1a072683 lw a3,416(a4) # 11a0 <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 1af72023 sw a5,416(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <gcd>:
|
||||
1044: ff010113 addi sp,sp,-16 # 1fff0 <__heap_start+0x1dff0>
|
||||
1048: 00112623 sw ra,12(sp)
|
||||
104c: 00812423 sw s0,8(sp)
|
||||
1050: 00058413 mv s0,a1
|
||||
1054: 118000ef jal ra,116c <__modsi3>
|
||||
1058: 00051c63 bnez a0,1070 <gcd+0x2c>
|
||||
105c: 00040513 mv a0,s0
|
||||
1060: 00c12083 lw ra,12(sp)
|
||||
1064: 00812403 lw s0,8(sp)
|
||||
1068: 01010113 addi sp,sp,16
|
||||
106c: 00008067 ret
|
||||
1070: 00050593 mv a1,a0
|
||||
1074: 00040513 mv a0,s0
|
||||
1078: fcdff0ef jal ra,1044 <gcd>
|
||||
107c: 00050413 mv s0,a0
|
||||
1080: fddff06f j 105c <gcd+0x18>
|
||||
|
||||
00001084 <main>:
|
||||
1084: ff010113 addi sp,sp,-16
|
||||
1088: 00112623 sw ra,12(sp)
|
||||
108c: 00812423 sw s0,8(sp)
|
||||
1090: 00100593 li a1,1
|
||||
1094: 00a00513 li a0,10
|
||||
1098: fadff0ef jal ra,1044 <gcd>
|
||||
109c: f65ff0ef jal ra,1000 <printInt>
|
||||
10a0: 00001437 lui s0,0x1
|
||||
10a4: c0f40593 addi a1,s0,-1009 # c0f <printInt-0x3f1>
|
||||
10a8: 00009537 lui a0,0x9
|
||||
10ac: 8aa50513 addi a0,a0,-1878 # 88aa <__heap_start+0x68aa>
|
||||
10b0: f95ff0ef jal ra,1044 <gcd>
|
||||
10b4: f4dff0ef jal ra,1000 <printInt>
|
||||
10b8: 60300593 li a1,1539
|
||||
10bc: b5b40513 addi a0,s0,-1189
|
||||
10c0: f85ff0ef jal ra,1044 <gcd>
|
||||
10c4: f3dff0ef jal ra,1000 <printInt>
|
||||
10c8: 0fd00593 li a1,253
|
||||
10cc: 000017b7 lui a5,0x1
|
||||
10d0: 1a07a503 lw a0,416(a5) # 11a0 <__bss_end>
|
||||
10d4: 098000ef jal ra,116c <__modsi3>
|
||||
10d8: 00c12083 lw ra,12(sp)
|
||||
10dc: 00812403 lw s0,8(sp)
|
||||
10e0: 01010113 addi sp,sp,16
|
||||
10e4: 00008067 ret
|
||||
|
||||
000010e8 <__divsi3>:
|
||||
10e8: 06054063 bltz a0,1148 <__umodsi3+0x10>
|
||||
10ec: 0605c663 bltz a1,1158 <__umodsi3+0x20>
|
||||
|
||||
000010f0 <__udivsi3>:
|
||||
10f0: 00058613 mv a2,a1
|
||||
10f4: 00050593 mv a1,a0
|
||||
10f8: fff00513 li a0,-1
|
||||
10fc: 02060c63 beqz a2,1134 <__udivsi3+0x44>
|
||||
1100: 00100693 li a3,1
|
||||
1104: 00b67a63 bgeu a2,a1,1118 <__udivsi3+0x28>
|
||||
1108: 00c05863 blez a2,1118 <__udivsi3+0x28>
|
||||
110c: 00161613 slli a2,a2,0x1
|
||||
1110: 00169693 slli a3,a3,0x1
|
||||
1114: feb66ae3 bltu a2,a1,1108 <__udivsi3+0x18>
|
||||
1118: 00000513 li a0,0
|
||||
111c: 00c5e663 bltu a1,a2,1128 <__udivsi3+0x38>
|
||||
1120: 40c585b3 sub a1,a1,a2
|
||||
1124: 00d56533 or a0,a0,a3
|
||||
1128: 0016d693 srli a3,a3,0x1
|
||||
112c: 00165613 srli a2,a2,0x1
|
||||
1130: fe0696e3 bnez a3,111c <__udivsi3+0x2c>
|
||||
1134: 00008067 ret
|
||||
|
||||
00001138 <__umodsi3>:
|
||||
1138: 00008293 mv t0,ra
|
||||
113c: fb5ff0ef jal ra,10f0 <__udivsi3>
|
||||
1140: 00058513 mv a0,a1
|
||||
1144: 00028067 jr t0
|
||||
1148: 40a00533 neg a0,a0
|
||||
114c: 0005d863 bgez a1,115c <__umodsi3+0x24>
|
||||
1150: 40b005b3 neg a1,a1
|
||||
1154: f9dff06f j 10f0 <__udivsi3>
|
||||
1158: 40b005b3 neg a1,a1
|
||||
115c: 00008293 mv t0,ra
|
||||
1160: f91ff0ef jal ra,10f0 <__udivsi3>
|
||||
1164: 40a00533 neg a0,a0
|
||||
1168: 00028067 jr t0
|
||||
|
||||
0000116c <__modsi3>:
|
||||
116c: 00008293 mv t0,ra
|
||||
1170: 0005ca63 bltz a1,1184 <__modsi3+0x18>
|
||||
1174: 00054c63 bltz a0,118c <__modsi3+0x20>
|
||||
1178: f79ff0ef jal ra,10f0 <__udivsi3>
|
||||
117c: 00058513 mv a0,a1
|
||||
1180: 00028067 jr t0
|
||||
1184: 40b005b3 neg a1,a1
|
||||
1188: fe0558e3 bgez a0,1178 <__modsi3+0xc>
|
||||
118c: 40a00533 neg a0,a0
|
||||
1190: f61ff0ef jal ra,10f0 <__udivsi3>
|
||||
1194: 40b00533 neg a0,a1
|
||||
1198: 00028067 jr t0
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
0000119c <Mod>:
|
||||
119c: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
000011a0 <judgeResult>:
|
||||
11a0: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 10e8 addi a0,sp,108
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 10e8 addi a0,sp,108
|
||||
12: 0000 unimp
|
||||
14: 119c addi a5,sp,224
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 10e8 addi a0,sp,108
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
30
test/testcases/hanoi.c
Normal file
30
test/testcases/hanoi.c
Normal file
@ -0,0 +1,30 @@
|
||||
#include "io.inc"
|
||||
|
||||
int cd(int d, char *a, char *b, char *c, int sum) {
|
||||
if (d == 1) {
|
||||
printStr("move ");
|
||||
printStr(a);
|
||||
printStr(" --> ");
|
||||
printStr(c);
|
||||
sum++;
|
||||
} else {
|
||||
sum = cd(d - 1, a, c, b, sum);
|
||||
printStr("move ");
|
||||
printStr(a);
|
||||
printStr(" --> ");
|
||||
printStr(c);
|
||||
sum = cd(d - 1, b, a, c, sum);
|
||||
sum++;
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
int main() {
|
||||
char a[5] = "A";
|
||||
char b[5] = "B";
|
||||
char c[5] = "C";
|
||||
int d = 10;
|
||||
int sum = cd(d, a, b, c, 0);
|
||||
printInt(sum);
|
||||
return judgeResult % Mod; // 20
|
||||
}
|
44
test/testcases/hanoi.data
Normal file
44
test/testcases/hanoi.data
Normal file
@ -0,0 +1,44 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 00 12 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 07 25 33 45 F5 00 13 05 D5 0A
|
||||
23 28 A7 24 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 07 25 B3 C7 D7 00 93 87 97 20
|
||||
23 28 F7 24 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FE 23 2E 11 00 23 2C 81 00
|
||||
23 2A 91 00 23 28 21 01 23 26 31 01 23 24 41 01
|
||||
13 89 05 00 93 89 06 00 93 04 07 00 93 07 10 00
|
||||
63 02 F5 08 13 0A 06 00 13 04 F5 FF 93 06 06 00
|
||||
13 86 09 00 13 05 04 00 EF F0 DF FB 93 04 05 00
|
||||
37 15 00 00 13 05 C5 23 EF F0 1F F8 13 05 09 00
|
||||
EF F0 9F F7 37 15 00 00 13 05 45 24 EF F0 DF F6
|
||||
13 85 09 00 EF F0 5F F6 13 87 04 00 93 86 09 00
|
||||
13 06 09 00 93 05 0A 00 13 05 04 00 EF F0 9F F7
|
||||
13 05 15 00 83 20 C1 01 03 24 81 01 83 24 41 01
|
||||
03 29 01 01 83 29 C1 00 03 2A 81 00 13 01 01 02
|
||||
67 80 00 00 37 15 00 00 13 05 C5 23 EF F0 DF F1
|
||||
13 05 09 00 EF F0 5F F1 37 15 00 00 13 05 45 24
|
||||
EF F0 9F F0 13 85 09 00 EF F0 1F F0 13 85 14 00
|
||||
6F F0 5F FB 13 01 01 FD 23 26 11 02 93 07 10 04
|
||||
23 2C F1 00 23 0E 01 00 93 07 20 04 23 28 F1 00
|
||||
23 0A 01 00 93 07 30 04 23 24 F1 00 23 06 01 00
|
||||
13 07 00 00 93 06 81 00 13 06 01 01 93 05 81 01
|
||||
13 05 A0 00 EF F0 1F EE EF F0 9F E9 93 05 D0 0F
|
||||
B7 17 00 00 03 A5 07 25 EF 00 40 09 83 20 C1 02
|
||||
13 01 01 03 67 80 00 00 63 40 05 06 63 C6 05 06
|
||||
13 86 05 00 93 05 05 00 13 05 F0 FF 63 0C 06 02
|
||||
93 06 10 00 63 7A B6 00 63 58 C0 00 13 16 16 00
|
||||
93 96 16 00 E3 6A B6 FE 13 05 00 00 63 E6 C5 00
|
||||
B3 85 C5 40 33 65 D5 00 93 D6 16 00 13 56 16 00
|
||||
E3 96 06 FE 67 80 00 00 93 82 00 00 EF F0 5F FB
|
||||
13 85 05 00 67 80 02 00 33 05 A0 40 63 D8 05 00
|
||||
B3 05 B0 40 6F F0 DF F9 B3 05 B0 40 93 82 00 00
|
||||
EF F0 1F F9 33 05 A0 40 67 80 02 00 93 82 00 00
|
||||
63 CA 05 00 63 4C 05 00 EF F0 9F F7 13 85 05 00
|
||||
67 80 02 00 B3 05 B0 40 E3 58 05 FE 33 05 A0 40
|
||||
EF F0 1F F6 33 05 B0 40 67 80 02 00
|
||||
@0000123C
|
||||
6D 6F 76 65 20 00 00 00 20 2D 2D 3E 20 00 00 00
|
||||
@0000124C
|
||||
FD 00 00 00
|
450
test/testcases/hanoi.dump
Normal file
450
test/testcases/hanoi.dump
Normal file
@ -0,0 +1,450 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 120010ef jal ra,1124 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 25072783 lw a5,592(a4) # 1250 <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 24a72823 sw a0,592(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 25072683 lw a3,592(a4) # 1250 <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 24f72823 sw a5,592(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <cd>:
|
||||
1044: fe010113 addi sp,sp,-32 # 1ffe0 <__heap_start+0x1dfe0>
|
||||
1048: 00112e23 sw ra,28(sp)
|
||||
104c: 00812c23 sw s0,24(sp)
|
||||
1050: 00912a23 sw s1,20(sp)
|
||||
1054: 01212823 sw s2,16(sp)
|
||||
1058: 01312623 sw s3,12(sp)
|
||||
105c: 01412423 sw s4,8(sp)
|
||||
1060: 00058913 mv s2,a1
|
||||
1064: 00068993 mv s3,a3
|
||||
1068: 00070493 mv s1,a4
|
||||
106c: 00100793 li a5,1
|
||||
1070: 08f50263 beq a0,a5,10f4 <cd+0xb0>
|
||||
1074: 00060a13 mv s4,a2
|
||||
1078: fff50413 addi s0,a0,-1
|
||||
107c: 00060693 mv a3,a2
|
||||
1080: 00098613 mv a2,s3
|
||||
1084: 00040513 mv a0,s0
|
||||
1088: fbdff0ef jal ra,1044 <cd>
|
||||
108c: 00050493 mv s1,a0
|
||||
1090: 00001537 lui a0,0x1
|
||||
1094: 23c50513 addi a0,a0,572 # 123c <__modsi3+0x30>
|
||||
1098: f81ff0ef jal ra,1018 <printStr>
|
||||
109c: 00090513 mv a0,s2
|
||||
10a0: f79ff0ef jal ra,1018 <printStr>
|
||||
10a4: 00001537 lui a0,0x1
|
||||
10a8: 24450513 addi a0,a0,580 # 1244 <__modsi3+0x38>
|
||||
10ac: f6dff0ef jal ra,1018 <printStr>
|
||||
10b0: 00098513 mv a0,s3
|
||||
10b4: f65ff0ef jal ra,1018 <printStr>
|
||||
10b8: 00048713 mv a4,s1
|
||||
10bc: 00098693 mv a3,s3
|
||||
10c0: 00090613 mv a2,s2
|
||||
10c4: 000a0593 mv a1,s4
|
||||
10c8: 00040513 mv a0,s0
|
||||
10cc: f79ff0ef jal ra,1044 <cd>
|
||||
10d0: 00150513 addi a0,a0,1
|
||||
10d4: 01c12083 lw ra,28(sp)
|
||||
10d8: 01812403 lw s0,24(sp)
|
||||
10dc: 01412483 lw s1,20(sp)
|
||||
10e0: 01012903 lw s2,16(sp)
|
||||
10e4: 00c12983 lw s3,12(sp)
|
||||
10e8: 00812a03 lw s4,8(sp)
|
||||
10ec: 02010113 addi sp,sp,32
|
||||
10f0: 00008067 ret
|
||||
10f4: 00001537 lui a0,0x1
|
||||
10f8: 23c50513 addi a0,a0,572 # 123c <__modsi3+0x30>
|
||||
10fc: f1dff0ef jal ra,1018 <printStr>
|
||||
1100: 00090513 mv a0,s2
|
||||
1104: f15ff0ef jal ra,1018 <printStr>
|
||||
1108: 00001537 lui a0,0x1
|
||||
110c: 24450513 addi a0,a0,580 # 1244 <__modsi3+0x38>
|
||||
1110: f09ff0ef jal ra,1018 <printStr>
|
||||
1114: 00098513 mv a0,s3
|
||||
1118: f01ff0ef jal ra,1018 <printStr>
|
||||
111c: 00148513 addi a0,s1,1
|
||||
1120: fb5ff06f j 10d4 <cd+0x90>
|
||||
|
||||
00001124 <main>:
|
||||
1124: fd010113 addi sp,sp,-48
|
||||
1128: 02112623 sw ra,44(sp)
|
||||
112c: 04100793 li a5,65
|
||||
1130: 00f12c23 sw a5,24(sp)
|
||||
1134: 00010e23 sb zero,28(sp)
|
||||
1138: 04200793 li a5,66
|
||||
113c: 00f12823 sw a5,16(sp)
|
||||
1140: 00010a23 sb zero,20(sp)
|
||||
1144: 04300793 li a5,67
|
||||
1148: 00f12423 sw a5,8(sp)
|
||||
114c: 00010623 sb zero,12(sp)
|
||||
1150: 00000713 li a4,0
|
||||
1154: 00810693 addi a3,sp,8
|
||||
1158: 01010613 addi a2,sp,16
|
||||
115c: 01810593 addi a1,sp,24
|
||||
1160: 00a00513 li a0,10
|
||||
1164: ee1ff0ef jal ra,1044 <cd>
|
||||
1168: e99ff0ef jal ra,1000 <printInt>
|
||||
116c: 0fd00593 li a1,253
|
||||
1170: 000017b7 lui a5,0x1
|
||||
1174: 2507a503 lw a0,592(a5) # 1250 <__bss_end>
|
||||
1178: 094000ef jal ra,120c <__modsi3>
|
||||
117c: 02c12083 lw ra,44(sp)
|
||||
1180: 03010113 addi sp,sp,48
|
||||
1184: 00008067 ret
|
||||
|
||||
00001188 <__divsi3>:
|
||||
1188: 06054063 bltz a0,11e8 <__umodsi3+0x10>
|
||||
118c: 0605c663 bltz a1,11f8 <__umodsi3+0x20>
|
||||
|
||||
00001190 <__udivsi3>:
|
||||
1190: 00058613 mv a2,a1
|
||||
1194: 00050593 mv a1,a0
|
||||
1198: fff00513 li a0,-1
|
||||
119c: 02060c63 beqz a2,11d4 <__udivsi3+0x44>
|
||||
11a0: 00100693 li a3,1
|
||||
11a4: 00b67a63 bgeu a2,a1,11b8 <__udivsi3+0x28>
|
||||
11a8: 00c05863 blez a2,11b8 <__udivsi3+0x28>
|
||||
11ac: 00161613 slli a2,a2,0x1
|
||||
11b0: 00169693 slli a3,a3,0x1
|
||||
11b4: feb66ae3 bltu a2,a1,11a8 <__udivsi3+0x18>
|
||||
11b8: 00000513 li a0,0
|
||||
11bc: 00c5e663 bltu a1,a2,11c8 <__udivsi3+0x38>
|
||||
11c0: 40c585b3 sub a1,a1,a2
|
||||
11c4: 00d56533 or a0,a0,a3
|
||||
11c8: 0016d693 srli a3,a3,0x1
|
||||
11cc: 00165613 srli a2,a2,0x1
|
||||
11d0: fe0696e3 bnez a3,11bc <__udivsi3+0x2c>
|
||||
11d4: 00008067 ret
|
||||
|
||||
000011d8 <__umodsi3>:
|
||||
11d8: 00008293 mv t0,ra
|
||||
11dc: fb5ff0ef jal ra,1190 <__udivsi3>
|
||||
11e0: 00058513 mv a0,a1
|
||||
11e4: 00028067 jr t0
|
||||
11e8: 40a00533 neg a0,a0
|
||||
11ec: 0005d863 bgez a1,11fc <__umodsi3+0x24>
|
||||
11f0: 40b005b3 neg a1,a1
|
||||
11f4: f9dff06f j 1190 <__udivsi3>
|
||||
11f8: 40b005b3 neg a1,a1
|
||||
11fc: 00008293 mv t0,ra
|
||||
1200: f91ff0ef jal ra,1190 <__udivsi3>
|
||||
1204: 40a00533 neg a0,a0
|
||||
1208: 00028067 jr t0
|
||||
|
||||
0000120c <__modsi3>:
|
||||
120c: 00008293 mv t0,ra
|
||||
1210: 0005ca63 bltz a1,1224 <__modsi3+0x18>
|
||||
1214: 00054c63 bltz a0,122c <__modsi3+0x20>
|
||||
1218: f79ff0ef jal ra,1190 <__udivsi3>
|
||||
121c: 00058513 mv a0,a1
|
||||
1220: 00028067 jr t0
|
||||
1224: 40b005b3 neg a1,a1
|
||||
1228: fe0558e3 bgez a0,1218 <__modsi3+0xc>
|
||||
122c: 40a00533 neg a0,a0
|
||||
1230: f61ff0ef jal ra,1190 <__udivsi3>
|
||||
1234: 40b00533 neg a0,a1
|
||||
1238: 00028067 jr t0
|
||||
|
||||
Disassembly of section .rodata.str1.4:
|
||||
|
||||
0000123c <.rodata.str1.4>:
|
||||
123c: 6f6d lui t5,0x1b
|
||||
123e: 6576 flw fa0,92(sp)
|
||||
1240: 0020 addi s0,sp,8
|
||||
1242: 0000 unimp
|
||||
1244: 2d20 fld fs0,88(a0)
|
||||
1246: 3e2d jal d80 <printInt-0x280>
|
||||
1248: 0020 addi s0,sp,8
|
||||
...
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
0000124c <Mod>:
|
||||
124c: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
00001250 <judgeResult>:
|
||||
1250: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 1188 addi a0,sp,224
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 1188 addi a0,sp,224
|
||||
12: 0000 unimp
|
||||
14: 123c addi a5,sp,296
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 1188 addi a0,sp,224
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
14
test/testcases/io.inc
Normal file
14
test/testcases/io.inc
Normal file
@ -0,0 +1,14 @@
|
||||
int judgeResult = 0;
|
||||
const int Mod = 253;
|
||||
|
||||
void printInt(int x) {
|
||||
judgeResult ^= x;
|
||||
judgeResult += 173;
|
||||
}
|
||||
|
||||
void printStr(const char *str) {
|
||||
for (const char *cur = str; *cur != 0; ++cur) {
|
||||
judgeResult ^= *cur;
|
||||
judgeResult += 521;
|
||||
}
|
||||
}
|
10
test/testcases/lvalue2.c
Normal file
10
test/testcases/lvalue2.c
Normal file
@ -0,0 +1,10 @@
|
||||
#include "io.inc"
|
||||
int a[4];
|
||||
int main() {
|
||||
int b[4];
|
||||
b[2] = 2;
|
||||
int *p;
|
||||
p = b;
|
||||
printInt(p[2]);
|
||||
return judgeResult % Mod; // 175
|
||||
}
|
25
test/testcases/lvalue2.data
Normal file
25
test/testcases/lvalue2.data
Normal file
@ -0,0 +1,25 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 00 04 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 87 13 33 45 F5 00 13 05 D5 0A
|
||||
23 2C A7 12 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 87 13 B3 C7 D7 00 93 87 97 20
|
||||
23 2C F7 12 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FF 23 26 11 00 13 05 20 00
|
||||
EF F0 1F FB 93 05 D0 0F B7 17 00 00 03 A5 87 13
|
||||
EF 00 40 09 83 20 C1 00 13 01 01 01 67 80 00 00
|
||||
63 40 05 06 63 C6 05 06 13 86 05 00 93 05 05 00
|
||||
13 05 F0 FF 63 0C 06 02 93 06 10 00 63 7A B6 00
|
||||
63 58 C0 00 13 16 16 00 93 96 16 00 E3 6A B6 FE
|
||||
13 05 00 00 63 E6 C5 00 B3 85 C5 40 33 65 D5 00
|
||||
93 D6 16 00 13 56 16 00 E3 96 06 FE 67 80 00 00
|
||||
93 82 00 00 EF F0 5F FB 13 85 05 00 67 80 02 00
|
||||
33 05 A0 40 63 D8 05 00 B3 05 B0 40 6F F0 DF F9
|
||||
B3 05 B0 40 93 82 00 00 EF F0 1F F9 33 05 A0 40
|
||||
67 80 02 00 93 82 00 00 63 CA 05 00 63 4C 05 00
|
||||
EF F0 9F F7 13 85 05 00 67 80 02 00 B3 05 B0 40
|
||||
E3 58 05 FE 33 05 A0 40 EF F0 1F F6 33 05 B0 40
|
||||
67 80 02 00
|
||||
@00001124
|
||||
FD 00 00 00
|
371
test/testcases/lvalue2.dump
Normal file
371
test/testcases/lvalue2.dump
Normal file
@ -0,0 +1,371 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 040010ef jal ra,1044 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 13872783 lw a5,312(a4) # 1138 <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 12a72c23 sw a0,312(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 13872683 lw a3,312(a4) # 1138 <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 12f72c23 sw a5,312(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <main>:
|
||||
1044: ff010113 addi sp,sp,-16 # 1fff0 <__heap_start+0x1dff0>
|
||||
1048: 00112623 sw ra,12(sp)
|
||||
104c: 00200513 li a0,2
|
||||
1050: fb1ff0ef jal ra,1000 <printInt>
|
||||
1054: 0fd00593 li a1,253
|
||||
1058: 000017b7 lui a5,0x1
|
||||
105c: 1387a503 lw a0,312(a5) # 1138 <__bss_end>
|
||||
1060: 094000ef jal ra,10f4 <__modsi3>
|
||||
1064: 00c12083 lw ra,12(sp)
|
||||
1068: 01010113 addi sp,sp,16
|
||||
106c: 00008067 ret
|
||||
|
||||
00001070 <__divsi3>:
|
||||
1070: 06054063 bltz a0,10d0 <__umodsi3+0x10>
|
||||
1074: 0605c663 bltz a1,10e0 <__umodsi3+0x20>
|
||||
|
||||
00001078 <__udivsi3>:
|
||||
1078: 00058613 mv a2,a1
|
||||
107c: 00050593 mv a1,a0
|
||||
1080: fff00513 li a0,-1
|
||||
1084: 02060c63 beqz a2,10bc <__udivsi3+0x44>
|
||||
1088: 00100693 li a3,1
|
||||
108c: 00b67a63 bgeu a2,a1,10a0 <__udivsi3+0x28>
|
||||
1090: 00c05863 blez a2,10a0 <__udivsi3+0x28>
|
||||
1094: 00161613 slli a2,a2,0x1
|
||||
1098: 00169693 slli a3,a3,0x1
|
||||
109c: feb66ae3 bltu a2,a1,1090 <__udivsi3+0x18>
|
||||
10a0: 00000513 li a0,0
|
||||
10a4: 00c5e663 bltu a1,a2,10b0 <__udivsi3+0x38>
|
||||
10a8: 40c585b3 sub a1,a1,a2
|
||||
10ac: 00d56533 or a0,a0,a3
|
||||
10b0: 0016d693 srli a3,a3,0x1
|
||||
10b4: 00165613 srli a2,a2,0x1
|
||||
10b8: fe0696e3 bnez a3,10a4 <__udivsi3+0x2c>
|
||||
10bc: 00008067 ret
|
||||
|
||||
000010c0 <__umodsi3>:
|
||||
10c0: 00008293 mv t0,ra
|
||||
10c4: fb5ff0ef jal ra,1078 <__udivsi3>
|
||||
10c8: 00058513 mv a0,a1
|
||||
10cc: 00028067 jr t0
|
||||
10d0: 40a00533 neg a0,a0
|
||||
10d4: 0005d863 bgez a1,10e4 <__umodsi3+0x24>
|
||||
10d8: 40b005b3 neg a1,a1
|
||||
10dc: f9dff06f j 1078 <__udivsi3>
|
||||
10e0: 40b005b3 neg a1,a1
|
||||
10e4: 00008293 mv t0,ra
|
||||
10e8: f91ff0ef jal ra,1078 <__udivsi3>
|
||||
10ec: 40a00533 neg a0,a0
|
||||
10f0: 00028067 jr t0
|
||||
|
||||
000010f4 <__modsi3>:
|
||||
10f4: 00008293 mv t0,ra
|
||||
10f8: 0005ca63 bltz a1,110c <__modsi3+0x18>
|
||||
10fc: 00054c63 bltz a0,1114 <__modsi3+0x20>
|
||||
1100: f79ff0ef jal ra,1078 <__udivsi3>
|
||||
1104: 00058513 mv a0,a1
|
||||
1108: 00028067 jr t0
|
||||
110c: 40b005b3 neg a1,a1
|
||||
1110: fe0558e3 bgez a0,1100 <__modsi3+0xc>
|
||||
1114: 40a00533 neg a0,a0
|
||||
1118: f61ff0ef jal ra,1078 <__udivsi3>
|
||||
111c: 40b00533 neg a0,a1
|
||||
1120: 00028067 jr t0
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
00001124 <Mod>:
|
||||
1124: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
00001128 <a>:
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
00001138 <judgeResult>:
|
||||
1138: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 1070 addi a2,sp,44
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 1070 addi a2,sp,44
|
||||
12: 0000 unimp
|
||||
14: 1124 addi s1,sp,168
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 1070 addi a2,sp,44
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
74
test/testcases/magic.c
Normal file
74
test/testcases/magic.c
Normal file
@ -0,0 +1,74 @@
|
||||
#include "io.inc"
|
||||
int make[3][3];
|
||||
int color[10];
|
||||
int count[1];
|
||||
int i;
|
||||
int j;
|
||||
|
||||
void origin(int N) {
|
||||
for (i = 0; i < N; i++) {
|
||||
for (j = 0; j < N; j++)
|
||||
make[i][j] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void search(int x, int y, int z) {
|
||||
int s;
|
||||
int i;
|
||||
int j;
|
||||
if ((y > 0 || y < 0) || x == 0 ||
|
||||
make[x - 1][0] + make[x - 1][1] + make[x - 1][2] == 15) {
|
||||
if (x == 2 && y == 2) {
|
||||
make[2][2] = 45 - z;
|
||||
s = make[0][0] + make[0][1] + make[0][2];
|
||||
if (make[1][0] + make[1][1] + make[1][2] == s &&
|
||||
make[2][0] + make[2][1] + make[2][2] == s &&
|
||||
make[0][0] + make[1][0] + make[2][0] == s &&
|
||||
make[0][1] + make[1][1] + make[2][1] == s &&
|
||||
make[0][2] + make[1][2] + make[2][2] == s &&
|
||||
make[0][0] + make[1][1] + make[2][2] == s &&
|
||||
make[2][0] + make[1][1] + make[0][2] == s) {
|
||||
count[0] = count[0] + 1;
|
||||
for (i = 0; i <= 2; i++) {
|
||||
for (j = 0; j <= 2; j++) {
|
||||
printInt(make[i][j]);
|
||||
printStr(" ");
|
||||
}
|
||||
printStr("\n");
|
||||
}
|
||||
printStr("\n");
|
||||
}
|
||||
} else {
|
||||
if (y == 2) {
|
||||
make[x][y] = 15 - make[x][0] - make[x][1];
|
||||
if (make[x][y] > 0 && make[x][y] < 10 && color[make[x][y]] == 0) {
|
||||
color[make[x][y]] = 1;
|
||||
if (y == 2)
|
||||
search(x + 1, 0, z + make[x][y]);
|
||||
else
|
||||
search(x, y + 1, z + make[x][y]);
|
||||
color[make[x][y]] = 0;
|
||||
}
|
||||
} else {
|
||||
for (i = 1; i <= 9; i++) {
|
||||
if (color[i] == 0) {
|
||||
color[i] = 1;
|
||||
make[x][y] = i;
|
||||
if (y == 2)
|
||||
search(x + 1, 0, z + i);
|
||||
else
|
||||
search(x, y + 1, z + i);
|
||||
make[x][y] = 0;
|
||||
color[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
int main() {
|
||||
origin(3);
|
||||
search(0, 0, 0);
|
||||
printInt(count[0]);
|
||||
return judgeResult % Mod; // 106
|
||||
}
|
80
test/testcases/magic.data
Normal file
80
test/testcases/magic.data
Normal file
@ -0,0 +1,80 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 C0 37 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 07 4E 33 45 F5 00 13 05 D5 0A
|
||||
23 20 A7 4E 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 07 4E B3 C7 D7 00 93 87 97 20
|
||||
23 20 F7 4E 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 B7 17 00 00 23 A6 07 48 63 5C A0 04
|
||||
B7 17 00 00 93 87 C7 4B 93 16 15 00 B3 86 A6 00
|
||||
93 96 26 00 B3 86 F6 00 13 06 10 00 93 05 20 00
|
||||
6F 00 00 01 23 A4 07 00 93 87 C7 00 63 8C D7 00
|
||||
23 A0 07 00 E3 5A A6 FE 23 A2 07 00 E3 C4 A5 FE
|
||||
6F F0 9F FE B7 17 00 00 23 A4 A7 48 B7 17 00 00
|
||||
23 A6 A7 48 67 80 00 00 13 01 01 FE 23 2E 11 00
|
||||
23 2C 81 00 23 2A 91 00 23 28 21 01 23 26 31 01
|
||||
23 24 41 01 23 22 51 01 23 20 61 01 13 09 05 00
|
||||
13 0A 06 00 63 9A 05 06 63 06 05 12 13 05 F5 FF
|
||||
B7 17 00 00 93 87 C7 4B 13 17 15 00 B3 06 A7 00
|
||||
93 96 26 00 B3 86 D7 00 03 A6 06 00 83 A6 46 00
|
||||
B3 06 D6 00 33 07 A7 00 13 17 27 00 B3 87 E7 00
|
||||
83 A7 87 00 B3 87 F6 00 13 07 F0 00 63 8C E7 24
|
||||
83 20 C1 01 03 24 81 01 83 24 41 01 03 29 01 01
|
||||
83 29 C1 00 03 2A 81 00 83 2A 41 00 03 2B 01 00
|
||||
13 01 01 02 67 80 00 00 93 07 20 00 63 0A F5 0A
|
||||
93 07 20 00 63 98 F5 0A B7 17 00 00 13 17 19 00
|
||||
33 07 27 01 13 17 27 00 93 87 C7 4B B3 87 E7 00
|
||||
03 A7 07 00 13 06 F0 00 33 06 E6 40 03 A7 47 00
|
||||
33 06 E6 40 23 A4 C7 00 13 07 F6 FF 93 07 80 00
|
||||
E3 E8 E7 F8 37 17 00 00 93 17 26 00 13 07 07 49
|
||||
B3 07 F7 00 83 A7 07 00 E3 9C 07 F6 37 14 00 00
|
||||
13 04 04 49 93 17 26 00 B3 07 F4 00 13 07 10 00
|
||||
23 A0 E7 00 33 06 46 01 93 05 00 00 13 05 19 00
|
||||
EF F0 9F ED B7 17 00 00 13 17 19 00 33 07 27 01
|
||||
13 17 27 00 93 87 C7 4B B3 87 E7 00 83 A7 87 00
|
||||
93 97 27 00 33 04 F4 00 23 20 04 00 6F F0 5F F2
|
||||
63 8A F5 02 37 14 00 00 13 04 04 49 93 04 10 00
|
||||
B7 19 00 00 93 89 C9 4B 93 17 19 00 B3 87 27 01
|
||||
B3 87 B7 00 93 97 27 00 B3 89 F9 00 93 8A 15 00
|
||||
6F 00 80 13 93 07 D0 02 33 8A C7 40 B7 17 00 00
|
||||
93 87 C7 4B 23 A0 47 03 03 A6 07 00 03 A8 47 00
|
||||
B3 08 06 01 03 A5 87 00 33 87 A8 00 83 A6 C7 00
|
||||
83 A5 07 01 03 A3 47 01 B3 87 B6 00 B3 87 67 00
|
||||
E3 98 E7 EA B7 17 00 00 93 87 C7 4B 03 AE 87 01
|
||||
83 AE C7 01 B3 07 DE 01 B3 87 47 01 E3 9A E7 E8
|
||||
B3 07 D6 00 B3 87 C7 01 E3 94 E7 E8 B3 07 B8 00
|
||||
B3 87 D7 01 E3 9E E7 E6 B3 07 65 00 B3 87 47 01
|
||||
E3 98 E7 E6 33 06 B6 00 33 0A 46 01 E3 12 EA E6
|
||||
B3 85 C5 01 E3 9E B8 E4 37 17 00 00 83 27 87 4B
|
||||
93 87 17 00 23 2C F7 4A 37 14 00 00 13 04 C4 4B
|
||||
13 0B 44 02 B7 1A 00 00 13 0A 30 00 B7 19 00 00
|
||||
13 09 04 00 93 04 00 00 03 25 09 00 EF F0 5F D0
|
||||
13 85 CA 47 EF F0 5F D1 93 84 14 00 13 09 49 00
|
||||
E3 94 44 FF 13 85 09 48 EF F0 1F D0 13 04 C4 00
|
||||
E3 18 64 FD 37 15 00 00 13 05 05 48 EF F0 DF CE
|
||||
6F F0 1F DF 93 07 10 00 23 22 F4 00 23 A0 99 00
|
||||
33 06 9A 00 93 85 0A 00 13 05 09 00 EF F0 DF D5
|
||||
23 A0 09 00 23 22 04 00 93 84 14 00 13 04 44 00
|
||||
93 07 A0 00 E3 8E F4 DA 83 27 44 00 E3 96 07 FE
|
||||
6F F0 5F FC 93 07 20 00 E3 1C F9 DC 6F F0 9F E8
|
||||
13 01 01 FF 23 26 11 00 13 05 30 00 EF F0 9F CB
|
||||
13 06 00 00 93 05 00 00 13 05 00 00 EF F0 DF D0
|
||||
B7 17 00 00 03 A5 87 4B EF F0 9F C5 93 05 D0 0F
|
||||
B7 17 00 00 03 A5 07 4E EF 00 40 09 83 20 C1 00
|
||||
13 01 01 01 67 80 00 00 63 40 05 06 63 C6 05 06
|
||||
13 86 05 00 93 05 05 00 13 05 F0 FF 63 0C 06 02
|
||||
93 06 10 00 63 7A B6 00 63 58 C0 00 13 16 16 00
|
||||
93 96 16 00 E3 6A B6 FE 13 05 00 00 63 E6 C5 00
|
||||
B3 85 C5 40 33 65 D5 00 93 D6 16 00 13 56 16 00
|
||||
E3 96 06 FE 67 80 00 00 93 82 00 00 EF F0 5F FB
|
||||
13 85 05 00 67 80 02 00 33 05 A0 40 63 D8 05 00
|
||||
B3 05 B0 40 6F F0 DF F9 B3 05 B0 40 93 82 00 00
|
||||
EF F0 1F F9 33 05 A0 40 67 80 02 00 93 82 00 00
|
||||
63 CA 05 00 63 4C 05 00 EF F0 9F F7 13 85 05 00
|
||||
67 80 02 00 B3 05 B0 40 E3 58 05 FE 33 05 A0 40
|
||||
EF F0 1F F6 33 05 B0 40 67 80 02 00
|
||||
@0000147C
|
||||
20 00 00 00 0A 00 00 00
|
||||
@00001484
|
||||
FD 00 00 00
|
612
test/testcases/magic.dump
Normal file
612
test/testcases/magic.dump
Normal file
@ -0,0 +1,612 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 37c010ef jal ra,1380 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 4e072783 lw a5,1248(a4) # 14e0 <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 4ea72023 sw a0,1248(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 4e072683 lw a3,1248(a4) # 14e0 <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 4ef72023 sw a5,1248(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <origin>:
|
||||
1044: 000017b7 lui a5,0x1
|
||||
1048: 4807a623 sw zero,1164(a5) # 148c <i>
|
||||
104c: 04a05c63 blez a0,10a4 <origin+0x60>
|
||||
1050: 000017b7 lui a5,0x1
|
||||
1054: 4bc78793 addi a5,a5,1212 # 14bc <make>
|
||||
1058: 00151693 slli a3,a0,0x1
|
||||
105c: 00a686b3 add a3,a3,a0
|
||||
1060: 00269693 slli a3,a3,0x2
|
||||
1064: 00f686b3 add a3,a3,a5
|
||||
1068: 00100613 li a2,1
|
||||
106c: 00200593 li a1,2
|
||||
1070: 0100006f j 1080 <origin+0x3c>
|
||||
1074: 0007a423 sw zero,8(a5)
|
||||
1078: 00c78793 addi a5,a5,12
|
||||
107c: 00d78c63 beq a5,a3,1094 <origin+0x50>
|
||||
1080: 0007a023 sw zero,0(a5)
|
||||
1084: fea65ae3 bge a2,a0,1078 <origin+0x34>
|
||||
1088: 0007a223 sw zero,4(a5)
|
||||
108c: fea5c4e3 blt a1,a0,1074 <origin+0x30>
|
||||
1090: fe9ff06f j 1078 <origin+0x34>
|
||||
1094: 000017b7 lui a5,0x1
|
||||
1098: 48a7a423 sw a0,1160(a5) # 1488 <__bss_start>
|
||||
109c: 000017b7 lui a5,0x1
|
||||
10a0: 48a7a623 sw a0,1164(a5) # 148c <i>
|
||||
10a4: 00008067 ret
|
||||
|
||||
000010a8 <search>:
|
||||
10a8: fe010113 addi sp,sp,-32 # 1ffe0 <__heap_start+0x1dfe0>
|
||||
10ac: 00112e23 sw ra,28(sp)
|
||||
10b0: 00812c23 sw s0,24(sp)
|
||||
10b4: 00912a23 sw s1,20(sp)
|
||||
10b8: 01212823 sw s2,16(sp)
|
||||
10bc: 01312623 sw s3,12(sp)
|
||||
10c0: 01412423 sw s4,8(sp)
|
||||
10c4: 01512223 sw s5,4(sp)
|
||||
10c8: 01612023 sw s6,0(sp)
|
||||
10cc: 00050913 mv s2,a0
|
||||
10d0: 00060a13 mv s4,a2
|
||||
10d4: 06059a63 bnez a1,1148 <search+0xa0>
|
||||
10d8: 12050663 beqz a0,1204 <search+0x15c>
|
||||
10dc: fff50513 addi a0,a0,-1
|
||||
10e0: 000017b7 lui a5,0x1
|
||||
10e4: 4bc78793 addi a5,a5,1212 # 14bc <make>
|
||||
10e8: 00151713 slli a4,a0,0x1
|
||||
10ec: 00a706b3 add a3,a4,a0
|
||||
10f0: 00269693 slli a3,a3,0x2
|
||||
10f4: 00d786b3 add a3,a5,a3
|
||||
10f8: 0006a603 lw a2,0(a3)
|
||||
10fc: 0046a683 lw a3,4(a3)
|
||||
1100: 00d606b3 add a3,a2,a3
|
||||
1104: 00a70733 add a4,a4,a0
|
||||
1108: 00271713 slli a4,a4,0x2
|
||||
110c: 00e787b3 add a5,a5,a4
|
||||
1110: 0087a783 lw a5,8(a5)
|
||||
1114: 00f687b3 add a5,a3,a5
|
||||
1118: 00f00713 li a4,15
|
||||
111c: 24e78c63 beq a5,a4,1374 <search+0x2cc>
|
||||
1120: 01c12083 lw ra,28(sp)
|
||||
1124: 01812403 lw s0,24(sp)
|
||||
1128: 01412483 lw s1,20(sp)
|
||||
112c: 01012903 lw s2,16(sp)
|
||||
1130: 00c12983 lw s3,12(sp)
|
||||
1134: 00812a03 lw s4,8(sp)
|
||||
1138: 00412a83 lw s5,4(sp)
|
||||
113c: 00012b03 lw s6,0(sp)
|
||||
1140: 02010113 addi sp,sp,32
|
||||
1144: 00008067 ret
|
||||
1148: 00200793 li a5,2
|
||||
114c: 0af50a63 beq a0,a5,1200 <search+0x158>
|
||||
1150: 00200793 li a5,2
|
||||
1154: 0af59863 bne a1,a5,1204 <search+0x15c>
|
||||
1158: 000017b7 lui a5,0x1
|
||||
115c: 00191713 slli a4,s2,0x1
|
||||
1160: 01270733 add a4,a4,s2
|
||||
1164: 00271713 slli a4,a4,0x2
|
||||
1168: 4bc78793 addi a5,a5,1212 # 14bc <make>
|
||||
116c: 00e787b3 add a5,a5,a4
|
||||
1170: 0007a703 lw a4,0(a5)
|
||||
1174: 00f00613 li a2,15
|
||||
1178: 40e60633 sub a2,a2,a4
|
||||
117c: 0047a703 lw a4,4(a5)
|
||||
1180: 40e60633 sub a2,a2,a4
|
||||
1184: 00c7a423 sw a2,8(a5)
|
||||
1188: fff60713 addi a4,a2,-1
|
||||
118c: 00800793 li a5,8
|
||||
1190: f8e7e8e3 bltu a5,a4,1120 <search+0x78>
|
||||
1194: 00001737 lui a4,0x1
|
||||
1198: 00261793 slli a5,a2,0x2
|
||||
119c: 49070713 addi a4,a4,1168 # 1490 <color>
|
||||
11a0: 00f707b3 add a5,a4,a5
|
||||
11a4: 0007a783 lw a5,0(a5)
|
||||
11a8: f6079ce3 bnez a5,1120 <search+0x78>
|
||||
11ac: 00001437 lui s0,0x1
|
||||
11b0: 49040413 addi s0,s0,1168 # 1490 <color>
|
||||
11b4: 00261793 slli a5,a2,0x2
|
||||
11b8: 00f407b3 add a5,s0,a5
|
||||
11bc: 00100713 li a4,1
|
||||
11c0: 00e7a023 sw a4,0(a5)
|
||||
11c4: 01460633 add a2,a2,s4
|
||||
11c8: 00000593 li a1,0
|
||||
11cc: 00190513 addi a0,s2,1
|
||||
11d0: ed9ff0ef jal ra,10a8 <search>
|
||||
11d4: 000017b7 lui a5,0x1
|
||||
11d8: 00191713 slli a4,s2,0x1
|
||||
11dc: 01270733 add a4,a4,s2
|
||||
11e0: 00271713 slli a4,a4,0x2
|
||||
11e4: 4bc78793 addi a5,a5,1212 # 14bc <make>
|
||||
11e8: 00e787b3 add a5,a5,a4
|
||||
11ec: 0087a783 lw a5,8(a5)
|
||||
11f0: 00279793 slli a5,a5,0x2
|
||||
11f4: 00f40433 add s0,s0,a5
|
||||
11f8: 00042023 sw zero,0(s0)
|
||||
11fc: f25ff06f j 1120 <search+0x78>
|
||||
1200: 02f58a63 beq a1,a5,1234 <search+0x18c>
|
||||
1204: 00001437 lui s0,0x1
|
||||
1208: 49040413 addi s0,s0,1168 # 1490 <color>
|
||||
120c: 00100493 li s1,1
|
||||
1210: 000019b7 lui s3,0x1
|
||||
1214: 4bc98993 addi s3,s3,1212 # 14bc <make>
|
||||
1218: 00191793 slli a5,s2,0x1
|
||||
121c: 012787b3 add a5,a5,s2
|
||||
1220: 00b787b3 add a5,a5,a1
|
||||
1224: 00279793 slli a5,a5,0x2
|
||||
1228: 00f989b3 add s3,s3,a5
|
||||
122c: 00158a93 addi s5,a1,1
|
||||
1230: 1380006f j 1368 <search+0x2c0>
|
||||
1234: 02d00793 li a5,45
|
||||
1238: 40c78a33 sub s4,a5,a2
|
||||
123c: 000017b7 lui a5,0x1
|
||||
1240: 4bc78793 addi a5,a5,1212 # 14bc <make>
|
||||
1244: 0347a023 sw s4,32(a5)
|
||||
1248: 0007a603 lw a2,0(a5)
|
||||
124c: 0047a803 lw a6,4(a5)
|
||||
1250: 010608b3 add a7,a2,a6
|
||||
1254: 0087a503 lw a0,8(a5)
|
||||
1258: 00a88733 add a4,a7,a0
|
||||
125c: 00c7a683 lw a3,12(a5)
|
||||
1260: 0107a583 lw a1,16(a5)
|
||||
1264: 0147a303 lw t1,20(a5)
|
||||
1268: 00b687b3 add a5,a3,a1
|
||||
126c: 006787b3 add a5,a5,t1
|
||||
1270: eae798e3 bne a5,a4,1120 <search+0x78>
|
||||
1274: 000017b7 lui a5,0x1
|
||||
1278: 4bc78793 addi a5,a5,1212 # 14bc <make>
|
||||
127c: 0187ae03 lw t3,24(a5)
|
||||
1280: 01c7ae83 lw t4,28(a5)
|
||||
1284: 01de07b3 add a5,t3,t4
|
||||
1288: 014787b3 add a5,a5,s4
|
||||
128c: e8e79ae3 bne a5,a4,1120 <search+0x78>
|
||||
1290: 00d607b3 add a5,a2,a3
|
||||
1294: 01c787b3 add a5,a5,t3
|
||||
1298: e8e794e3 bne a5,a4,1120 <search+0x78>
|
||||
129c: 00b807b3 add a5,a6,a1
|
||||
12a0: 01d787b3 add a5,a5,t4
|
||||
12a4: e6e79ee3 bne a5,a4,1120 <search+0x78>
|
||||
12a8: 006507b3 add a5,a0,t1
|
||||
12ac: 014787b3 add a5,a5,s4
|
||||
12b0: e6e798e3 bne a5,a4,1120 <search+0x78>
|
||||
12b4: 00b60633 add a2,a2,a1
|
||||
12b8: 01460a33 add s4,a2,s4
|
||||
12bc: e6ea12e3 bne s4,a4,1120 <search+0x78>
|
||||
12c0: 01c585b3 add a1,a1,t3
|
||||
12c4: e4b89ee3 bne a7,a1,1120 <search+0x78>
|
||||
12c8: 00001737 lui a4,0x1
|
||||
12cc: 4b872783 lw a5,1208(a4) # 14b8 <count>
|
||||
12d0: 00178793 addi a5,a5,1
|
||||
12d4: 4af72c23 sw a5,1208(a4)
|
||||
12d8: 00001437 lui s0,0x1
|
||||
12dc: 4bc40413 addi s0,s0,1212 # 14bc <make>
|
||||
12e0: 02440b13 addi s6,s0,36
|
||||
12e4: 00001ab7 lui s5,0x1
|
||||
12e8: 00300a13 li s4,3
|
||||
12ec: 000019b7 lui s3,0x1
|
||||
12f0: 00040913 mv s2,s0
|
||||
12f4: 00000493 li s1,0
|
||||
12f8: 00092503 lw a0,0(s2)
|
||||
12fc: d05ff0ef jal ra,1000 <printInt>
|
||||
1300: 47ca8513 addi a0,s5,1148 # 147c <__modsi3+0x30>
|
||||
1304: d15ff0ef jal ra,1018 <printStr>
|
||||
1308: 00148493 addi s1,s1,1
|
||||
130c: 00490913 addi s2,s2,4
|
||||
1310: ff4494e3 bne s1,s4,12f8 <search+0x250>
|
||||
1314: 48098513 addi a0,s3,1152 # 1480 <__modsi3+0x34>
|
||||
1318: d01ff0ef jal ra,1018 <printStr>
|
||||
131c: 00c40413 addi s0,s0,12
|
||||
1320: fd6418e3 bne s0,s6,12f0 <search+0x248>
|
||||
1324: 00001537 lui a0,0x1
|
||||
1328: 48050513 addi a0,a0,1152 # 1480 <__modsi3+0x34>
|
||||
132c: cedff0ef jal ra,1018 <printStr>
|
||||
1330: df1ff06f j 1120 <search+0x78>
|
||||
1334: 00100793 li a5,1
|
||||
1338: 00f42223 sw a5,4(s0)
|
||||
133c: 0099a023 sw s1,0(s3)
|
||||
1340: 009a0633 add a2,s4,s1
|
||||
1344: 000a8593 mv a1,s5
|
||||
1348: 00090513 mv a0,s2
|
||||
134c: d5dff0ef jal ra,10a8 <search>
|
||||
1350: 0009a023 sw zero,0(s3)
|
||||
1354: 00042223 sw zero,4(s0)
|
||||
1358: 00148493 addi s1,s1,1
|
||||
135c: 00440413 addi s0,s0,4
|
||||
1360: 00a00793 li a5,10
|
||||
1364: daf48ee3 beq s1,a5,1120 <search+0x78>
|
||||
1368: 00442783 lw a5,4(s0)
|
||||
136c: fe0796e3 bnez a5,1358 <search+0x2b0>
|
||||
1370: fc5ff06f j 1334 <search+0x28c>
|
||||
1374: 00200793 li a5,2
|
||||
1378: dcf91ce3 bne s2,a5,1150 <search+0xa8>
|
||||
137c: e89ff06f j 1204 <search+0x15c>
|
||||
|
||||
00001380 <main>:
|
||||
1380: ff010113 addi sp,sp,-16
|
||||
1384: 00112623 sw ra,12(sp)
|
||||
1388: 00300513 li a0,3
|
||||
138c: cb9ff0ef jal ra,1044 <origin>
|
||||
1390: 00000613 li a2,0
|
||||
1394: 00000593 li a1,0
|
||||
1398: 00000513 li a0,0
|
||||
139c: d0dff0ef jal ra,10a8 <search>
|
||||
13a0: 000017b7 lui a5,0x1
|
||||
13a4: 4b87a503 lw a0,1208(a5) # 14b8 <count>
|
||||
13a8: c59ff0ef jal ra,1000 <printInt>
|
||||
13ac: 0fd00593 li a1,253
|
||||
13b0: 000017b7 lui a5,0x1
|
||||
13b4: 4e07a503 lw a0,1248(a5) # 14e0 <__bss_end>
|
||||
13b8: 094000ef jal ra,144c <__modsi3>
|
||||
13bc: 00c12083 lw ra,12(sp)
|
||||
13c0: 01010113 addi sp,sp,16
|
||||
13c4: 00008067 ret
|
||||
|
||||
000013c8 <__divsi3>:
|
||||
13c8: 06054063 bltz a0,1428 <__umodsi3+0x10>
|
||||
13cc: 0605c663 bltz a1,1438 <__umodsi3+0x20>
|
||||
|
||||
000013d0 <__udivsi3>:
|
||||
13d0: 00058613 mv a2,a1
|
||||
13d4: 00050593 mv a1,a0
|
||||
13d8: fff00513 li a0,-1
|
||||
13dc: 02060c63 beqz a2,1414 <__udivsi3+0x44>
|
||||
13e0: 00100693 li a3,1
|
||||
13e4: 00b67a63 bgeu a2,a1,13f8 <__udivsi3+0x28>
|
||||
13e8: 00c05863 blez a2,13f8 <__udivsi3+0x28>
|
||||
13ec: 00161613 slli a2,a2,0x1
|
||||
13f0: 00169693 slli a3,a3,0x1
|
||||
13f4: feb66ae3 bltu a2,a1,13e8 <__udivsi3+0x18>
|
||||
13f8: 00000513 li a0,0
|
||||
13fc: 00c5e663 bltu a1,a2,1408 <__udivsi3+0x38>
|
||||
1400: 40c585b3 sub a1,a1,a2
|
||||
1404: 00d56533 or a0,a0,a3
|
||||
1408: 0016d693 srli a3,a3,0x1
|
||||
140c: 00165613 srli a2,a2,0x1
|
||||
1410: fe0696e3 bnez a3,13fc <__udivsi3+0x2c>
|
||||
1414: 00008067 ret
|
||||
|
||||
00001418 <__umodsi3>:
|
||||
1418: 00008293 mv t0,ra
|
||||
141c: fb5ff0ef jal ra,13d0 <__udivsi3>
|
||||
1420: 00058513 mv a0,a1
|
||||
1424: 00028067 jr t0
|
||||
1428: 40a00533 neg a0,a0
|
||||
142c: 0005d863 bgez a1,143c <__umodsi3+0x24>
|
||||
1430: 40b005b3 neg a1,a1
|
||||
1434: f9dff06f j 13d0 <__udivsi3>
|
||||
1438: 40b005b3 neg a1,a1
|
||||
143c: 00008293 mv t0,ra
|
||||
1440: f91ff0ef jal ra,13d0 <__udivsi3>
|
||||
1444: 40a00533 neg a0,a0
|
||||
1448: 00028067 jr t0
|
||||
|
||||
0000144c <__modsi3>:
|
||||
144c: 00008293 mv t0,ra
|
||||
1450: 0005ca63 bltz a1,1464 <__modsi3+0x18>
|
||||
1454: 00054c63 bltz a0,146c <__modsi3+0x20>
|
||||
1458: f79ff0ef jal ra,13d0 <__udivsi3>
|
||||
145c: 00058513 mv a0,a1
|
||||
1460: 00028067 jr t0
|
||||
1464: 40b005b3 neg a1,a1
|
||||
1468: fe0558e3 bgez a0,1458 <__modsi3+0xc>
|
||||
146c: 40a00533 neg a0,a0
|
||||
1470: f61ff0ef jal ra,13d0 <__udivsi3>
|
||||
1474: 40b00533 neg a0,a1
|
||||
1478: 00028067 jr t0
|
||||
|
||||
Disassembly of section .rodata.str1.4:
|
||||
|
||||
0000147c <.rodata.str1.4>:
|
||||
147c: 0020 addi s0,sp,8
|
||||
147e: 0000 unimp
|
||||
1480: 000a c.slli zero,0x2
|
||||
...
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
00001484 <Mod>:
|
||||
1484: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
00001488 <j>:
|
||||
1488: 0000 unimp
|
||||
...
|
||||
|
||||
0000148c <i>:
|
||||
148c: 0000 unimp
|
||||
...
|
||||
|
||||
00001490 <color>:
|
||||
...
|
||||
|
||||
000014b8 <count>:
|
||||
14b8: 0000 unimp
|
||||
...
|
||||
|
||||
000014bc <make>:
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
000014e0 <judgeResult>:
|
||||
14e0: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 13c8 addi a0,sp,484
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 13c8 addi a0,sp,484
|
||||
12: 0000 unimp
|
||||
14: 147c addi a5,sp,556
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 13c8 addi a0,sp,484
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
11
test/testcases/manyarguments.c
Normal file
11
test/testcases/manyarguments.c
Normal file
@ -0,0 +1,11 @@
|
||||
#include "io.inc"
|
||||
int a(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9,
|
||||
int a10, int a11, int a12, int a13, int a14, int a15) {
|
||||
return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + a11 + a12 + a13 +
|
||||
a14 + a15;
|
||||
}
|
||||
|
||||
int main() {
|
||||
printInt(a(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15));
|
||||
return judgeResult % Mod; // 40
|
||||
}
|
30
test/testcases/manyarguments.data
Normal file
30
test/testcases/manyarguments.data
Normal file
@ -0,0 +1,30 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 80 09 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 07 18 33 45 F5 00 13 05 D5 0A
|
||||
23 20 A7 18 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 07 18 B3 C7 D7 00 93 87 97 20
|
||||
23 20 F7 18 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 B3 05 B5 00 B3 85 C5 00 B3 85 D5 00
|
||||
B3 85 E5 00 B3 85 F5 00 B3 85 05 01 B3 85 15 01
|
||||
83 27 01 00 B3 87 F5 00 83 25 41 00 B3 87 B7 00
|
||||
83 25 81 00 B3 87 B7 00 03 25 C1 00 B3 87 A7 00
|
||||
03 25 01 01 B3 87 A7 00 03 25 41 01 B3 87 A7 00
|
||||
03 25 81 01 33 85 A7 00 67 80 00 00 13 01 01 FF
|
||||
23 26 11 00 13 05 80 07 EF F0 9F F5 93 05 D0 0F
|
||||
B7 17 00 00 03 A5 07 18 EF 00 40 09 83 20 C1 00
|
||||
13 01 01 01 67 80 00 00 63 40 05 06 63 C6 05 06
|
||||
13 86 05 00 93 05 05 00 13 05 F0 FF 63 0C 06 02
|
||||
93 06 10 00 63 7A B6 00 63 58 C0 00 13 16 16 00
|
||||
93 96 16 00 E3 6A B6 FE 13 05 00 00 63 E6 C5 00
|
||||
B3 85 C5 40 33 65 D5 00 93 D6 16 00 13 56 16 00
|
||||
E3 96 06 FE 67 80 00 00 93 82 00 00 EF F0 5F FB
|
||||
13 85 05 00 67 80 02 00 33 05 A0 40 63 D8 05 00
|
||||
B3 05 B0 40 6F F0 DF F9 B3 05 B0 40 93 82 00 00
|
||||
EF F0 1F F9 33 05 A0 40 67 80 02 00 93 82 00 00
|
||||
63 CA 05 00 63 4C 05 00 EF F0 9F F7 13 85 05 00
|
||||
67 80 02 00 B3 05 B0 40 E3 58 05 FE 33 05 A0 40
|
||||
EF F0 1F F6 33 05 B0 40 67 80 02 00
|
||||
@0000117C
|
||||
FD 00 00 00
|
390
test/testcases/manyarguments.dump
Normal file
390
test/testcases/manyarguments.dump
Normal file
@ -0,0 +1,390 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 098010ef jal ra,109c <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 18072783 lw a5,384(a4) # 1180 <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 18a72023 sw a0,384(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 18072683 lw a3,384(a4) # 1180 <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 18f72023 sw a5,384(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <a>:
|
||||
1044: 00b505b3 add a1,a0,a1
|
||||
1048: 00c585b3 add a1,a1,a2
|
||||
104c: 00d585b3 add a1,a1,a3
|
||||
1050: 00e585b3 add a1,a1,a4
|
||||
1054: 00f585b3 add a1,a1,a5
|
||||
1058: 010585b3 add a1,a1,a6
|
||||
105c: 011585b3 add a1,a1,a7
|
||||
1060: 00012783 lw a5,0(sp) # 20000 <__heap_start+0x1e000>
|
||||
1064: 00f587b3 add a5,a1,a5
|
||||
1068: 00412583 lw a1,4(sp)
|
||||
106c: 00b787b3 add a5,a5,a1
|
||||
1070: 00812583 lw a1,8(sp)
|
||||
1074: 00b787b3 add a5,a5,a1
|
||||
1078: 00c12503 lw a0,12(sp)
|
||||
107c: 00a787b3 add a5,a5,a0
|
||||
1080: 01012503 lw a0,16(sp)
|
||||
1084: 00a787b3 add a5,a5,a0
|
||||
1088: 01412503 lw a0,20(sp)
|
||||
108c: 00a787b3 add a5,a5,a0
|
||||
1090: 01812503 lw a0,24(sp)
|
||||
1094: 00a78533 add a0,a5,a0
|
||||
1098: 00008067 ret
|
||||
|
||||
0000109c <main>:
|
||||
109c: ff010113 addi sp,sp,-16
|
||||
10a0: 00112623 sw ra,12(sp)
|
||||
10a4: 07800513 li a0,120
|
||||
10a8: f59ff0ef jal ra,1000 <printInt>
|
||||
10ac: 0fd00593 li a1,253
|
||||
10b0: 000017b7 lui a5,0x1
|
||||
10b4: 1807a503 lw a0,384(a5) # 1180 <__bss_end>
|
||||
10b8: 094000ef jal ra,114c <__modsi3>
|
||||
10bc: 00c12083 lw ra,12(sp)
|
||||
10c0: 01010113 addi sp,sp,16
|
||||
10c4: 00008067 ret
|
||||
|
||||
000010c8 <__divsi3>:
|
||||
10c8: 06054063 bltz a0,1128 <__umodsi3+0x10>
|
||||
10cc: 0605c663 bltz a1,1138 <__umodsi3+0x20>
|
||||
|
||||
000010d0 <__udivsi3>:
|
||||
10d0: 00058613 mv a2,a1
|
||||
10d4: 00050593 mv a1,a0
|
||||
10d8: fff00513 li a0,-1
|
||||
10dc: 02060c63 beqz a2,1114 <__udivsi3+0x44>
|
||||
10e0: 00100693 li a3,1
|
||||
10e4: 00b67a63 bgeu a2,a1,10f8 <__udivsi3+0x28>
|
||||
10e8: 00c05863 blez a2,10f8 <__udivsi3+0x28>
|
||||
10ec: 00161613 slli a2,a2,0x1
|
||||
10f0: 00169693 slli a3,a3,0x1
|
||||
10f4: feb66ae3 bltu a2,a1,10e8 <__udivsi3+0x18>
|
||||
10f8: 00000513 li a0,0
|
||||
10fc: 00c5e663 bltu a1,a2,1108 <__udivsi3+0x38>
|
||||
1100: 40c585b3 sub a1,a1,a2
|
||||
1104: 00d56533 or a0,a0,a3
|
||||
1108: 0016d693 srli a3,a3,0x1
|
||||
110c: 00165613 srli a2,a2,0x1
|
||||
1110: fe0696e3 bnez a3,10fc <__udivsi3+0x2c>
|
||||
1114: 00008067 ret
|
||||
|
||||
00001118 <__umodsi3>:
|
||||
1118: 00008293 mv t0,ra
|
||||
111c: fb5ff0ef jal ra,10d0 <__udivsi3>
|
||||
1120: 00058513 mv a0,a1
|
||||
1124: 00028067 jr t0
|
||||
1128: 40a00533 neg a0,a0
|
||||
112c: 0005d863 bgez a1,113c <__umodsi3+0x24>
|
||||
1130: 40b005b3 neg a1,a1
|
||||
1134: f9dff06f j 10d0 <__udivsi3>
|
||||
1138: 40b005b3 neg a1,a1
|
||||
113c: 00008293 mv t0,ra
|
||||
1140: f91ff0ef jal ra,10d0 <__udivsi3>
|
||||
1144: 40a00533 neg a0,a0
|
||||
1148: 00028067 jr t0
|
||||
|
||||
0000114c <__modsi3>:
|
||||
114c: 00008293 mv t0,ra
|
||||
1150: 0005ca63 bltz a1,1164 <__modsi3+0x18>
|
||||
1154: 00054c63 bltz a0,116c <__modsi3+0x20>
|
||||
1158: f79ff0ef jal ra,10d0 <__udivsi3>
|
||||
115c: 00058513 mv a0,a1
|
||||
1160: 00028067 jr t0
|
||||
1164: 40b005b3 neg a1,a1
|
||||
1168: fe0558e3 bgez a0,1158 <__modsi3+0xc>
|
||||
116c: 40a00533 neg a0,a0
|
||||
1170: f61ff0ef jal ra,10d0 <__udivsi3>
|
||||
1174: 40b00533 neg a0,a1
|
||||
1178: 00028067 jr t0
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
0000117c <Mod>:
|
||||
117c: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
00001180 <judgeResult>:
|
||||
1180: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 10c8 addi a0,sp,100
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 10c8 addi a0,sp,100
|
||||
12: 0000 unimp
|
||||
14: 117c addi a5,sp,172
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 10c8 addi a0,sp,100
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
37
test/testcases/multiarray.c
Normal file
37
test/testcases/multiarray.c
Normal file
@ -0,0 +1,37 @@
|
||||
#include "io.inc"
|
||||
int a[4][11];
|
||||
int i;
|
||||
int j;
|
||||
|
||||
struct rec {
|
||||
int num;
|
||||
int c;
|
||||
} b[5];
|
||||
|
||||
void printNum(int num) { printInt(num); }
|
||||
|
||||
int main() {
|
||||
for (i = 0; i < 4; i++) {
|
||||
for (j = 0; j < 10; j++)
|
||||
a[i][j] = 888;
|
||||
}
|
||||
for (i = 0; i < 5; i++) {
|
||||
b[i].num = -1;
|
||||
}
|
||||
|
||||
printNum(a[3][9]);
|
||||
for (i = 0; i <= 3; i++)
|
||||
for (j = 0; j <= 9; j++)
|
||||
a[i][j] = i * 10 + j;
|
||||
|
||||
for (i = 0; i <= 3; i++)
|
||||
for (j = 0; j <= 9; j++)
|
||||
printNum(a[i][j]);
|
||||
a[2][10] = 0;
|
||||
printNum(a[2][10]);
|
||||
b[0].num = -2;
|
||||
b[a[2][10]].num = -10;
|
||||
printNum(b[0].num);
|
||||
printNum(b[1].num);
|
||||
return judgeResult % Mod; // 115
|
||||
}
|
50
test/testcases/multiarray.data
Normal file
50
test/testcases/multiarray.data
Normal file
@ -0,0 +1,50 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 80 05 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 C7 39 33 45 F5 00 13 05 D5 0A
|
||||
23 2E A7 38 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 C7 39 B3 C7 D7 00 93 87 97 20
|
||||
23 2E F7 38 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FF 23 26 11 00 EF F0 5F FB
|
||||
83 20 C1 00 13 01 01 01 67 80 00 00 13 01 01 FE
|
||||
23 2E 11 00 23 2C 81 00 23 2A 91 00 23 28 21 01
|
||||
23 26 31 01 23 24 41 01 37 14 00 00 13 04 C4 2E
|
||||
13 07 84 02 13 06 84 0D 93 06 80 37 6F 00 C0 00
|
||||
13 07 C7 02 63 0C C7 00 93 07 87 FD 23 A0 D7 00
|
||||
93 87 47 00 E3 9C E7 FE 6F F0 9F FE B7 17 00 00
|
||||
13 07 A0 00 23 A2 E7 2E B7 17 00 00 93 87 C7 2B
|
||||
13 07 F0 FF 23 A0 E7 00 23 A4 E7 00 23 A8 E7 00
|
||||
23 AC E7 00 23 A0 E7 02 B7 17 00 00 13 07 50 00
|
||||
23 A4 E7 2E B7 17 00 00 03 A5 47 39 EF F0 5F F1
|
||||
93 06 A0 00 13 06 20 03 93 87 66 FF 13 07 04 00
|
||||
23 20 F7 00 93 87 17 00 13 07 47 00 E3 9A F6 FE
|
||||
13 04 C4 02 93 86 A6 00 E3 90 C6 FE B7 17 00 00
|
||||
23 A4 07 2E 37 14 00 00 37 19 00 00 13 09 C9 2E
|
||||
93 84 07 00 93 09 90 00 13 0A 30 00 23 22 04 2E
|
||||
13 07 00 00 83 A6 84 2E 93 97 16 00 B3 87 D7 00
|
||||
93 97 27 00 B3 87 D7 40 B3 87 E7 00 93 97 27 00
|
||||
B3 07 F9 00 03 A5 07 00 EF F0 9F E9 83 27 44 2E
|
||||
13 87 17 00 23 22 E4 2E E3 D6 E9 FC 83 A7 84 2E
|
||||
93 87 17 00 23 A4 F4 2E E3 5A FA FA B7 14 00 00
|
||||
93 84 C4 2E 23 A0 04 08 13 05 00 00 EF F0 5F E6
|
||||
37 14 00 00 13 04 C4 2B 93 07 E0 FF 23 20 F4 00
|
||||
83 A7 04 08 93 97 37 00 B3 07 F4 00 13 07 60 FF
|
||||
23 A0 E7 00 03 25 04 00 EF F0 9F E3 03 25 84 00
|
||||
EF F0 1F E3 93 05 D0 0F B7 17 00 00 03 A5 C7 39
|
||||
EF 00 80 0A 83 20 C1 01 03 24 81 01 83 24 41 01
|
||||
03 29 01 01 83 29 C1 00 03 2A 81 00 13 01 01 02
|
||||
67 80 00 00 63 40 05 06 63 C6 05 06 13 86 05 00
|
||||
93 05 05 00 13 05 F0 FF 63 0C 06 02 93 06 10 00
|
||||
63 7A B6 00 63 58 C0 00 13 16 16 00 93 96 16 00
|
||||
E3 6A B6 FE 13 05 00 00 63 E6 C5 00 B3 85 C5 40
|
||||
33 65 D5 00 93 D6 16 00 13 56 16 00 E3 96 06 FE
|
||||
67 80 00 00 93 82 00 00 EF F0 5F FB 13 85 05 00
|
||||
67 80 02 00 33 05 A0 40 63 D8 05 00 B3 05 B0 40
|
||||
6F F0 DF F9 B3 05 B0 40 93 82 00 00 EF F0 1F F9
|
||||
33 05 A0 40 67 80 02 00 93 82 00 00 63 CA 05 00
|
||||
63 4C 05 00 EF F0 9F F7 13 85 05 00 67 80 02 00
|
||||
B3 05 B0 40 E3 58 05 FE 33 05 A0 40 EF F0 1F F6
|
||||
33 05 B0 40 67 80 02 00
|
||||
@000012B8
|
||||
FD 00 00 00
|
485
test/testcases/multiarray.dump
Normal file
485
test/testcases/multiarray.dump
Normal file
@ -0,0 +1,485 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 058010ef jal ra,105c <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 39c72783 lw a5,924(a4) # 139c <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 38a72e23 sw a0,924(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 39c72683 lw a3,924(a4) # 139c <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 38f72e23 sw a5,924(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <printNum>:
|
||||
1044: ff010113 addi sp,sp,-16 # 1fff0 <__heap_start+0x1dff0>
|
||||
1048: 00112623 sw ra,12(sp)
|
||||
104c: fb5ff0ef jal ra,1000 <printInt>
|
||||
1050: 00c12083 lw ra,12(sp)
|
||||
1054: 01010113 addi sp,sp,16
|
||||
1058: 00008067 ret
|
||||
|
||||
0000105c <main>:
|
||||
105c: fe010113 addi sp,sp,-32
|
||||
1060: 00112e23 sw ra,28(sp)
|
||||
1064: 00812c23 sw s0,24(sp)
|
||||
1068: 00912a23 sw s1,20(sp)
|
||||
106c: 01212823 sw s2,16(sp)
|
||||
1070: 01312623 sw s3,12(sp)
|
||||
1074: 01412423 sw s4,8(sp)
|
||||
1078: 00001437 lui s0,0x1
|
||||
107c: 2ec40413 addi s0,s0,748 # 12ec <a>
|
||||
1080: 02840713 addi a4,s0,40
|
||||
1084: 0d840613 addi a2,s0,216
|
||||
1088: 37800693 li a3,888
|
||||
108c: 00c0006f j 1098 <main+0x3c>
|
||||
1090: 02c70713 addi a4,a4,44
|
||||
1094: 00c70c63 beq a4,a2,10ac <main+0x50>
|
||||
1098: fd870793 addi a5,a4,-40
|
||||
109c: 00d7a023 sw a3,0(a5)
|
||||
10a0: 00478793 addi a5,a5,4
|
||||
10a4: fee79ce3 bne a5,a4,109c <main+0x40>
|
||||
10a8: fe9ff06f j 1090 <main+0x34>
|
||||
10ac: 000017b7 lui a5,0x1
|
||||
10b0: 00a00713 li a4,10
|
||||
10b4: 2ee7a223 sw a4,740(a5) # 12e4 <j>
|
||||
10b8: 000017b7 lui a5,0x1
|
||||
10bc: 2bc78793 addi a5,a5,700 # 12bc <__bss_start>
|
||||
10c0: fff00713 li a4,-1
|
||||
10c4: 00e7a023 sw a4,0(a5)
|
||||
10c8: 00e7a423 sw a4,8(a5)
|
||||
10cc: 00e7a823 sw a4,16(a5)
|
||||
10d0: 00e7ac23 sw a4,24(a5)
|
||||
10d4: 02e7a023 sw a4,32(a5)
|
||||
10d8: 000017b7 lui a5,0x1
|
||||
10dc: 00500713 li a4,5
|
||||
10e0: 2ee7a423 sw a4,744(a5) # 12e8 <i>
|
||||
10e4: 000017b7 lui a5,0x1
|
||||
10e8: 3947a503 lw a0,916(a5) # 1394 <a+0xa8>
|
||||
10ec: f15ff0ef jal ra,1000 <printInt>
|
||||
10f0: 00a00693 li a3,10
|
||||
10f4: 03200613 li a2,50
|
||||
10f8: ff668793 addi a5,a3,-10
|
||||
10fc: 00040713 mv a4,s0
|
||||
1100: 00f72023 sw a5,0(a4)
|
||||
1104: 00178793 addi a5,a5,1
|
||||
1108: 00470713 addi a4,a4,4
|
||||
110c: fef69ae3 bne a3,a5,1100 <main+0xa4>
|
||||
1110: 02c40413 addi s0,s0,44
|
||||
1114: 00a68693 addi a3,a3,10
|
||||
1118: fec690e3 bne a3,a2,10f8 <main+0x9c>
|
||||
111c: 000017b7 lui a5,0x1
|
||||
1120: 2e07a423 sw zero,744(a5) # 12e8 <i>
|
||||
1124: 00001437 lui s0,0x1
|
||||
1128: 00001937 lui s2,0x1
|
||||
112c: 2ec90913 addi s2,s2,748 # 12ec <a>
|
||||
1130: 00078493 mv s1,a5
|
||||
1134: 00900993 li s3,9
|
||||
1138: 00300a13 li s4,3
|
||||
113c: 2e042223 sw zero,740(s0) # 12e4 <j>
|
||||
1140: 00000713 li a4,0
|
||||
1144: 2e84a683 lw a3,744(s1)
|
||||
1148: 00169793 slli a5,a3,0x1
|
||||
114c: 00d787b3 add a5,a5,a3
|
||||
1150: 00279793 slli a5,a5,0x2
|
||||
1154: 40d787b3 sub a5,a5,a3
|
||||
1158: 00e787b3 add a5,a5,a4
|
||||
115c: 00279793 slli a5,a5,0x2
|
||||
1160: 00f907b3 add a5,s2,a5
|
||||
1164: 0007a503 lw a0,0(a5)
|
||||
1168: e99ff0ef jal ra,1000 <printInt>
|
||||
116c: 2e442783 lw a5,740(s0)
|
||||
1170: 00178713 addi a4,a5,1
|
||||
1174: 2ee42223 sw a4,740(s0)
|
||||
1178: fce9d6e3 bge s3,a4,1144 <main+0xe8>
|
||||
117c: 2e84a783 lw a5,744(s1)
|
||||
1180: 00178793 addi a5,a5,1
|
||||
1184: 2ef4a423 sw a5,744(s1)
|
||||
1188: fafa5ae3 bge s4,a5,113c <main+0xe0>
|
||||
118c: 000014b7 lui s1,0x1
|
||||
1190: 2ec48493 addi s1,s1,748 # 12ec <a>
|
||||
1194: 0804a023 sw zero,128(s1)
|
||||
1198: 00000513 li a0,0
|
||||
119c: e65ff0ef jal ra,1000 <printInt>
|
||||
11a0: 00001437 lui s0,0x1
|
||||
11a4: 2bc40413 addi s0,s0,700 # 12bc <__bss_start>
|
||||
11a8: ffe00793 li a5,-2
|
||||
11ac: 00f42023 sw a5,0(s0)
|
||||
11b0: 0804a783 lw a5,128(s1)
|
||||
11b4: 00379793 slli a5,a5,0x3
|
||||
11b8: 00f407b3 add a5,s0,a5
|
||||
11bc: ff600713 li a4,-10
|
||||
11c0: 00e7a023 sw a4,0(a5)
|
||||
11c4: 00042503 lw a0,0(s0)
|
||||
11c8: e39ff0ef jal ra,1000 <printInt>
|
||||
11cc: 00842503 lw a0,8(s0)
|
||||
11d0: e31ff0ef jal ra,1000 <printInt>
|
||||
11d4: 0fd00593 li a1,253
|
||||
11d8: 000017b7 lui a5,0x1
|
||||
11dc: 39c7a503 lw a0,924(a5) # 139c <__bss_end>
|
||||
11e0: 0a8000ef jal ra,1288 <__modsi3>
|
||||
11e4: 01c12083 lw ra,28(sp)
|
||||
11e8: 01812403 lw s0,24(sp)
|
||||
11ec: 01412483 lw s1,20(sp)
|
||||
11f0: 01012903 lw s2,16(sp)
|
||||
11f4: 00c12983 lw s3,12(sp)
|
||||
11f8: 00812a03 lw s4,8(sp)
|
||||
11fc: 02010113 addi sp,sp,32
|
||||
1200: 00008067 ret
|
||||
|
||||
00001204 <__divsi3>:
|
||||
1204: 06054063 bltz a0,1264 <__umodsi3+0x10>
|
||||
1208: 0605c663 bltz a1,1274 <__umodsi3+0x20>
|
||||
|
||||
0000120c <__udivsi3>:
|
||||
120c: 00058613 mv a2,a1
|
||||
1210: 00050593 mv a1,a0
|
||||
1214: fff00513 li a0,-1
|
||||
1218: 02060c63 beqz a2,1250 <__udivsi3+0x44>
|
||||
121c: 00100693 li a3,1
|
||||
1220: 00b67a63 bgeu a2,a1,1234 <__udivsi3+0x28>
|
||||
1224: 00c05863 blez a2,1234 <__udivsi3+0x28>
|
||||
1228: 00161613 slli a2,a2,0x1
|
||||
122c: 00169693 slli a3,a3,0x1
|
||||
1230: feb66ae3 bltu a2,a1,1224 <__udivsi3+0x18>
|
||||
1234: 00000513 li a0,0
|
||||
1238: 00c5e663 bltu a1,a2,1244 <__udivsi3+0x38>
|
||||
123c: 40c585b3 sub a1,a1,a2
|
||||
1240: 00d56533 or a0,a0,a3
|
||||
1244: 0016d693 srli a3,a3,0x1
|
||||
1248: 00165613 srli a2,a2,0x1
|
||||
124c: fe0696e3 bnez a3,1238 <__udivsi3+0x2c>
|
||||
1250: 00008067 ret
|
||||
|
||||
00001254 <__umodsi3>:
|
||||
1254: 00008293 mv t0,ra
|
||||
1258: fb5ff0ef jal ra,120c <__udivsi3>
|
||||
125c: 00058513 mv a0,a1
|
||||
1260: 00028067 jr t0
|
||||
1264: 40a00533 neg a0,a0
|
||||
1268: 0005d863 bgez a1,1278 <__umodsi3+0x24>
|
||||
126c: 40b005b3 neg a1,a1
|
||||
1270: f9dff06f j 120c <__udivsi3>
|
||||
1274: 40b005b3 neg a1,a1
|
||||
1278: 00008293 mv t0,ra
|
||||
127c: f91ff0ef jal ra,120c <__udivsi3>
|
||||
1280: 40a00533 neg a0,a0
|
||||
1284: 00028067 jr t0
|
||||
|
||||
00001288 <__modsi3>:
|
||||
1288: 00008293 mv t0,ra
|
||||
128c: 0005ca63 bltz a1,12a0 <__modsi3+0x18>
|
||||
1290: 00054c63 bltz a0,12a8 <__modsi3+0x20>
|
||||
1294: f79ff0ef jal ra,120c <__udivsi3>
|
||||
1298: 00058513 mv a0,a1
|
||||
129c: 00028067 jr t0
|
||||
12a0: 40b005b3 neg a1,a1
|
||||
12a4: fe0558e3 bgez a0,1294 <__modsi3+0xc>
|
||||
12a8: 40a00533 neg a0,a0
|
||||
12ac: f61ff0ef jal ra,120c <__udivsi3>
|
||||
12b0: 40b00533 neg a0,a1
|
||||
12b4: 00028067 jr t0
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
000012b8 <Mod>:
|
||||
12b8: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
000012bc <b>:
|
||||
...
|
||||
|
||||
000012e4 <j>:
|
||||
12e4: 0000 unimp
|
||||
...
|
||||
|
||||
000012e8 <i>:
|
||||
12e8: 0000 unimp
|
||||
...
|
||||
|
||||
000012ec <a>:
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
0000139c <judgeResult>:
|
||||
139c: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 1204 addi s1,sp,288
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 1204 addi s1,sp,288
|
||||
12: 0000 unimp
|
||||
14: 12b8 addi a4,sp,360
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 1204 addi s1,sp,288
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
6
test/testcases/naive.c
Normal file
6
test/testcases/naive.c
Normal file
@ -0,0 +1,6 @@
|
||||
#include "io.inc"
|
||||
|
||||
int main() {
|
||||
printInt(177);
|
||||
return judgeResult; // 94
|
||||
}
|
13
test/testcases/naive.data
Normal file
13
test/testcases/naive.data
Normal file
@ -0,0 +1,13 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 00 04 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 C7 06 33 45 F5 00 13 05 D5 0A
|
||||
23 26 A7 06 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 C7 06 B3 C7 D7 00 93 87 97 20
|
||||
23 26 F7 06 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FF 23 26 11 00 13 05 10 0B
|
||||
EF F0 1F FB B7 17 00 00 03 A5 C7 06 83 20 C1 00
|
||||
13 01 01 01 67 80 00 00
|
||||
@00001068
|
||||
FD 00 00 00
|
70
test/testcases/naive.dump
Normal file
70
test/testcases/naive.dump
Normal file
@ -0,0 +1,70 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 040010ef jal ra,1044 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 06c72783 lw a5,108(a4) # 106c <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 06a72623 sw a0,108(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 06c72683 lw a3,108(a4) # 106c <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 06f72623 sw a5,108(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <main>:
|
||||
1044: ff010113 addi sp,sp,-16 # 1fff0 <__heap_start+0x1dff0>
|
||||
1048: 00112623 sw ra,12(sp)
|
||||
104c: 0b100513 li a0,177
|
||||
1050: fb1ff0ef jal ra,1000 <printInt>
|
||||
1054: 000017b7 lui a5,0x1
|
||||
1058: 06c7a503 lw a0,108(a5) # 106c <__bss_end>
|
||||
105c: 00c12083 lw ra,12(sp)
|
||||
1060: 01010113 addi sp,sp,16
|
||||
1064: 00008067 ret
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
00001068 <Mod>:
|
||||
1068: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
0000106c <judgeResult>:
|
||||
106c: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
33
test/testcases/pi.c
Normal file
33
test/testcases/pi.c
Normal file
@ -0,0 +1,33 @@
|
||||
#include "io.inc"
|
||||
int f[2801];
|
||||
int main() {
|
||||
int a = 10000;
|
||||
int b = 0;
|
||||
int c = 2800;
|
||||
int d = 0;
|
||||
int e = 0;
|
||||
int g = 0;
|
||||
|
||||
for (; b - c != 0;)
|
||||
f[b++] = a / 5;
|
||||
for (;; e = d % a) {
|
||||
d = 0;
|
||||
g = c * 2;
|
||||
if (g == 0)
|
||||
break;
|
||||
|
||||
for (b = c;; d = d * b) {
|
||||
d = d + f[b] * a;
|
||||
f[b] = d % --g;
|
||||
d = d / g--;
|
||||
if (--b == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
c = c - 14;
|
||||
printInt(e + d / a);
|
||||
}
|
||||
|
||||
printStr("\n");
|
||||
return judgeResult % Mod; // 137
|
||||
}
|
52
test/testcases/pi.data
Normal file
52
test/testcases/pi.data
Normal file
@ -0,0 +1,52 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 00 04 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 47 00 00 83 27 C7 E8 33 45 F5 00 13 05 D5 0A
|
||||
23 26 A7 E8 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 47 00 00 83 26 C7 E8 B3 C7 D7 00 93 87 97 20
|
||||
23 26 F7 E8 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FD 23 26 11 02 23 24 81 02
|
||||
23 22 91 02 23 20 21 03 23 2E 31 01 23 2C 41 01
|
||||
23 2A 51 01 23 28 61 01 23 26 71 01 23 24 81 01
|
||||
23 22 91 01 B7 17 00 00 93 87 87 2C 37 37 00 00
|
||||
13 07 07 BC 33 87 E7 00 93 06 00 7D 23 A0 D7 00
|
||||
93 87 47 00 E3 9C E7 FE B7 4A 00 00 93 8A 4A E8
|
||||
37 1A 00 00 13 0B FA AE 13 0A FA 5D 13 0C 00 00
|
||||
B7 2B 00 00 93 8B 0B 71 93 0C F0 FF 83 A7 4A 00
|
||||
13 94 27 00 33 04 F4 00 13 14 34 00 33 04 F4 40
|
||||
13 14 44 00 33 04 F4 00 13 14 44 00 93 05 0A 00
|
||||
13 05 04 00 EF 00 C0 1A 23 A2 AA 00 93 05 0A 00
|
||||
13 05 04 00 EF 00 80 11 13 04 05 00 93 09 0B 00
|
||||
13 09 EA FF 93 84 0A 00 93 85 09 00 13 05 04 00
|
||||
EF 00 80 0D 83 A7 04 00 13 94 27 00 33 04 F4 00
|
||||
13 14 34 00 33 04 F4 40 13 14 44 00 33 04 F4 00
|
||||
13 14 44 00 33 04 A4 00 93 05 09 00 13 05 04 00
|
||||
EF 00 00 15 23 A0 A4 00 93 05 09 00 13 05 04 00
|
||||
EF 00 C0 0B 13 04 05 00 93 89 F9 FF 93 84 C4 FF
|
||||
13 09 E9 FF E3 92 09 FA 93 85 0B 00 EF 00 00 0A
|
||||
33 05 85 01 EF F0 DF E8 93 85 0B 00 13 05 04 00
|
||||
EF 00 00 11 13 0C 05 00 13 0A 4A FE 13 0B 2B FF
|
||||
93 8A 8A FC E3 14 9A F3 37 15 00 00 13 05 05 2C
|
||||
EF F0 9F E7 93 05 D0 0F B7 47 00 00 03 A5 C7 E8
|
||||
EF 00 00 0E 83 20 C1 02 03 24 81 02 83 24 41 02
|
||||
03 29 01 02 83 29 C1 01 03 2A 81 01 83 2A 41 01
|
||||
03 2B 01 01 83 2B C1 00 03 2C 81 00 83 2C 41 00
|
||||
13 01 01 03 67 80 00 00 13 06 05 00 13 05 00 00
|
||||
93 F6 15 00 63 84 06 00 33 05 C5 00 93 D5 15 00
|
||||
13 16 16 00 E3 96 05 FE 67 80 00 00 63 40 05 06
|
||||
63 C6 05 06 13 86 05 00 93 05 05 00 13 05 F0 FF
|
||||
63 0C 06 02 93 06 10 00 63 7A B6 00 63 58 C0 00
|
||||
13 16 16 00 93 96 16 00 E3 6A B6 FE 13 05 00 00
|
||||
63 E6 C5 00 B3 85 C5 40 33 65 D5 00 93 D6 16 00
|
||||
13 56 16 00 E3 96 06 FE 67 80 00 00 93 82 00 00
|
||||
EF F0 5F FB 13 85 05 00 67 80 02 00 33 05 A0 40
|
||||
63 D8 05 00 B3 05 B0 40 6F F0 DF F9 B3 05 B0 40
|
||||
93 82 00 00 EF F0 1F F9 33 05 A0 40 67 80 02 00
|
||||
93 82 00 00 63 CA 05 00 63 4C 05 00 EF F0 9F F7
|
||||
13 85 05 00 67 80 02 00 B3 05 B0 40 E3 58 05 FE
|
||||
33 05 A0 40 EF F0 1F F6 33 05 B0 40 67 80 02 00
|
||||
@000012C0
|
||||
0A 00 00 00
|
||||
@000012C4
|
||||
FD 00 00 00
|
594
test/testcases/pi.dump
Normal file
594
test/testcases/pi.dump
Normal file
@ -0,0 +1,594 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 040010ef jal ra,1044 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2c004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00004737 lui a4,0x4
|
||||
1004: e8c72783 lw a5,-372(a4) # 3e8c <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: e8a72623 sw a0,-372(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00004737 lui a4,0x4
|
||||
1024: e8c72683 lw a3,-372(a4) # 3e8c <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: e8f72623 sw a5,-372(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <main>:
|
||||
1044: fd010113 addi sp,sp,-48 # 1ffd0 <__heap_start+0x1bfd0>
|
||||
1048: 02112623 sw ra,44(sp)
|
||||
104c: 02812423 sw s0,40(sp)
|
||||
1050: 02912223 sw s1,36(sp)
|
||||
1054: 03212023 sw s2,32(sp)
|
||||
1058: 01312e23 sw s3,28(sp)
|
||||
105c: 01412c23 sw s4,24(sp)
|
||||
1060: 01512a23 sw s5,20(sp)
|
||||
1064: 01612823 sw s6,16(sp)
|
||||
1068: 01712623 sw s7,12(sp)
|
||||
106c: 01812423 sw s8,8(sp)
|
||||
1070: 01912223 sw s9,4(sp)
|
||||
1074: 000017b7 lui a5,0x1
|
||||
1078: 2c878793 addi a5,a5,712 # 12c8 <__bss_start>
|
||||
107c: 00003737 lui a4,0x3
|
||||
1080: bc070713 addi a4,a4,-1088 # 2bc0 <__bss_start+0x18f8>
|
||||
1084: 00e78733 add a4,a5,a4
|
||||
1088: 7d000693 li a3,2000
|
||||
108c: 00d7a023 sw a3,0(a5)
|
||||
1090: 00478793 addi a5,a5,4
|
||||
1094: fee79ce3 bne a5,a4,108c <main+0x48>
|
||||
1098: 00004ab7 lui s5,0x4
|
||||
109c: e84a8a93 addi s5,s5,-380 # 3e84 <__bss_start+0x2bbc>
|
||||
10a0: 00001a37 lui s4,0x1
|
||||
10a4: aefa0b13 addi s6,s4,-1297 # aef <printInt-0x511>
|
||||
10a8: 5dfa0a13 addi s4,s4,1503
|
||||
10ac: 00000c13 li s8,0
|
||||
10b0: 00002bb7 lui s7,0x2
|
||||
10b4: 710b8b93 addi s7,s7,1808 # 2710 <__bss_start+0x1448>
|
||||
10b8: fff00c93 li s9,-1
|
||||
10bc: 004aa783 lw a5,4(s5)
|
||||
10c0: 00279413 slli s0,a5,0x2
|
||||
10c4: 00f40433 add s0,s0,a5
|
||||
10c8: 00341413 slli s0,s0,0x3
|
||||
10cc: 40f40433 sub s0,s0,a5
|
||||
10d0: 00441413 slli s0,s0,0x4
|
||||
10d4: 00f40433 add s0,s0,a5
|
||||
10d8: 00441413 slli s0,s0,0x4
|
||||
10dc: 000a0593 mv a1,s4
|
||||
10e0: 00040513 mv a0,s0
|
||||
10e4: 1ac000ef jal ra,1290 <__modsi3>
|
||||
10e8: 00aaa223 sw a0,4(s5)
|
||||
10ec: 000a0593 mv a1,s4
|
||||
10f0: 00040513 mv a0,s0
|
||||
10f4: 118000ef jal ra,120c <__divsi3>
|
||||
10f8: 00050413 mv s0,a0
|
||||
10fc: 000b0993 mv s3,s6
|
||||
1100: ffea0913 addi s2,s4,-2
|
||||
1104: 000a8493 mv s1,s5
|
||||
1108: 00098593 mv a1,s3
|
||||
110c: 00040513 mv a0,s0
|
||||
1110: 0d8000ef jal ra,11e8 <__mulsi3>
|
||||
1114: 0004a783 lw a5,0(s1)
|
||||
1118: 00279413 slli s0,a5,0x2
|
||||
111c: 00f40433 add s0,s0,a5
|
||||
1120: 00341413 slli s0,s0,0x3
|
||||
1124: 40f40433 sub s0,s0,a5
|
||||
1128: 00441413 slli s0,s0,0x4
|
||||
112c: 00f40433 add s0,s0,a5
|
||||
1130: 00441413 slli s0,s0,0x4
|
||||
1134: 00a40433 add s0,s0,a0
|
||||
1138: 00090593 mv a1,s2
|
||||
113c: 00040513 mv a0,s0
|
||||
1140: 150000ef jal ra,1290 <__modsi3>
|
||||
1144: 00a4a023 sw a0,0(s1)
|
||||
1148: 00090593 mv a1,s2
|
||||
114c: 00040513 mv a0,s0
|
||||
1150: 0bc000ef jal ra,120c <__divsi3>
|
||||
1154: 00050413 mv s0,a0
|
||||
1158: fff98993 addi s3,s3,-1
|
||||
115c: ffc48493 addi s1,s1,-4
|
||||
1160: ffe90913 addi s2,s2,-2
|
||||
1164: fa0992e3 bnez s3,1108 <main+0xc4>
|
||||
1168: 000b8593 mv a1,s7
|
||||
116c: 0a0000ef jal ra,120c <__divsi3>
|
||||
1170: 01850533 add a0,a0,s8
|
||||
1174: e8dff0ef jal ra,1000 <printInt>
|
||||
1178: 000b8593 mv a1,s7
|
||||
117c: 00040513 mv a0,s0
|
||||
1180: 110000ef jal ra,1290 <__modsi3>
|
||||
1184: 00050c13 mv s8,a0
|
||||
1188: fe4a0a13 addi s4,s4,-28
|
||||
118c: ff2b0b13 addi s6,s6,-14
|
||||
1190: fc8a8a93 addi s5,s5,-56
|
||||
1194: f39a14e3 bne s4,s9,10bc <main+0x78>
|
||||
1198: 00001537 lui a0,0x1
|
||||
119c: 2c050513 addi a0,a0,704 # 12c0 <__modsi3+0x30>
|
||||
11a0: e79ff0ef jal ra,1018 <printStr>
|
||||
11a4: 0fd00593 li a1,253
|
||||
11a8: 000047b7 lui a5,0x4
|
||||
11ac: e8c7a503 lw a0,-372(a5) # 3e8c <__bss_end>
|
||||
11b0: 0e0000ef jal ra,1290 <__modsi3>
|
||||
11b4: 02c12083 lw ra,44(sp)
|
||||
11b8: 02812403 lw s0,40(sp)
|
||||
11bc: 02412483 lw s1,36(sp)
|
||||
11c0: 02012903 lw s2,32(sp)
|
||||
11c4: 01c12983 lw s3,28(sp)
|
||||
11c8: 01812a03 lw s4,24(sp)
|
||||
11cc: 01412a83 lw s5,20(sp)
|
||||
11d0: 01012b03 lw s6,16(sp)
|
||||
11d4: 00c12b83 lw s7,12(sp)
|
||||
11d8: 00812c03 lw s8,8(sp)
|
||||
11dc: 00412c83 lw s9,4(sp)
|
||||
11e0: 03010113 addi sp,sp,48
|
||||
11e4: 00008067 ret
|
||||
|
||||
000011e8 <__mulsi3>:
|
||||
11e8: 00050613 mv a2,a0
|
||||
11ec: 00000513 li a0,0
|
||||
11f0: 0015f693 andi a3,a1,1
|
||||
11f4: 00068463 beqz a3,11fc <__mulsi3+0x14>
|
||||
11f8: 00c50533 add a0,a0,a2
|
||||
11fc: 0015d593 srli a1,a1,0x1
|
||||
1200: 00161613 slli a2,a2,0x1
|
||||
1204: fe0596e3 bnez a1,11f0 <__mulsi3+0x8>
|
||||
1208: 00008067 ret
|
||||
|
||||
0000120c <__divsi3>:
|
||||
120c: 06054063 bltz a0,126c <__umodsi3+0x10>
|
||||
1210: 0605c663 bltz a1,127c <__umodsi3+0x20>
|
||||
|
||||
00001214 <__udivsi3>:
|
||||
1214: 00058613 mv a2,a1
|
||||
1218: 00050593 mv a1,a0
|
||||
121c: fff00513 li a0,-1
|
||||
1220: 02060c63 beqz a2,1258 <__udivsi3+0x44>
|
||||
1224: 00100693 li a3,1
|
||||
1228: 00b67a63 bgeu a2,a1,123c <__udivsi3+0x28>
|
||||
122c: 00c05863 blez a2,123c <__udivsi3+0x28>
|
||||
1230: 00161613 slli a2,a2,0x1
|
||||
1234: 00169693 slli a3,a3,0x1
|
||||
1238: feb66ae3 bltu a2,a1,122c <__udivsi3+0x18>
|
||||
123c: 00000513 li a0,0
|
||||
1240: 00c5e663 bltu a1,a2,124c <__udivsi3+0x38>
|
||||
1244: 40c585b3 sub a1,a1,a2
|
||||
1248: 00d56533 or a0,a0,a3
|
||||
124c: 0016d693 srli a3,a3,0x1
|
||||
1250: 00165613 srli a2,a2,0x1
|
||||
1254: fe0696e3 bnez a3,1240 <__udivsi3+0x2c>
|
||||
1258: 00008067 ret
|
||||
|
||||
0000125c <__umodsi3>:
|
||||
125c: 00008293 mv t0,ra
|
||||
1260: fb5ff0ef jal ra,1214 <__udivsi3>
|
||||
1264: 00058513 mv a0,a1
|
||||
1268: 00028067 jr t0
|
||||
126c: 40a00533 neg a0,a0
|
||||
1270: 0005d863 bgez a1,1280 <__umodsi3+0x24>
|
||||
1274: 40b005b3 neg a1,a1
|
||||
1278: f9dff06f j 1214 <__udivsi3>
|
||||
127c: 40b005b3 neg a1,a1
|
||||
1280: 00008293 mv t0,ra
|
||||
1284: f91ff0ef jal ra,1214 <__udivsi3>
|
||||
1288: 40a00533 neg a0,a0
|
||||
128c: 00028067 jr t0
|
||||
|
||||
00001290 <__modsi3>:
|
||||
1290: 00008293 mv t0,ra
|
||||
1294: 0005ca63 bltz a1,12a8 <__modsi3+0x18>
|
||||
1298: 00054c63 bltz a0,12b0 <__modsi3+0x20>
|
||||
129c: f79ff0ef jal ra,1214 <__udivsi3>
|
||||
12a0: 00058513 mv a0,a1
|
||||
12a4: 00028067 jr t0
|
||||
12a8: 40b005b3 neg a1,a1
|
||||
12ac: fe0558e3 bgez a0,129c <__modsi3+0xc>
|
||||
12b0: 40a00533 neg a0,a0
|
||||
12b4: f61ff0ef jal ra,1214 <__udivsi3>
|
||||
12b8: 40b00533 neg a0,a1
|
||||
12bc: 00028067 jr t0
|
||||
|
||||
Disassembly of section .rodata.str1.4:
|
||||
|
||||
000012c0 <.rodata.str1.4>:
|
||||
12c0: 000a c.slli zero,0x2
|
||||
...
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
000012c4 <Mod>:
|
||||
12c4: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
000012c8 <f>:
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
00003e8c <judgeResult>:
|
||||
3e8c: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 008e slli ra,ra,0x3
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0048 addi a0,sp,4
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x626ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6d00 flw fs0,24(a0)
|
||||
46: 6c75 lui s8,0x1d
|
||||
48: 6964 flw fs1,84(a0)
|
||||
4a: 00532e33 slt t3,t1,t0
|
||||
4e: 0001 nop
|
||||
50: 0000 unimp
|
||||
52: 0500 addi s0,sp,640
|
||||
54: e802 fsw ft0,16(sp)
|
||||
56: 0011 c.nop 4
|
||||
58: 0300 addi s0,sp,384
|
||||
5a: 0124 addi s1,sp,136
|
||||
5c: 04090103 lb sp,64(s2)
|
||||
60: 0100 addi s0,sp,128
|
||||
62: 04090203 lb tp,64(s2)
|
||||
66: 0100 addi s0,sp,128
|
||||
68: 04090103 lb sp,64(s2)
|
||||
6c: 0100 addi s0,sp,128
|
||||
6e: 04090103 lb sp,64(s2)
|
||||
72: 0100 addi s0,sp,128
|
||||
74: 04090203 lb tp,64(s2)
|
||||
78: 0100 addi s0,sp,128
|
||||
7a: 04090103 lb sp,64(s2)
|
||||
7e: 0100 addi s0,sp,128
|
||||
80: 04090103 lb sp,64(s2)
|
||||
84: 0100 addi s0,sp,128
|
||||
86: 04090103 lb sp,64(s2)
|
||||
8a: 0100 addi s0,sp,128
|
||||
8c: 0409 addi s0,s0,2
|
||||
8e: 0000 unimp
|
||||
90: 0101 addi sp,sp,0
|
||||
92: 0164 addi s1,sp,140
|
||||
94: 0000 unimp
|
||||
96: 0002 c.slli64 zero
|
||||
98: 0045 c.nop 17
|
||||
9a: 0000 unimp
|
||||
9c: 0101 addi sp,sp,0
|
||||
9e: 000d0efb 0xd0efb
|
||||
a2: 0101 addi sp,sp,0
|
||||
a4: 0101 addi sp,sp,0
|
||||
a6: 0000 unimp
|
||||
a8: 0100 addi s0,sp,128
|
||||
aa: 0000 unimp
|
||||
ac: 2e01 jal 3bc <printInt-0xc44>
|
||||
ae: 2f2e fld ft10,200(sp)
|
||||
b0: 2e2e fld ft8,200(sp)
|
||||
b2: 2f2e2e2f 0x2f2e2e2f
|
||||
b6: 2f2e fld ft10,200(sp)
|
||||
b8: 6972 flw fs2,28(sp)
|
||||
ba: 2d766373 csrrsi t1,0x2d7,12
|
||||
be: 2f636367 0x2f636367
|
||||
c2: 696c flw fa1,84(a0)
|
||||
c4: 6762 flw fa4,24(sp)
|
||||
c6: 632f6363 bltu t5,s2,6ec <printInt-0x914>
|
||||
ca: 69666e6f jal t3,66760 <__heap_start+0x62760>
|
||||
ce: 69722f67 0x69722f67
|
||||
d2: 00766373 csrrsi t1,0x7,12
|
||||
d6: 6400 flw fs0,8(s0)
|
||||
d8: 7669 lui a2,0xffffa
|
||||
da: 532e lw t1,232(sp)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 0000 unimp
|
||||
e0: 0000 unimp
|
||||
e2: 0205 addi tp,tp,1
|
||||
e4: 120c addi a1,sp,288
|
||||
e6: 0000 unimp
|
||||
e8: 0100c403 lbu s0,16(ra)
|
||||
ec: 04090103 lb sp,64(s2)
|
||||
f0: 0100 addi s0,sp,128
|
||||
f2: 04090403 lb s0,64(s2)
|
||||
f6: 0100 addi s0,sp,128
|
||||
f8: 04090103 lb sp,64(s2)
|
||||
fc: 0100 addi s0,sp,128
|
||||
fe: 04090103 lb sp,64(s2)
|
||||
102: 0100 addi s0,sp,128
|
||||
104: 04090103 lb sp,64(s2)
|
||||
108: 0100 addi s0,sp,128
|
||||
10a: 04090103 lb sp,64(s2)
|
||||
10e: 0100 addi s0,sp,128
|
||||
110: 04090103 lb sp,64(s2)
|
||||
114: 0100 addi s0,sp,128
|
||||
116: 04090203 lb tp,64(s2)
|
||||
11a: 0100 addi s0,sp,128
|
||||
11c: 04090103 lb sp,64(s2)
|
||||
120: 0100 addi s0,sp,128
|
||||
122: 04090103 lb sp,64(s2)
|
||||
126: 0100 addi s0,sp,128
|
||||
128: 04090103 lb sp,64(s2)
|
||||
12c: 0100 addi s0,sp,128
|
||||
12e: 04090203 lb tp,64(s2)
|
||||
132: 0100 addi s0,sp,128
|
||||
134: 04090203 lb tp,64(s2)
|
||||
138: 0100 addi s0,sp,128
|
||||
13a: 04090103 lb sp,64(s2)
|
||||
13e: 0100 addi s0,sp,128
|
||||
140: 04090103 lb sp,64(s2)
|
||||
144: 0100 addi s0,sp,128
|
||||
146: 04090203 lb tp,64(s2)
|
||||
14a: 0100 addi s0,sp,128
|
||||
14c: 04090103 lb sp,64(s2)
|
||||
150: 0100 addi s0,sp,128
|
||||
152: 04090103 lb sp,64(s2)
|
||||
156: 0100 addi s0,sp,128
|
||||
158: 04090203 lb tp,64(s2)
|
||||
15c: 0100 addi s0,sp,128
|
||||
15e: 04090503 lb a0,64(s2)
|
||||
162: 0100 addi s0,sp,128
|
||||
164: 04090103 lb sp,64(s2)
|
||||
168: 0100 addi s0,sp,128
|
||||
16a: 04090103 lb sp,64(s2)
|
||||
16e: 0100 addi s0,sp,128
|
||||
170: 04090103 lb sp,64(s2)
|
||||
174: 0100 addi s0,sp,128
|
||||
176: 04090503 lb a0,64(s2)
|
||||
17a: 0100 addi s0,sp,128
|
||||
17c: 04090103 lb sp,64(s2)
|
||||
180: 0100 addi s0,sp,128
|
||||
182: 04090103 lb sp,64(s2)
|
||||
186: 0100 addi s0,sp,128
|
||||
188: 04090103 lb sp,64(s2)
|
||||
18c: 0100 addi s0,sp,128
|
||||
18e: 04090203 lb tp,64(s2)
|
||||
192: 0100 addi s0,sp,128
|
||||
194: 04090203 lb tp,64(s2)
|
||||
198: 0100 addi s0,sp,128
|
||||
19a: 04090103 lb sp,64(s2)
|
||||
19e: 0100 addi s0,sp,128
|
||||
1a0: 04090103 lb sp,64(s2)
|
||||
1a4: 0100 addi s0,sp,128
|
||||
1a6: 04090103 lb sp,64(s2)
|
||||
1aa: 0100 addi s0,sp,128
|
||||
1ac: 04090403 lb s0,64(s2)
|
||||
1b0: 0100 addi s0,sp,128
|
||||
1b2: 04090103 lb sp,64(s2)
|
||||
1b6: 0100 addi s0,sp,128
|
||||
1b8: 04090103 lb sp,64(s2)
|
||||
1bc: 0100 addi s0,sp,128
|
||||
1be: 04090203 lb tp,64(s2)
|
||||
1c2: 0100 addi s0,sp,128
|
||||
1c4: 04090103 lb sp,64(s2)
|
||||
1c8: 0100 addi s0,sp,128
|
||||
1ca: 04090103 lb sp,64(s2)
|
||||
1ce: 0100 addi s0,sp,128
|
||||
1d0: 04090203 lb tp,64(s2)
|
||||
1d4: 0100 addi s0,sp,128
|
||||
1d6: 04090103 lb sp,64(s2)
|
||||
1da: 0100 addi s0,sp,128
|
||||
1dc: 04090203 lb tp,64(s2)
|
||||
1e0: 0100 addi s0,sp,128
|
||||
1e2: 04090103 lb sp,64(s2)
|
||||
1e6: 0100 addi s0,sp,128
|
||||
1e8: 04090103 lb sp,64(s2)
|
||||
1ec: 0100 addi s0,sp,128
|
||||
1ee: 04090103 lb sp,64(s2)
|
||||
1f2: 0100 addi s0,sp,128
|
||||
1f4: 0409 addi s0,s0,2
|
||||
1f6: 0000 unimp
|
||||
1f8: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 11e8 addi a0,sp,236
|
||||
12: 0000 unimp
|
||||
14: 120c addi a1,sp,288
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0032 c.slli zero,0xc
|
||||
1e: 0000 unimp
|
||||
20: 0000008b 0x8b
|
||||
24: 8001 c.srli64 s0
|
||||
26: 0022 c.slli zero,0x8
|
||||
28: 0000 unimp
|
||||
2a: 0002 c.slli64 zero
|
||||
2c: 0014 0x14
|
||||
2e: 0000 unimp
|
||||
30: 0104 addi s1,sp,128
|
||||
32: 0092 slli ra,ra,0x4
|
||||
34: 0000 unimp
|
||||
36: 120c addi a1,sp,288
|
||||
38: 0000 unimp
|
||||
3a: 12c0 addi s0,sp,356
|
||||
3c: 0000 unimp
|
||||
3e: 0099 addi ra,ra,6
|
||||
40: 0000 unimp
|
||||
42: 0032 c.slli zero,0xc
|
||||
44: 0000 unimp
|
||||
46: 0000008b 0x8b
|
||||
4a: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
12: 0000 unimp
|
||||
14: 1101 addi sp,sp,-32
|
||||
16: 1000 addi s0,sp,32
|
||||
18: 1106 slli sp,sp,0x21
|
||||
1a: 1201 addi tp,tp,-32
|
||||
1c: 0301 addi t1,t1,0
|
||||
1e: 1b0e slli s6,s6,0x23
|
||||
20: 250e fld fa0,192(sp)
|
||||
22: 130e slli t1,t1,0x23
|
||||
24: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 11e8 addi a0,sp,236
|
||||
12: 0000 unimp
|
||||
14: 0024 addi s1,sp,8
|
||||
...
|
||||
1e: 0000 unimp
|
||||
20: 001c 0x1c
|
||||
22: 0000 unimp
|
||||
24: 0002 c.slli64 zero
|
||||
26: 0026 c.slli zero,0x9
|
||||
28: 0000 unimp
|
||||
2a: 0004 0x4
|
||||
2c: 0000 unimp
|
||||
2e: 0000 unimp
|
||||
30: 120c addi a1,sp,288
|
||||
32: 0000 unimp
|
||||
34: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 6d2f7663 bgeu t5,s2,6f2 <printInt-0x90e>
|
||||
2a: 6c75 lui s8,0x1d
|
||||
2c: 6964 flw fs1,84(a0)
|
||||
2e: 00532e33 slt t3,t1,t0
|
||||
32: 6d6f682f 0x6d6f682f
|
||||
36: 2f65 jal 7ee <printInt-0x812>
|
||||
38: 712d7577 0x712d7577
|
||||
3c: 6e69 lui t3,0x1a
|
||||
3e: 35312d67 0x35312d67
|
||||
42: 69722f37 lui t5,0x69722
|
||||
46: 2d766373 csrrsi t1,0x2d7,12
|
||||
4a: 2d756e67 0x2d756e67
|
||||
4e: 6f74 flw fa3,92(a4)
|
||||
50: 68636c6f jal s8,366d6 <__heap_start+0x326d6>
|
||||
54: 6961 lui s2,0x18
|
||||
56: 2f6e fld ft10,216(sp)
|
||||
58: 7562 flw fa0,56(sp)
|
||||
5a: 6c69 lui s8,0x1a
|
||||
5c: 2d64 fld fs1,216(a0)
|
||||
5e: 2d636367 0x2d636367
|
||||
62: 656e flw fa0,216(sp)
|
||||
64: 62696c77 0x62696c77
|
||||
68: 732d lui t1,0xfffeb
|
||||
6a: 6174 flw fa3,68(a0)
|
||||
6c: 2f326567 0x2f326567
|
||||
70: 6972 flw fs2,28(sp)
|
||||
72: 33766373 csrrsi t1,mhpmevent23,12
|
||||
76: 2d32 fld fs10,264(sp)
|
||||
78: 6e75 lui t3,0x1d
|
||||
7a: 776f6e6b 0x776f6e6b
|
||||
7e: 2d6e fld fs10,216(sp)
|
||||
80: 6c65 lui s8,0x19
|
||||
82: 2f66 fld ft10,88(sp)
|
||||
84: 696c flw fa1,84(a0)
|
||||
86: 6762 flw fa4,24(sp)
|
||||
88: 47006363 bltu zero,a6,4ee <printInt-0xb12>
|
||||
8c: 554e lw a0,240(sp)
|
||||
8e: 4120 lw s0,64(a0)
|
||||
90: 2e322053 0x2e322053
|
||||
94: 312e3133 0x312e3133
|
||||
98: 2e00 fld fs0,24(a2)
|
||||
9a: 2f2e fld ft10,200(sp)
|
||||
9c: 2e2e fld ft8,200(sp)
|
||||
9e: 2f2e2e2f 0x2f2e2e2f
|
||||
a2: 2f2e fld ft10,200(sp)
|
||||
a4: 6972 flw fs2,28(sp)
|
||||
a6: 2d766373 csrrsi t1,0x2d7,12
|
||||
aa: 2f636367 0x2f636367
|
||||
ae: 696c flw fa1,84(a0)
|
||||
b0: 6762 flw fa4,24(sp)
|
||||
b2: 632f6363 bltu t5,s2,6d8 <printInt-0x928>
|
||||
b6: 69666e6f jal t3,6674c <__heap_start+0x6274c>
|
||||
ba: 69722f67 0x69722f67
|
||||
be: 2f766373 csrrsi t1,0x2f7,12
|
||||
c2: 6964 flw fs1,84(a0)
|
||||
c4: 2e76 fld ft8,344(sp)
|
||||
c6: fadd.s ft0,ft0,ft0,rne
|
44
test/testcases/qsort.c
Normal file
44
test/testcases/qsort.c
Normal file
@ -0,0 +1,44 @@
|
||||
#include "io.inc"
|
||||
// Target: qsort
|
||||
// Possible optimization: Dead code elimination, common expression, strength
|
||||
// reduction REMARKS: nothing.
|
||||
|
||||
int a[10100];
|
||||
int n = 10000;
|
||||
|
||||
int qsrt(int l, int r) {
|
||||
int i = l;
|
||||
int j = r;
|
||||
int x = a[(l + r) / 2];
|
||||
while (i <= j) {
|
||||
while (a[i] < x)
|
||||
i++;
|
||||
while (a[j] > x)
|
||||
j--;
|
||||
if (i <= j) {
|
||||
int temp = a[i];
|
||||
a[i] = a[j];
|
||||
a[j] = temp;
|
||||
i++;
|
||||
j--;
|
||||
}
|
||||
}
|
||||
if (l < j)
|
||||
qsrt(l, j);
|
||||
if (i < r)
|
||||
qsrt(i, r);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int i;
|
||||
for (i = 1; i <= n; i++)
|
||||
a[i] = n + 1 - i;
|
||||
qsrt(1, n);
|
||||
for (i = 1; i <= n; i++) {
|
||||
printInt(a[i]);
|
||||
printStr(" ");
|
||||
}
|
||||
printStr("\n");
|
||||
return judgeResult % Mod; // 105
|
||||
}
|
55
test/testcases/qsort.data
Normal file
55
test/testcases/qsort.data
Normal file
@ -0,0 +1,55 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 80 15 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 B7 00 00 83 27 07 0B 33 45 F5 00 13 05 D5 0A
|
||||
23 28 A7 0A 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 B7 00 00 83 26 07 0B B3 C7 D7 00 93 87 97 20
|
||||
23 28 F7 0A 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FF 23 26 11 00 23 24 81 00
|
||||
23 22 91 00 93 84 05 00 37 17 00 00 B3 06 B5 00
|
||||
93 D7 F6 01 B3 87 D7 00 93 D7 17 40 93 97 27 00
|
||||
13 07 07 2E B3 07 F7 00 83 A6 07 00 13 04 05 00
|
||||
37 18 00 00 13 08 08 2E B7 08 00 40 93 88 F8 FF
|
||||
63 C0 85 06 93 17 24 00 B3 07 F8 00 03 A7 07 00
|
||||
93 07 14 00 93 97 27 00 B3 87 07 01 63 5E D7 06
|
||||
13 04 14 00 93 87 47 00 03 A7 C7 FF E3 4A D7 FE
|
||||
93 97 25 00 B3 07 F8 00 03 A6 07 00 63 D0 C6 02
|
||||
B3 87 15 01 93 97 27 00 B3 87 07 01 93 85 F5 FF
|
||||
93 87 C7 FF 03 A6 47 00 E3 CA C6 FE 63 D6 85 04
|
||||
63 40 B5 02 63 42 94 02 13 05 00 00 83 20 C1 00
|
||||
03 24 81 00 83 24 41 00 13 01 01 01 67 80 00 00
|
||||
EF F0 5F F3 6F F0 1F FE 93 85 04 00 13 05 04 00
|
||||
EF F0 5F F2 6F F0 5F FD 93 97 25 00 B3 07 F8 00
|
||||
03 A6 07 00 E3 CE C6 F8 93 17 24 00 B3 07 F8 00
|
||||
23 A0 C7 00 93 97 25 00 B3 07 F8 00 23 A0 E7 00
|
||||
13 04 14 00 93 85 F5 FF 6F F0 9F F3 13 01 01 FE
|
||||
23 2E 11 00 23 2C 81 00 23 2A 91 00 23 28 21 01
|
||||
23 26 31 01 B7 17 00 00 83 A5 C7 2D 63 50 B0 02
|
||||
93 87 05 00 37 17 00 00 13 07 47 2E 23 20 F7 00
|
||||
93 87 F7 FF 13 07 47 00 E3 9A 07 FE 13 05 10 00
|
||||
EF F0 5F EA B7 17 00 00 83 A7 C7 2D 63 5C F0 02
|
||||
37 14 00 00 13 04 44 2E 93 04 10 00 B7 19 00 00
|
||||
37 19 00 00 03 25 04 00 EF F0 9F E3 13 85 09 2D
|
||||
EF F0 9F E4 93 84 14 00 13 04 44 00 83 27 C9 2D
|
||||
E3 D2 97 FE 37 15 00 00 13 05 45 2D EF F0 DF E2
|
||||
93 05 D0 0F B7 B7 00 00 03 A5 07 0B EF 00 40 0A
|
||||
83 20 C1 01 03 24 81 01 83 24 41 01 03 29 01 01
|
||||
83 29 C1 00 13 01 01 02 67 80 00 00 63 40 05 06
|
||||
63 C6 05 06 13 86 05 00 93 05 05 00 13 05 F0 FF
|
||||
63 0C 06 02 93 06 10 00 63 7A B6 00 63 58 C0 00
|
||||
13 16 16 00 93 96 16 00 E3 6A B6 FE 13 05 00 00
|
||||
63 E6 C5 00 B3 85 C5 40 33 65 D5 00 93 D6 16 00
|
||||
13 56 16 00 E3 96 06 FE 67 80 00 00 93 82 00 00
|
||||
EF F0 5F FB 13 85 05 00 67 80 02 00 33 05 A0 40
|
||||
63 D8 05 00 B3 05 B0 40 6F F0 DF F9 B3 05 B0 40
|
||||
93 82 00 00 EF F0 1F F9 33 05 A0 40 67 80 02 00
|
||||
93 82 00 00 63 CA 05 00 63 4C 05 00 EF F0 9F F7
|
||||
13 85 05 00 67 80 02 00 B3 05 B0 40 E3 58 05 FE
|
||||
33 05 A0 40 EF F0 1F F6 33 05 B0 40 67 80 02 00
|
||||
@000012D0
|
||||
20 00 00 00 0A 00 00 00
|
||||
@000012D8
|
||||
FD 00 00 00
|
||||
@000012DC
|
||||
10 27 00 00
|
494
test/testcases/qsort.dump
Normal file
494
test/testcases/qsort.dump
Normal file
@ -0,0 +1,494 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 158010ef jal ra,115c <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x24004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 0000b737 lui a4,0xb
|
||||
1004: 0b072783 lw a5,176(a4) # b0b0 <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 0aa72823 sw a0,176(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 0000b737 lui a4,0xb
|
||||
1024: 0b072683 lw a3,176(a4) # b0b0 <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 0af72823 sw a5,176(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <qsrt>:
|
||||
1044: ff010113 addi sp,sp,-16 # 1fff0 <__heap_start+0x13ff0>
|
||||
1048: 00112623 sw ra,12(sp)
|
||||
104c: 00812423 sw s0,8(sp)
|
||||
1050: 00912223 sw s1,4(sp)
|
||||
1054: 00058493 mv s1,a1
|
||||
1058: 00001737 lui a4,0x1
|
||||
105c: 00b506b3 add a3,a0,a1
|
||||
1060: 01f6d793 srli a5,a3,0x1f
|
||||
1064: 00d787b3 add a5,a5,a3
|
||||
1068: 4017d793 srai a5,a5,0x1
|
||||
106c: 00279793 slli a5,a5,0x2
|
||||
1070: 2e070713 addi a4,a4,736 # 12e0 <a>
|
||||
1074: 00f707b3 add a5,a4,a5
|
||||
1078: 0007a683 lw a3,0(a5)
|
||||
107c: 00050413 mv s0,a0
|
||||
1080: 00001837 lui a6,0x1
|
||||
1084: 2e080813 addi a6,a6,736 # 12e0 <a>
|
||||
1088: 400008b7 lui a7,0x40000
|
||||
108c: fff88893 addi a7,a7,-1 # 3fffffff <__heap_start+0x3fff3fff>
|
||||
1090: 0685c063 blt a1,s0,10f0 <qsrt+0xac>
|
||||
1094: 00241793 slli a5,s0,0x2
|
||||
1098: 00f807b3 add a5,a6,a5
|
||||
109c: 0007a703 lw a4,0(a5)
|
||||
10a0: 00140793 addi a5,s0,1
|
||||
10a4: 00279793 slli a5,a5,0x2
|
||||
10a8: 010787b3 add a5,a5,a6
|
||||
10ac: 06d75e63 bge a4,a3,1128 <qsrt+0xe4>
|
||||
10b0: 00140413 addi s0,s0,1
|
||||
10b4: 00478793 addi a5,a5,4
|
||||
10b8: ffc7a703 lw a4,-4(a5)
|
||||
10bc: fed74ae3 blt a4,a3,10b0 <qsrt+0x6c>
|
||||
10c0: 00259793 slli a5,a1,0x2
|
||||
10c4: 00f807b3 add a5,a6,a5
|
||||
10c8: 0007a603 lw a2,0(a5)
|
||||
10cc: 02c6d063 bge a3,a2,10ec <qsrt+0xa8>
|
||||
10d0: 011587b3 add a5,a1,a7
|
||||
10d4: 00279793 slli a5,a5,0x2
|
||||
10d8: 010787b3 add a5,a5,a6
|
||||
10dc: fff58593 addi a1,a1,-1
|
||||
10e0: ffc78793 addi a5,a5,-4
|
||||
10e4: 0047a603 lw a2,4(a5)
|
||||
10e8: fec6cae3 blt a3,a2,10dc <qsrt+0x98>
|
||||
10ec: 0485d663 bge a1,s0,1138 <qsrt+0xf4>
|
||||
10f0: 02b54063 blt a0,a1,1110 <qsrt+0xcc>
|
||||
10f4: 02944263 blt s0,s1,1118 <qsrt+0xd4>
|
||||
10f8: 00000513 li a0,0
|
||||
10fc: 00c12083 lw ra,12(sp)
|
||||
1100: 00812403 lw s0,8(sp)
|
||||
1104: 00412483 lw s1,4(sp)
|
||||
1108: 01010113 addi sp,sp,16
|
||||
110c: 00008067 ret
|
||||
1110: f35ff0ef jal ra,1044 <qsrt>
|
||||
1114: fe1ff06f j 10f4 <qsrt+0xb0>
|
||||
1118: 00048593 mv a1,s1
|
||||
111c: 00040513 mv a0,s0
|
||||
1120: f25ff0ef jal ra,1044 <qsrt>
|
||||
1124: fd5ff06f j 10f8 <qsrt+0xb4>
|
||||
1128: 00259793 slli a5,a1,0x2
|
||||
112c: 00f807b3 add a5,a6,a5
|
||||
1130: 0007a603 lw a2,0(a5)
|
||||
1134: f8c6cee3 blt a3,a2,10d0 <qsrt+0x8c>
|
||||
1138: 00241793 slli a5,s0,0x2
|
||||
113c: 00f807b3 add a5,a6,a5
|
||||
1140: 00c7a023 sw a2,0(a5)
|
||||
1144: 00259793 slli a5,a1,0x2
|
||||
1148: 00f807b3 add a5,a6,a5
|
||||
114c: 00e7a023 sw a4,0(a5)
|
||||
1150: 00140413 addi s0,s0,1
|
||||
1154: fff58593 addi a1,a1,-1
|
||||
1158: f39ff06f j 1090 <qsrt+0x4c>
|
||||
|
||||
0000115c <main>:
|
||||
115c: fe010113 addi sp,sp,-32
|
||||
1160: 00112e23 sw ra,28(sp)
|
||||
1164: 00812c23 sw s0,24(sp)
|
||||
1168: 00912a23 sw s1,20(sp)
|
||||
116c: 01212823 sw s2,16(sp)
|
||||
1170: 01312623 sw s3,12(sp)
|
||||
1174: 000017b7 lui a5,0x1
|
||||
1178: 2dc7a583 lw a1,732(a5) # 12dc <__bss_start>
|
||||
117c: 02b05063 blez a1,119c <main+0x40>
|
||||
1180: 00058793 mv a5,a1
|
||||
1184: 00001737 lui a4,0x1
|
||||
1188: 2e470713 addi a4,a4,740 # 12e4 <a+0x4>
|
||||
118c: 00f72023 sw a5,0(a4)
|
||||
1190: fff78793 addi a5,a5,-1
|
||||
1194: 00470713 addi a4,a4,4
|
||||
1198: fe079ae3 bnez a5,118c <main+0x30>
|
||||
119c: 00100513 li a0,1
|
||||
11a0: ea5ff0ef jal ra,1044 <qsrt>
|
||||
11a4: 000017b7 lui a5,0x1
|
||||
11a8: 2dc7a783 lw a5,732(a5) # 12dc <__bss_start>
|
||||
11ac: 02f05c63 blez a5,11e4 <main+0x88>
|
||||
11b0: 00001437 lui s0,0x1
|
||||
11b4: 2e440413 addi s0,s0,740 # 12e4 <a+0x4>
|
||||
11b8: 00100493 li s1,1
|
||||
11bc: 000019b7 lui s3,0x1
|
||||
11c0: 00001937 lui s2,0x1
|
||||
11c4: 00042503 lw a0,0(s0)
|
||||
11c8: e39ff0ef jal ra,1000 <printInt>
|
||||
11cc: 2d098513 addi a0,s3,720 # 12d0 <__modsi3+0x30>
|
||||
11d0: e49ff0ef jal ra,1018 <printStr>
|
||||
11d4: 00148493 addi s1,s1,1
|
||||
11d8: 00440413 addi s0,s0,4
|
||||
11dc: 2dc92783 lw a5,732(s2) # 12dc <__bss_start>
|
||||
11e0: fe97d2e3 bge a5,s1,11c4 <main+0x68>
|
||||
11e4: 00001537 lui a0,0x1
|
||||
11e8: 2d450513 addi a0,a0,724 # 12d4 <__modsi3+0x34>
|
||||
11ec: e2dff0ef jal ra,1018 <printStr>
|
||||
11f0: 0fd00593 li a1,253
|
||||
11f4: 0000b7b7 lui a5,0xb
|
||||
11f8: 0b07a503 lw a0,176(a5) # b0b0 <__bss_end>
|
||||
11fc: 0a4000ef jal ra,12a0 <__modsi3>
|
||||
1200: 01c12083 lw ra,28(sp)
|
||||
1204: 01812403 lw s0,24(sp)
|
||||
1208: 01412483 lw s1,20(sp)
|
||||
120c: 01012903 lw s2,16(sp)
|
||||
1210: 00c12983 lw s3,12(sp)
|
||||
1214: 02010113 addi sp,sp,32
|
||||
1218: 00008067 ret
|
||||
|
||||
0000121c <__divsi3>:
|
||||
121c: 06054063 bltz a0,127c <__umodsi3+0x10>
|
||||
1220: 0605c663 bltz a1,128c <__umodsi3+0x20>
|
||||
|
||||
00001224 <__udivsi3>:
|
||||
1224: 00058613 mv a2,a1
|
||||
1228: 00050593 mv a1,a0
|
||||
122c: fff00513 li a0,-1
|
||||
1230: 02060c63 beqz a2,1268 <__udivsi3+0x44>
|
||||
1234: 00100693 li a3,1
|
||||
1238: 00b67a63 bgeu a2,a1,124c <__udivsi3+0x28>
|
||||
123c: 00c05863 blez a2,124c <__udivsi3+0x28>
|
||||
1240: 00161613 slli a2,a2,0x1
|
||||
1244: 00169693 slli a3,a3,0x1
|
||||
1248: feb66ae3 bltu a2,a1,123c <__udivsi3+0x18>
|
||||
124c: 00000513 li a0,0
|
||||
1250: 00c5e663 bltu a1,a2,125c <__udivsi3+0x38>
|
||||
1254: 40c585b3 sub a1,a1,a2
|
||||
1258: 00d56533 or a0,a0,a3
|
||||
125c: 0016d693 srli a3,a3,0x1
|
||||
1260: 00165613 srli a2,a2,0x1
|
||||
1264: fe0696e3 bnez a3,1250 <__udivsi3+0x2c>
|
||||
1268: 00008067 ret
|
||||
|
||||
0000126c <__umodsi3>:
|
||||
126c: 00008293 mv t0,ra
|
||||
1270: fb5ff0ef jal ra,1224 <__udivsi3>
|
||||
1274: 00058513 mv a0,a1
|
||||
1278: 00028067 jr t0
|
||||
127c: 40a00533 neg a0,a0
|
||||
1280: 0005d863 bgez a1,1290 <__umodsi3+0x24>
|
||||
1284: 40b005b3 neg a1,a1
|
||||
1288: f9dff06f j 1224 <__udivsi3>
|
||||
128c: 40b005b3 neg a1,a1
|
||||
1290: 00008293 mv t0,ra
|
||||
1294: f91ff0ef jal ra,1224 <__udivsi3>
|
||||
1298: 40a00533 neg a0,a0
|
||||
129c: 00028067 jr t0
|
||||
|
||||
000012a0 <__modsi3>:
|
||||
12a0: 00008293 mv t0,ra
|
||||
12a4: 0005ca63 bltz a1,12b8 <__modsi3+0x18>
|
||||
12a8: 00054c63 bltz a0,12c0 <__modsi3+0x20>
|
||||
12ac: f79ff0ef jal ra,1224 <__udivsi3>
|
||||
12b0: 00058513 mv a0,a1
|
||||
12b4: 00028067 jr t0
|
||||
12b8: 40b005b3 neg a1,a1
|
||||
12bc: fe0558e3 bgez a0,12ac <__modsi3+0xc>
|
||||
12c0: 40a00533 neg a0,a0
|
||||
12c4: f61ff0ef jal ra,1224 <__udivsi3>
|
||||
12c8: 40b00533 neg a0,a1
|
||||
12cc: 00028067 jr t0
|
||||
|
||||
Disassembly of section .rodata.str1.4:
|
||||
|
||||
000012d0 <.rodata.str1.4>:
|
||||
12d0: 0020 addi s0,sp,8
|
||||
12d2: 0000 unimp
|
||||
12d4: 000a c.slli zero,0x2
|
||||
...
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
000012d8 <Mod>:
|
||||
12d8: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .sdata:
|
||||
|
||||
000012dc <n>:
|
||||
12dc: 2710 fld fa2,8(a4)
|
||||
...
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
000012e0 <a>:
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
0000b0b0 <judgeResult>:
|
||||
b0b0: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x5a6ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 121c addi a5,sp,288
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 121c addi a5,sp,288
|
||||
12: 0000 unimp
|
||||
14: 12d0 addi a2,sp,356
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 121c addi a5,sp,288
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffff3c66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffff3f6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xba682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffff3a12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
42
test/testcases/queens.c
Normal file
42
test/testcases/queens.c
Normal file
@ -0,0 +1,42 @@
|
||||
#include "io.inc"
|
||||
|
||||
int N = 8;
|
||||
int row[8];
|
||||
int col[8];
|
||||
int d[2][16];
|
||||
|
||||
void printBoard() {
|
||||
int i;
|
||||
int j;
|
||||
for (i = 0; i < N; i++) {
|
||||
for (j = 0; j < N; j++) {
|
||||
if (col[i] == j)
|
||||
printStr(" O");
|
||||
else
|
||||
printStr(" .");
|
||||
}
|
||||
printStr("\n");
|
||||
}
|
||||
printStr("\n");
|
||||
}
|
||||
|
||||
void search(int c) {
|
||||
if (c == N) {
|
||||
printBoard();
|
||||
} else {
|
||||
int r;
|
||||
for (r = 0; r < N; r++) {
|
||||
if (row[r] == 0 && d[0][r + c] == 0 && d[1][r + N - 1 - c] == 0) {
|
||||
row[r] = d[0][r + c] = d[1][r + N - 1 - c] = 1;
|
||||
col[c] = r;
|
||||
search(c + 1);
|
||||
row[r] = d[0][r + c] = d[1][r + N - 1 - c] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
search(0);
|
||||
return judgeResult % Mod; // 171
|
||||
}
|
63
test/testcases/queens.data
Normal file
63
test/testcases/queens.data
Normal file
@ -0,0 +1,63 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 40 26 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 C7 41 33 45 F5 00 13 05 D5 0A
|
||||
23 2E A7 40 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 C7 41 B3 C7 D7 00 93 87 97 20
|
||||
23 2E F7 40 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FE 23 2E 11 00 23 2C 81 00
|
||||
23 2A 91 00 23 28 21 01 23 26 31 01 23 24 41 01
|
||||
23 22 51 01 23 20 61 01 B7 17 00 00 83 A7 87 35
|
||||
63 5A F0 06 B7 14 00 00 93 84 C4 35 13 0A 00 00
|
||||
37 19 00 00 B7 19 00 00 B7 1A 00 00 37 1B 00 00
|
||||
6F 00 40 04 13 85 C9 34 EF F0 1F F8 13 04 14 00
|
||||
83 27 89 35 63 5C F4 00 83 A7 04 00 E3 94 87 FE
|
||||
13 85 8A 34 EF F0 5F F6 6F F0 5F FE 13 05 0B 35
|
||||
EF F0 9F F5 13 0A 1A 00 93 84 44 00 83 27 89 35
|
||||
63 5A FA 00 83 27 89 35 13 04 00 00 E3 46 F0 FC
|
||||
6F F0 DF FD 37 15 00 00 13 05 05 35 EF F0 DF F2
|
||||
83 20 C1 01 03 24 81 01 83 24 41 01 03 29 01 01
|
||||
83 29 C1 00 03 2A 81 00 83 2A 41 00 03 2B 01 00
|
||||
13 01 01 02 67 80 00 00 13 01 01 FD 23 26 11 02
|
||||
23 24 81 02 23 22 91 02 23 20 21 03 23 2E 31 01
|
||||
23 2C 41 01 23 2A 51 01 23 28 61 01 23 26 71 01
|
||||
23 24 81 01 23 22 91 01 B7 17 00 00 83 A7 87 35
|
||||
63 86 A7 04 93 09 05 00 63 54 F0 04 37 14 00 00
|
||||
13 04 C4 3F 93 14 25 00 37 17 00 00 13 07 C7 37
|
||||
B3 84 E4 00 13 09 00 00 B7 1B 00 00 93 8B CB 37
|
||||
B7 1A 00 00 93 8A CA 35 13 17 25 00 B3 8A EA 00
|
||||
93 0C 15 00 37 1A 00 00 6F 00 00 05 EF F0 9F EA
|
||||
83 20 C1 02 03 24 81 02 83 24 41 02 03 29 01 02
|
||||
83 29 C1 01 03 2A 81 01 83 2A 41 01 03 2B 01 01
|
||||
83 2B C1 00 03 2C 81 00 83 2C 41 00 13 01 01 03
|
||||
67 80 00 00 13 09 19 00 83 27 8A 35 13 04 44 00
|
||||
93 84 44 00 E3 5E F9 FA 03 27 04 00 E3 14 07 FE
|
||||
03 A7 04 00 E3 10 07 FE B3 87 27 01 93 87 F7 FF
|
||||
B3 87 37 41 13 87 07 01 13 17 27 00 33 87 EB 00
|
||||
03 27 07 00 E3 10 07 FC 93 87 07 01 93 97 27 00
|
||||
B3 87 FB 00 13 07 10 00 23 A0 E7 00 23 A0 E4 00
|
||||
23 20 E4 00 23 A0 2A 01 13 85 0C 00 EF F0 DF ED
|
||||
83 27 8A 35 B3 07 F9 00 B3 87 37 41 93 87 F7 00
|
||||
93 97 27 00 B3 87 FB 00 23 A0 07 00 23 A0 04 00
|
||||
23 20 04 00 6F F0 1F F7 13 01 01 FF 23 26 11 00
|
||||
13 05 00 00 EF F0 5F EA 93 05 D0 0F B7 17 00 00
|
||||
03 A5 C7 41 EF 00 40 09 83 20 C1 00 13 01 01 01
|
||||
67 80 00 00 63 40 05 06 63 C6 05 06 13 86 05 00
|
||||
93 05 05 00 13 05 F0 FF 63 0C 06 02 93 06 10 00
|
||||
63 7A B6 00 63 58 C0 00 13 16 16 00 93 96 16 00
|
||||
E3 6A B6 FE 13 05 00 00 63 E6 C5 00 B3 85 C5 40
|
||||
33 65 D5 00 93 D6 16 00 13 56 16 00 E3 96 06 FE
|
||||
67 80 00 00 93 82 00 00 EF F0 5F FB 13 85 05 00
|
||||
67 80 02 00 33 05 A0 40 63 D8 05 00 B3 05 B0 40
|
||||
6F F0 DF F9 B3 05 B0 40 93 82 00 00 EF F0 1F F9
|
||||
33 05 A0 40 67 80 02 00 93 82 00 00 63 CA 05 00
|
||||
63 4C 05 00 EF F0 9F F7 13 85 05 00 67 80 02 00
|
||||
B3 05 B0 40 E3 58 05 FE 33 05 A0 40 EF F0 1F F6
|
||||
33 05 B0 40 67 80 02 00
|
||||
@00001348
|
||||
20 4F 00 00 20 2E 00 00 0A 00 00 00
|
||||
@00001354
|
||||
FD 00 00 00
|
||||
@00001358
|
||||
08 00 00 00
|
534
test/testcases/queens.dump
Normal file
534
test/testcases/queens.dump
Normal file
@ -0,0 +1,534 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 264010ef jal ra,1268 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 41c72783 lw a5,1052(a4) # 141c <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 40a72e23 sw a0,1052(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 41c72683 lw a3,1052(a4) # 141c <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 40f72e23 sw a5,1052(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <printBoard>:
|
||||
1044: fe010113 addi sp,sp,-32 # 1ffe0 <__heap_start+0x1dfe0>
|
||||
1048: 00112e23 sw ra,28(sp)
|
||||
104c: 00812c23 sw s0,24(sp)
|
||||
1050: 00912a23 sw s1,20(sp)
|
||||
1054: 01212823 sw s2,16(sp)
|
||||
1058: 01312623 sw s3,12(sp)
|
||||
105c: 01412423 sw s4,8(sp)
|
||||
1060: 01512223 sw s5,4(sp)
|
||||
1064: 01612023 sw s6,0(sp)
|
||||
1068: 000017b7 lui a5,0x1
|
||||
106c: 3587a783 lw a5,856(a5) # 1358 <__bss_start>
|
||||
1070: 06f05a63 blez a5,10e4 <printBoard+0xa0>
|
||||
1074: 000014b7 lui s1,0x1
|
||||
1078: 35c48493 addi s1,s1,860 # 135c <col>
|
||||
107c: 00000a13 li s4,0
|
||||
1080: 00001937 lui s2,0x1
|
||||
1084: 000019b7 lui s3,0x1
|
||||
1088: 00001ab7 lui s5,0x1
|
||||
108c: 00001b37 lui s6,0x1
|
||||
1090: 0440006f j 10d4 <printBoard+0x90>
|
||||
1094: 34c98513 addi a0,s3,844 # 134c <__modsi3+0x34>
|
||||
1098: f81ff0ef jal ra,1018 <printStr>
|
||||
109c: 00140413 addi s0,s0,1
|
||||
10a0: 35892783 lw a5,856(s2) # 1358 <__bss_start>
|
||||
10a4: 00f45c63 bge s0,a5,10bc <printBoard+0x78>
|
||||
10a8: 0004a783 lw a5,0(s1)
|
||||
10ac: fe8794e3 bne a5,s0,1094 <printBoard+0x50>
|
||||
10b0: 348a8513 addi a0,s5,840 # 1348 <__modsi3+0x30>
|
||||
10b4: f65ff0ef jal ra,1018 <printStr>
|
||||
10b8: fe5ff06f j 109c <printBoard+0x58>
|
||||
10bc: 350b0513 addi a0,s6,848 # 1350 <__modsi3+0x38>
|
||||
10c0: f59ff0ef jal ra,1018 <printStr>
|
||||
10c4: 001a0a13 addi s4,s4,1
|
||||
10c8: 00448493 addi s1,s1,4
|
||||
10cc: 35892783 lw a5,856(s2)
|
||||
10d0: 00fa5a63 bge s4,a5,10e4 <printBoard+0xa0>
|
||||
10d4: 35892783 lw a5,856(s2)
|
||||
10d8: 00000413 li s0,0
|
||||
10dc: fcf046e3 bgtz a5,10a8 <printBoard+0x64>
|
||||
10e0: fddff06f j 10bc <printBoard+0x78>
|
||||
10e4: 00001537 lui a0,0x1
|
||||
10e8: 35050513 addi a0,a0,848 # 1350 <__modsi3+0x38>
|
||||
10ec: f2dff0ef jal ra,1018 <printStr>
|
||||
10f0: 01c12083 lw ra,28(sp)
|
||||
10f4: 01812403 lw s0,24(sp)
|
||||
10f8: 01412483 lw s1,20(sp)
|
||||
10fc: 01012903 lw s2,16(sp)
|
||||
1100: 00c12983 lw s3,12(sp)
|
||||
1104: 00812a03 lw s4,8(sp)
|
||||
1108: 00412a83 lw s5,4(sp)
|
||||
110c: 00012b03 lw s6,0(sp)
|
||||
1110: 02010113 addi sp,sp,32
|
||||
1114: 00008067 ret
|
||||
|
||||
00001118 <search>:
|
||||
1118: fd010113 addi sp,sp,-48
|
||||
111c: 02112623 sw ra,44(sp)
|
||||
1120: 02812423 sw s0,40(sp)
|
||||
1124: 02912223 sw s1,36(sp)
|
||||
1128: 03212023 sw s2,32(sp)
|
||||
112c: 01312e23 sw s3,28(sp)
|
||||
1130: 01412c23 sw s4,24(sp)
|
||||
1134: 01512a23 sw s5,20(sp)
|
||||
1138: 01612823 sw s6,16(sp)
|
||||
113c: 01712623 sw s7,12(sp)
|
||||
1140: 01812423 sw s8,8(sp)
|
||||
1144: 01912223 sw s9,4(sp)
|
||||
1148: 000017b7 lui a5,0x1
|
||||
114c: 3587a783 lw a5,856(a5) # 1358 <__bss_start>
|
||||
1150: 04a78663 beq a5,a0,119c <search+0x84>
|
||||
1154: 00050993 mv s3,a0
|
||||
1158: 04f05463 blez a5,11a0 <search+0x88>
|
||||
115c: 00001437 lui s0,0x1
|
||||
1160: 3fc40413 addi s0,s0,1020 # 13fc <row>
|
||||
1164: 00251493 slli s1,a0,0x2
|
||||
1168: 00001737 lui a4,0x1
|
||||
116c: 37c70713 addi a4,a4,892 # 137c <d>
|
||||
1170: 00e484b3 add s1,s1,a4
|
||||
1174: 00000913 li s2,0
|
||||
1178: 00001bb7 lui s7,0x1
|
||||
117c: 37cb8b93 addi s7,s7,892 # 137c <d>
|
||||
1180: 00001ab7 lui s5,0x1
|
||||
1184: 35ca8a93 addi s5,s5,860 # 135c <col>
|
||||
1188: 00251713 slli a4,a0,0x2
|
||||
118c: 00ea8ab3 add s5,s5,a4
|
||||
1190: 00150c93 addi s9,a0,1
|
||||
1194: 00001a37 lui s4,0x1
|
||||
1198: 0500006f j 11e8 <search+0xd0>
|
||||
119c: ea9ff0ef jal ra,1044 <printBoard>
|
||||
11a0: 02c12083 lw ra,44(sp)
|
||||
11a4: 02812403 lw s0,40(sp)
|
||||
11a8: 02412483 lw s1,36(sp)
|
||||
11ac: 02012903 lw s2,32(sp)
|
||||
11b0: 01c12983 lw s3,28(sp)
|
||||
11b4: 01812a03 lw s4,24(sp)
|
||||
11b8: 01412a83 lw s5,20(sp)
|
||||
11bc: 01012b03 lw s6,16(sp)
|
||||
11c0: 00c12b83 lw s7,12(sp)
|
||||
11c4: 00812c03 lw s8,8(sp)
|
||||
11c8: 00412c83 lw s9,4(sp)
|
||||
11cc: 03010113 addi sp,sp,48
|
||||
11d0: 00008067 ret
|
||||
11d4: 00190913 addi s2,s2,1
|
||||
11d8: 358a2783 lw a5,856(s4) # 1358 <__bss_start>
|
||||
11dc: 00440413 addi s0,s0,4
|
||||
11e0: 00448493 addi s1,s1,4
|
||||
11e4: faf95ee3 bge s2,a5,11a0 <search+0x88>
|
||||
11e8: 00042703 lw a4,0(s0)
|
||||
11ec: fe0714e3 bnez a4,11d4 <search+0xbc>
|
||||
11f0: 0004a703 lw a4,0(s1)
|
||||
11f4: fe0710e3 bnez a4,11d4 <search+0xbc>
|
||||
11f8: 012787b3 add a5,a5,s2
|
||||
11fc: fff78793 addi a5,a5,-1
|
||||
1200: 413787b3 sub a5,a5,s3
|
||||
1204: 01078713 addi a4,a5,16
|
||||
1208: 00271713 slli a4,a4,0x2
|
||||
120c: 00eb8733 add a4,s7,a4
|
||||
1210: 00072703 lw a4,0(a4)
|
||||
1214: fc0710e3 bnez a4,11d4 <search+0xbc>
|
||||
1218: 01078793 addi a5,a5,16
|
||||
121c: 00279793 slli a5,a5,0x2
|
||||
1220: 00fb87b3 add a5,s7,a5
|
||||
1224: 00100713 li a4,1
|
||||
1228: 00e7a023 sw a4,0(a5)
|
||||
122c: 00e4a023 sw a4,0(s1)
|
||||
1230: 00e42023 sw a4,0(s0)
|
||||
1234: 012aa023 sw s2,0(s5)
|
||||
1238: 000c8513 mv a0,s9
|
||||
123c: eddff0ef jal ra,1118 <search>
|
||||
1240: 358a2783 lw a5,856(s4)
|
||||
1244: 00f907b3 add a5,s2,a5
|
||||
1248: 413787b3 sub a5,a5,s3
|
||||
124c: 00f78793 addi a5,a5,15
|
||||
1250: 00279793 slli a5,a5,0x2
|
||||
1254: 00fb87b3 add a5,s7,a5
|
||||
1258: 0007a023 sw zero,0(a5)
|
||||
125c: 0004a023 sw zero,0(s1)
|
||||
1260: 00042023 sw zero,0(s0)
|
||||
1264: f71ff06f j 11d4 <search+0xbc>
|
||||
|
||||
00001268 <main>:
|
||||
1268: ff010113 addi sp,sp,-16
|
||||
126c: 00112623 sw ra,12(sp)
|
||||
1270: 00000513 li a0,0
|
||||
1274: ea5ff0ef jal ra,1118 <search>
|
||||
1278: 0fd00593 li a1,253
|
||||
127c: 000017b7 lui a5,0x1
|
||||
1280: 41c7a503 lw a0,1052(a5) # 141c <__bss_end>
|
||||
1284: 094000ef jal ra,1318 <__modsi3>
|
||||
1288: 00c12083 lw ra,12(sp)
|
||||
128c: 01010113 addi sp,sp,16
|
||||
1290: 00008067 ret
|
||||
|
||||
00001294 <__divsi3>:
|
||||
1294: 06054063 bltz a0,12f4 <__umodsi3+0x10>
|
||||
1298: 0605c663 bltz a1,1304 <__umodsi3+0x20>
|
||||
|
||||
0000129c <__udivsi3>:
|
||||
129c: 00058613 mv a2,a1
|
||||
12a0: 00050593 mv a1,a0
|
||||
12a4: fff00513 li a0,-1
|
||||
12a8: 02060c63 beqz a2,12e0 <__udivsi3+0x44>
|
||||
12ac: 00100693 li a3,1
|
||||
12b0: 00b67a63 bgeu a2,a1,12c4 <__udivsi3+0x28>
|
||||
12b4: 00c05863 blez a2,12c4 <__udivsi3+0x28>
|
||||
12b8: 00161613 slli a2,a2,0x1
|
||||
12bc: 00169693 slli a3,a3,0x1
|
||||
12c0: feb66ae3 bltu a2,a1,12b4 <__udivsi3+0x18>
|
||||
12c4: 00000513 li a0,0
|
||||
12c8: 00c5e663 bltu a1,a2,12d4 <__udivsi3+0x38>
|
||||
12cc: 40c585b3 sub a1,a1,a2
|
||||
12d0: 00d56533 or a0,a0,a3
|
||||
12d4: 0016d693 srli a3,a3,0x1
|
||||
12d8: 00165613 srli a2,a2,0x1
|
||||
12dc: fe0696e3 bnez a3,12c8 <__udivsi3+0x2c>
|
||||
12e0: 00008067 ret
|
||||
|
||||
000012e4 <__umodsi3>:
|
||||
12e4: 00008293 mv t0,ra
|
||||
12e8: fb5ff0ef jal ra,129c <__udivsi3>
|
||||
12ec: 00058513 mv a0,a1
|
||||
12f0: 00028067 jr t0
|
||||
12f4: 40a00533 neg a0,a0
|
||||
12f8: 0005d863 bgez a1,1308 <__umodsi3+0x24>
|
||||
12fc: 40b005b3 neg a1,a1
|
||||
1300: f9dff06f j 129c <__udivsi3>
|
||||
1304: 40b005b3 neg a1,a1
|
||||
1308: 00008293 mv t0,ra
|
||||
130c: f91ff0ef jal ra,129c <__udivsi3>
|
||||
1310: 40a00533 neg a0,a0
|
||||
1314: 00028067 jr t0
|
||||
|
||||
00001318 <__modsi3>:
|
||||
1318: 00008293 mv t0,ra
|
||||
131c: 0005ca63 bltz a1,1330 <__modsi3+0x18>
|
||||
1320: 00054c63 bltz a0,1338 <__modsi3+0x20>
|
||||
1324: f79ff0ef jal ra,129c <__udivsi3>
|
||||
1328: 00058513 mv a0,a1
|
||||
132c: 00028067 jr t0
|
||||
1330: 40b005b3 neg a1,a1
|
||||
1334: fe0558e3 bgez a0,1324 <__modsi3+0xc>
|
||||
1338: 40a00533 neg a0,a0
|
||||
133c: f61ff0ef jal ra,129c <__udivsi3>
|
||||
1340: 40b00533 neg a0,a1
|
||||
1344: 00028067 jr t0
|
||||
|
||||
Disassembly of section .rodata.str1.4:
|
||||
|
||||
00001348 <.rodata.str1.4>:
|
||||
1348: 4f20 lw s0,88(a4)
|
||||
134a: 0000 unimp
|
||||
134c: 2e20 fld fs0,88(a2)
|
||||
134e: 0000 unimp
|
||||
1350: 000a c.slli zero,0x2
|
||||
...
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
00001354 <Mod>:
|
||||
1354: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .sdata:
|
||||
|
||||
00001358 <N>:
|
||||
1358: 0008 0x8
|
||||
...
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
0000135c <col>:
|
||||
...
|
||||
|
||||
0000137c <d>:
|
||||
...
|
||||
|
||||
000013fc <row>:
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
0000141c <judgeResult>:
|
||||
141c: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 1294 addi a3,sp,352
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 1294 addi a3,sp,352
|
||||
12: 0000 unimp
|
||||
14: 1348 addi a0,sp,420
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 1294 addi a3,sp,352
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
52
test/testcases/statement_test.c
Normal file
52
test/testcases/statement_test.c
Normal file
@ -0,0 +1,52 @@
|
||||
#include "io.inc"
|
||||
//考察点:section 8 语句,包括if,while,for,break,continue,return等
|
||||
//算法:线性筛法求欧拉函数
|
||||
//样例输入:10
|
||||
//样例输出:
|
||||
// 1
|
||||
// 2
|
||||
// 2
|
||||
// 4
|
||||
// 2
|
||||
// 6
|
||||
// 4
|
||||
// 6
|
||||
// 4
|
||||
|
||||
int N;
|
||||
int M = 0;
|
||||
int check[20];
|
||||
|
||||
int main() {
|
||||
N = 10;
|
||||
int i = 0;
|
||||
while (i <= N)
|
||||
check[i++] = 1;
|
||||
int phi[15];
|
||||
int P[15];
|
||||
phi[1] = 1;
|
||||
for (i = 2;; ++i) {
|
||||
if (i > N)
|
||||
break;
|
||||
if (check[i]) {
|
||||
P[++M] = i;
|
||||
phi[i] = i - 1;
|
||||
}
|
||||
int k = i;
|
||||
int i;
|
||||
for (i = 1; i <= M && (k * P[i] <= N); i++) {
|
||||
int tmp = k * P[i];
|
||||
if (tmp > N)
|
||||
continue;
|
||||
check[tmp] = 0;
|
||||
if (k % P[i] == 0) {
|
||||
phi[tmp] = phi[k] * P[i];
|
||||
break;
|
||||
} else {
|
||||
phi[k * P[i]] = phi[k] * (P[i] - 1);
|
||||
}
|
||||
}
|
||||
printInt(phi[k]);
|
||||
}
|
||||
return judgeResult % Mod; // 50
|
||||
}
|
54
test/testcases/statement_test.data
Normal file
54
test/testcases/statement_test.data
Normal file
@ -0,0 +1,54 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 00 04 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 C7 35 33 45 F5 00 13 05 D5 0A
|
||||
23 2E A7 34 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 C7 35 B3 C7 D7 00 93 87 97 20
|
||||
23 2E F7 34 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 F4 23 2E 11 0A 23 2C 81 0A
|
||||
23 2A 91 0A 23 28 21 0B 23 26 31 0B 23 24 41 0B
|
||||
23 22 51 0B 23 20 61 0B 23 2E 71 09 23 2C 81 09
|
||||
23 2A 91 09 23 28 A1 09 23 26 B1 09 B7 17 00 00
|
||||
13 07 A0 00 23 A2 E7 30 B7 17 00 00 93 87 87 30
|
||||
93 86 C7 02 13 07 10 00 23 A0 E7 00 93 87 47 00
|
||||
E3 9C D7 FE 93 07 10 00 23 24 F1 04 B7 1C 00 00
|
||||
93 8C 0C 31 93 0A C1 04 13 0A 20 00 13 0B A0 00
|
||||
37 1D 00 00 37 1C 00 00 13 0C 8C 30 B7 1D 00 00
|
||||
6F 00 C0 03 13 14 24 00 93 07 01 08 33 84 87 00
|
||||
93 85 04 00 03 A5 0A 00 EF 00 00 14 23 22 A4 FC
|
||||
03 A5 0A 00 EF F0 DF F0 13 0A 1A 00 03 AB 4D 30
|
||||
93 8C 4C 00 93 8A 4A 00 63 4A 4B 0D 83 A7 0C 00
|
||||
63 84 07 02 83 27 8D 35 93 87 17 00 23 2C FD 34
|
||||
93 97 27 00 13 07 01 08 B3 07 F7 00 23 A4 47 F9
|
||||
93 07 FA FF 23 A0 FA 00 83 2B 8D 35 E3 5A 70 FB
|
||||
83 24 C1 00 93 05 0A 00 13 85 04 00 EF 00 C0 0D
|
||||
13 04 05 00 E3 4E AB F8 93 17 25 00 B3 07 FC 00
|
||||
23 A0 07 00 93 85 04 00 13 05 0A 00 EF 00 40 16
|
||||
93 09 01 01 13 09 10 00 E3 0E 05 F4 13 14 24 00
|
||||
93 07 01 08 33 84 87 00 93 85 F4 FF 03 A5 0A 00
|
||||
EF 00 80 09 23 22 A4 FC 13 09 19 00 E3 CA 2B F5
|
||||
83 A4 09 00 93 05 0A 00 13 85 04 00 EF 00 C0 07
|
||||
13 04 05 00 E3 4E AB F2 93 17 24 00 B3 07 FC 00
|
||||
23 A0 07 00 93 89 49 00 93 85 04 00 13 05 0A 00
|
||||
EF 00 00 10 E3 14 05 FA 6F F0 DF EF 93 05 D0 0F
|
||||
B7 17 00 00 03 A5 C7 35 EF 00 80 0E 83 20 C1 0B
|
||||
03 24 81 0B 83 24 41 0B 03 29 01 0B 83 29 C1 0A
|
||||
03 2A 81 0A 83 2A 41 0A 03 2B 01 0A 83 2B C1 09
|
||||
03 2C 81 09 83 2C 41 09 03 2D 01 09 83 2D C1 08
|
||||
13 01 01 0C 67 80 00 00 13 06 05 00 13 05 00 00
|
||||
93 F6 15 00 63 84 06 00 33 05 C5 00 93 D5 15 00
|
||||
13 16 16 00 E3 96 05 FE 67 80 00 00 63 40 05 06
|
||||
63 C6 05 06 13 86 05 00 93 05 05 00 13 05 F0 FF
|
||||
63 0C 06 02 93 06 10 00 63 7A B6 00 63 58 C0 00
|
||||
13 16 16 00 93 96 16 00 E3 6A B6 FE 13 05 00 00
|
||||
63 E6 C5 00 B3 85 C5 40 33 65 D5 00 93 D6 16 00
|
||||
13 56 16 00 E3 96 06 FE 67 80 00 00 93 82 00 00
|
||||
EF F0 5F FB 13 85 05 00 67 80 02 00 33 05 A0 40
|
||||
63 D8 05 00 B3 05 B0 40 6F F0 DF F9 B3 05 B0 40
|
||||
93 82 00 00 EF F0 1F F9 33 05 A0 40 67 80 02 00
|
||||
93 82 00 00 63 CA 05 00 63 4C 05 00 EF F0 9F F7
|
||||
13 85 05 00 67 80 02 00 B3 05 B0 40 E3 58 05 FE
|
||||
33 05 A0 40 EF F0 1F F6 33 05 B0 40 67 80 02 00
|
||||
@00001300
|
||||
FD 00 00 00
|
612
test/testcases/statement_test.dump
Normal file
612
test/testcases/statement_test.dump
Normal file
@ -0,0 +1,612 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 040010ef jal ra,1044 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 35c72783 lw a5,860(a4) # 135c <judgeResult>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 34a72e23 sw a0,860(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 35c72683 lw a3,860(a4) # 135c <judgeResult>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 34f72e23 sw a5,860(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <main>:
|
||||
1044: f4010113 addi sp,sp,-192 # 1ff40 <__heap_start+0x1df40>
|
||||
1048: 0a112e23 sw ra,188(sp)
|
||||
104c: 0a812c23 sw s0,184(sp)
|
||||
1050: 0a912a23 sw s1,180(sp)
|
||||
1054: 0b212823 sw s2,176(sp)
|
||||
1058: 0b312623 sw s3,172(sp)
|
||||
105c: 0b412423 sw s4,168(sp)
|
||||
1060: 0b512223 sw s5,164(sp)
|
||||
1064: 0b612023 sw s6,160(sp)
|
||||
1068: 09712e23 sw s7,156(sp)
|
||||
106c: 09812c23 sw s8,152(sp)
|
||||
1070: 09912a23 sw s9,148(sp)
|
||||
1074: 09a12823 sw s10,144(sp)
|
||||
1078: 09b12623 sw s11,140(sp)
|
||||
107c: 000017b7 lui a5,0x1
|
||||
1080: 00a00713 li a4,10
|
||||
1084: 30e7a223 sw a4,772(a5) # 1304 <__bss_start>
|
||||
1088: 000017b7 lui a5,0x1
|
||||
108c: 30878793 addi a5,a5,776 # 1308 <check>
|
||||
1090: 02c78693 addi a3,a5,44
|
||||
1094: 00100713 li a4,1
|
||||
1098: 00e7a023 sw a4,0(a5)
|
||||
109c: 00478793 addi a5,a5,4
|
||||
10a0: fed79ce3 bne a5,a3,1098 <main+0x54>
|
||||
10a4: 00100793 li a5,1
|
||||
10a8: 04f12423 sw a5,72(sp)
|
||||
10ac: 00001cb7 lui s9,0x1
|
||||
10b0: 310c8c93 addi s9,s9,784 # 1310 <check+0x8>
|
||||
10b4: 04c10a93 addi s5,sp,76
|
||||
10b8: 00200a13 li s4,2
|
||||
10bc: 00a00b13 li s6,10
|
||||
10c0: 00001d37 lui s10,0x1
|
||||
10c4: 00001c37 lui s8,0x1
|
||||
10c8: 308c0c13 addi s8,s8,776 # 1308 <check>
|
||||
10cc: 00001db7 lui s11,0x1
|
||||
10d0: 03c0006f j 110c <main+0xc8>
|
||||
10d4: 00241413 slli s0,s0,0x2
|
||||
10d8: 08010793 addi a5,sp,128
|
||||
10dc: 00878433 add s0,a5,s0
|
||||
10e0: 00048593 mv a1,s1
|
||||
10e4: 000aa503 lw a0,0(s5)
|
||||
10e8: 140000ef jal ra,1228 <__mulsi3>
|
||||
10ec: fca42223 sw a0,-60(s0)
|
||||
10f0: 000aa503 lw a0,0(s5)
|
||||
10f4: f0dff0ef jal ra,1000 <printInt>
|
||||
10f8: 001a0a13 addi s4,s4,1
|
||||
10fc: 304dab03 lw s6,772(s11) # 1304 <__bss_start>
|
||||
1100: 004c8c93 addi s9,s9,4
|
||||
1104: 004a8a93 addi s5,s5,4
|
||||
1108: 0d4b4a63 blt s6,s4,11dc <main+0x198>
|
||||
110c: 000ca783 lw a5,0(s9)
|
||||
1110: 02078463 beqz a5,1138 <main+0xf4>
|
||||
1114: 358d2783 lw a5,856(s10) # 1358 <__bss_end>
|
||||
1118: 00178793 addi a5,a5,1
|
||||
111c: 34fd2c23 sw a5,856(s10)
|
||||
1120: 00279793 slli a5,a5,0x2
|
||||
1124: 08010713 addi a4,sp,128
|
||||
1128: 00f707b3 add a5,a4,a5
|
||||
112c: f947a423 sw s4,-120(a5)
|
||||
1130: fffa0793 addi a5,s4,-1
|
||||
1134: 00faa023 sw a5,0(s5)
|
||||
1138: 358d2b83 lw s7,856(s10)
|
||||
113c: fb705ae3 blez s7,10f0 <main+0xac>
|
||||
1140: 00c12483 lw s1,12(sp)
|
||||
1144: 000a0593 mv a1,s4
|
||||
1148: 00048513 mv a0,s1
|
||||
114c: 0dc000ef jal ra,1228 <__mulsi3>
|
||||
1150: 00050413 mv s0,a0
|
||||
1154: f8ab4ee3 blt s6,a0,10f0 <main+0xac>
|
||||
1158: 00251793 slli a5,a0,0x2
|
||||
115c: 00fc07b3 add a5,s8,a5
|
||||
1160: 0007a023 sw zero,0(a5)
|
||||
1164: 00048593 mv a1,s1
|
||||
1168: 000a0513 mv a0,s4
|
||||
116c: 164000ef jal ra,12d0 <__modsi3>
|
||||
1170: 01010993 addi s3,sp,16
|
||||
1174: 00100913 li s2,1
|
||||
1178: f4050ee3 beqz a0,10d4 <main+0x90>
|
||||
117c: 00241413 slli s0,s0,0x2
|
||||
1180: 08010793 addi a5,sp,128
|
||||
1184: 00878433 add s0,a5,s0
|
||||
1188: fff48593 addi a1,s1,-1
|
||||
118c: 000aa503 lw a0,0(s5)
|
||||
1190: 098000ef jal ra,1228 <__mulsi3>
|
||||
1194: fca42223 sw a0,-60(s0)
|
||||
1198: 00190913 addi s2,s2,1
|
||||
119c: f52bcae3 blt s7,s2,10f0 <main+0xac>
|
||||
11a0: 0009a483 lw s1,0(s3)
|
||||
11a4: 000a0593 mv a1,s4
|
||||
11a8: 00048513 mv a0,s1
|
||||
11ac: 07c000ef jal ra,1228 <__mulsi3>
|
||||
11b0: 00050413 mv s0,a0
|
||||
11b4: f2ab4ee3 blt s6,a0,10f0 <main+0xac>
|
||||
11b8: 00241793 slli a5,s0,0x2
|
||||
11bc: 00fc07b3 add a5,s8,a5
|
||||
11c0: 0007a023 sw zero,0(a5)
|
||||
11c4: 00498993 addi s3,s3,4
|
||||
11c8: 00048593 mv a1,s1
|
||||
11cc: 000a0513 mv a0,s4
|
||||
11d0: 100000ef jal ra,12d0 <__modsi3>
|
||||
11d4: fa0514e3 bnez a0,117c <main+0x138>
|
||||
11d8: efdff06f j 10d4 <main+0x90>
|
||||
11dc: 0fd00593 li a1,253
|
||||
11e0: 000017b7 lui a5,0x1
|
||||
11e4: 35c7a503 lw a0,860(a5) # 135c <judgeResult>
|
||||
11e8: 0e8000ef jal ra,12d0 <__modsi3>
|
||||
11ec: 0bc12083 lw ra,188(sp)
|
||||
11f0: 0b812403 lw s0,184(sp)
|
||||
11f4: 0b412483 lw s1,180(sp)
|
||||
11f8: 0b012903 lw s2,176(sp)
|
||||
11fc: 0ac12983 lw s3,172(sp)
|
||||
1200: 0a812a03 lw s4,168(sp)
|
||||
1204: 0a412a83 lw s5,164(sp)
|
||||
1208: 0a012b03 lw s6,160(sp)
|
||||
120c: 09c12b83 lw s7,156(sp)
|
||||
1210: 09812c03 lw s8,152(sp)
|
||||
1214: 09412c83 lw s9,148(sp)
|
||||
1218: 09012d03 lw s10,144(sp)
|
||||
121c: 08c12d83 lw s11,140(sp)
|
||||
1220: 0c010113 addi sp,sp,192
|
||||
1224: 00008067 ret
|
||||
|
||||
00001228 <__mulsi3>:
|
||||
1228: 00050613 mv a2,a0
|
||||
122c: 00000513 li a0,0
|
||||
1230: 0015f693 andi a3,a1,1
|
||||
1234: 00068463 beqz a3,123c <__mulsi3+0x14>
|
||||
1238: 00c50533 add a0,a0,a2
|
||||
123c: 0015d593 srli a1,a1,0x1
|
||||
1240: 00161613 slli a2,a2,0x1
|
||||
1244: fe0596e3 bnez a1,1230 <__mulsi3+0x8>
|
||||
1248: 00008067 ret
|
||||
|
||||
0000124c <__divsi3>:
|
||||
124c: 06054063 bltz a0,12ac <__umodsi3+0x10>
|
||||
1250: 0605c663 bltz a1,12bc <__umodsi3+0x20>
|
||||
|
||||
00001254 <__udivsi3>:
|
||||
1254: 00058613 mv a2,a1
|
||||
1258: 00050593 mv a1,a0
|
||||
125c: fff00513 li a0,-1
|
||||
1260: 02060c63 beqz a2,1298 <__udivsi3+0x44>
|
||||
1264: 00100693 li a3,1
|
||||
1268: 00b67a63 bgeu a2,a1,127c <__udivsi3+0x28>
|
||||
126c: 00c05863 blez a2,127c <__udivsi3+0x28>
|
||||
1270: 00161613 slli a2,a2,0x1
|
||||
1274: 00169693 slli a3,a3,0x1
|
||||
1278: feb66ae3 bltu a2,a1,126c <__udivsi3+0x18>
|
||||
127c: 00000513 li a0,0
|
||||
1280: 00c5e663 bltu a1,a2,128c <__udivsi3+0x38>
|
||||
1284: 40c585b3 sub a1,a1,a2
|
||||
1288: 00d56533 or a0,a0,a3
|
||||
128c: 0016d693 srli a3,a3,0x1
|
||||
1290: 00165613 srli a2,a2,0x1
|
||||
1294: fe0696e3 bnez a3,1280 <__udivsi3+0x2c>
|
||||
1298: 00008067 ret
|
||||
|
||||
0000129c <__umodsi3>:
|
||||
129c: 00008293 mv t0,ra
|
||||
12a0: fb5ff0ef jal ra,1254 <__udivsi3>
|
||||
12a4: 00058513 mv a0,a1
|
||||
12a8: 00028067 jr t0
|
||||
12ac: 40a00533 neg a0,a0
|
||||
12b0: 0005d863 bgez a1,12c0 <__umodsi3+0x24>
|
||||
12b4: 40b005b3 neg a1,a1
|
||||
12b8: f9dff06f j 1254 <__udivsi3>
|
||||
12bc: 40b005b3 neg a1,a1
|
||||
12c0: 00008293 mv t0,ra
|
||||
12c4: f91ff0ef jal ra,1254 <__udivsi3>
|
||||
12c8: 40a00533 neg a0,a0
|
||||
12cc: 00028067 jr t0
|
||||
|
||||
000012d0 <__modsi3>:
|
||||
12d0: 00008293 mv t0,ra
|
||||
12d4: 0005ca63 bltz a1,12e8 <__modsi3+0x18>
|
||||
12d8: 00054c63 bltz a0,12f0 <__modsi3+0x20>
|
||||
12dc: f79ff0ef jal ra,1254 <__udivsi3>
|
||||
12e0: 00058513 mv a0,a1
|
||||
12e4: 00028067 jr t0
|
||||
12e8: 40b005b3 neg a1,a1
|
||||
12ec: fe0558e3 bgez a0,12dc <__modsi3+0xc>
|
||||
12f0: 40a00533 neg a0,a0
|
||||
12f4: f61ff0ef jal ra,1254 <__udivsi3>
|
||||
12f8: 40b00533 neg a0,a1
|
||||
12fc: 00028067 jr t0
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
00001300 <Mod>:
|
||||
1300: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
00001304 <N>:
|
||||
1304: 0000 unimp
|
||||
...
|
||||
|
||||
00001308 <check>:
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
00001358 <M>:
|
||||
1358: 0000 unimp
|
||||
...
|
||||
|
||||
0000135c <judgeResult>:
|
||||
135c: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 008e slli ra,ra,0x3
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0048 addi a0,sp,4
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6d00 flw fs0,24(a0)
|
||||
46: 6c75 lui s8,0x1d
|
||||
48: 6964 flw fs1,84(a0)
|
||||
4a: 00532e33 slt t3,t1,t0
|
||||
4e: 0001 nop
|
||||
50: 0000 unimp
|
||||
52: 0500 addi s0,sp,640
|
||||
54: 2802 fld fa6,0(sp)
|
||||
56: 0012 c.slli zero,0x4
|
||||
58: 0300 addi s0,sp,384
|
||||
5a: 0124 addi s1,sp,136
|
||||
5c: 04090103 lb sp,64(s2)
|
||||
60: 0100 addi s0,sp,128
|
||||
62: 04090203 lb tp,64(s2)
|
||||
66: 0100 addi s0,sp,128
|
||||
68: 04090103 lb sp,64(s2)
|
||||
6c: 0100 addi s0,sp,128
|
||||
6e: 04090103 lb sp,64(s2)
|
||||
72: 0100 addi s0,sp,128
|
||||
74: 04090203 lb tp,64(s2)
|
||||
78: 0100 addi s0,sp,128
|
||||
7a: 04090103 lb sp,64(s2)
|
||||
7e: 0100 addi s0,sp,128
|
||||
80: 04090103 lb sp,64(s2)
|
||||
84: 0100 addi s0,sp,128
|
||||
86: 04090103 lb sp,64(s2)
|
||||
8a: 0100 addi s0,sp,128
|
||||
8c: 0409 addi s0,s0,2
|
||||
8e: 0000 unimp
|
||||
90: 0101 addi sp,sp,0
|
||||
92: 0164 addi s1,sp,140
|
||||
94: 0000 unimp
|
||||
96: 0002 c.slli64 zero
|
||||
98: 0045 c.nop 17
|
||||
9a: 0000 unimp
|
||||
9c: 0101 addi sp,sp,0
|
||||
9e: 000d0efb 0xd0efb
|
||||
a2: 0101 addi sp,sp,0
|
||||
a4: 0101 addi sp,sp,0
|
||||
a6: 0000 unimp
|
||||
a8: 0100 addi s0,sp,128
|
||||
aa: 0000 unimp
|
||||
ac: 2e01 jal 3bc <printInt-0xc44>
|
||||
ae: 2f2e fld ft10,200(sp)
|
||||
b0: 2e2e fld ft8,200(sp)
|
||||
b2: 2f2e2e2f 0x2f2e2e2f
|
||||
b6: 2f2e fld ft10,200(sp)
|
||||
b8: 6972 flw fs2,28(sp)
|
||||
ba: 2d766373 csrrsi t1,0x2d7,12
|
||||
be: 2f636367 0x2f636367
|
||||
c2: 696c flw fa1,84(a0)
|
||||
c4: 6762 flw fa4,24(sp)
|
||||
c6: 632f6363 bltu t5,s2,6ec <printInt-0x914>
|
||||
ca: 69666e6f jal t3,66760 <__heap_start+0x64760>
|
||||
ce: 69722f67 0x69722f67
|
||||
d2: 00766373 csrrsi t1,0x7,12
|
||||
d6: 6400 flw fs0,8(s0)
|
||||
d8: 7669 lui a2,0xffffa
|
||||
da: 532e lw t1,232(sp)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 0000 unimp
|
||||
e0: 0000 unimp
|
||||
e2: 0205 addi tp,tp,1
|
||||
e4: 124c addi a1,sp,292
|
||||
e6: 0000 unimp
|
||||
e8: 0100c403 lbu s0,16(ra)
|
||||
ec: 04090103 lb sp,64(s2)
|
||||
f0: 0100 addi s0,sp,128
|
||||
f2: 04090403 lb s0,64(s2)
|
||||
f6: 0100 addi s0,sp,128
|
||||
f8: 04090103 lb sp,64(s2)
|
||||
fc: 0100 addi s0,sp,128
|
||||
fe: 04090103 lb sp,64(s2)
|
||||
102: 0100 addi s0,sp,128
|
||||
104: 04090103 lb sp,64(s2)
|
||||
108: 0100 addi s0,sp,128
|
||||
10a: 04090103 lb sp,64(s2)
|
||||
10e: 0100 addi s0,sp,128
|
||||
110: 04090103 lb sp,64(s2)
|
||||
114: 0100 addi s0,sp,128
|
||||
116: 04090203 lb tp,64(s2)
|
||||
11a: 0100 addi s0,sp,128
|
||||
11c: 04090103 lb sp,64(s2)
|
||||
120: 0100 addi s0,sp,128
|
||||
122: 04090103 lb sp,64(s2)
|
||||
126: 0100 addi s0,sp,128
|
||||
128: 04090103 lb sp,64(s2)
|
||||
12c: 0100 addi s0,sp,128
|
||||
12e: 04090203 lb tp,64(s2)
|
||||
132: 0100 addi s0,sp,128
|
||||
134: 04090203 lb tp,64(s2)
|
||||
138: 0100 addi s0,sp,128
|
||||
13a: 04090103 lb sp,64(s2)
|
||||
13e: 0100 addi s0,sp,128
|
||||
140: 04090103 lb sp,64(s2)
|
||||
144: 0100 addi s0,sp,128
|
||||
146: 04090203 lb tp,64(s2)
|
||||
14a: 0100 addi s0,sp,128
|
||||
14c: 04090103 lb sp,64(s2)
|
||||
150: 0100 addi s0,sp,128
|
||||
152: 04090103 lb sp,64(s2)
|
||||
156: 0100 addi s0,sp,128
|
||||
158: 04090203 lb tp,64(s2)
|
||||
15c: 0100 addi s0,sp,128
|
||||
15e: 04090503 lb a0,64(s2)
|
||||
162: 0100 addi s0,sp,128
|
||||
164: 04090103 lb sp,64(s2)
|
||||
168: 0100 addi s0,sp,128
|
||||
16a: 04090103 lb sp,64(s2)
|
||||
16e: 0100 addi s0,sp,128
|
||||
170: 04090103 lb sp,64(s2)
|
||||
174: 0100 addi s0,sp,128
|
||||
176: 04090503 lb a0,64(s2)
|
||||
17a: 0100 addi s0,sp,128
|
||||
17c: 04090103 lb sp,64(s2)
|
||||
180: 0100 addi s0,sp,128
|
||||
182: 04090103 lb sp,64(s2)
|
||||
186: 0100 addi s0,sp,128
|
||||
188: 04090103 lb sp,64(s2)
|
||||
18c: 0100 addi s0,sp,128
|
||||
18e: 04090203 lb tp,64(s2)
|
||||
192: 0100 addi s0,sp,128
|
||||
194: 04090203 lb tp,64(s2)
|
||||
198: 0100 addi s0,sp,128
|
||||
19a: 04090103 lb sp,64(s2)
|
||||
19e: 0100 addi s0,sp,128
|
||||
1a0: 04090103 lb sp,64(s2)
|
||||
1a4: 0100 addi s0,sp,128
|
||||
1a6: 04090103 lb sp,64(s2)
|
||||
1aa: 0100 addi s0,sp,128
|
||||
1ac: 04090403 lb s0,64(s2)
|
||||
1b0: 0100 addi s0,sp,128
|
||||
1b2: 04090103 lb sp,64(s2)
|
||||
1b6: 0100 addi s0,sp,128
|
||||
1b8: 04090103 lb sp,64(s2)
|
||||
1bc: 0100 addi s0,sp,128
|
||||
1be: 04090203 lb tp,64(s2)
|
||||
1c2: 0100 addi s0,sp,128
|
||||
1c4: 04090103 lb sp,64(s2)
|
||||
1c8: 0100 addi s0,sp,128
|
||||
1ca: 04090103 lb sp,64(s2)
|
||||
1ce: 0100 addi s0,sp,128
|
||||
1d0: 04090203 lb tp,64(s2)
|
||||
1d4: 0100 addi s0,sp,128
|
||||
1d6: 04090103 lb sp,64(s2)
|
||||
1da: 0100 addi s0,sp,128
|
||||
1dc: 04090203 lb tp,64(s2)
|
||||
1e0: 0100 addi s0,sp,128
|
||||
1e2: 04090103 lb sp,64(s2)
|
||||
1e6: 0100 addi s0,sp,128
|
||||
1e8: 04090103 lb sp,64(s2)
|
||||
1ec: 0100 addi s0,sp,128
|
||||
1ee: 04090103 lb sp,64(s2)
|
||||
1f2: 0100 addi s0,sp,128
|
||||
1f4: 0409 addi s0,s0,2
|
||||
1f6: 0000 unimp
|
||||
1f8: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 1228 addi a0,sp,296
|
||||
12: 0000 unimp
|
||||
14: 124c addi a1,sp,292
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0032 c.slli zero,0xc
|
||||
1e: 0000 unimp
|
||||
20: 0000008b 0x8b
|
||||
24: 8001 c.srli64 s0
|
||||
26: 0022 c.slli zero,0x8
|
||||
28: 0000 unimp
|
||||
2a: 0002 c.slli64 zero
|
||||
2c: 0014 0x14
|
||||
2e: 0000 unimp
|
||||
30: 0104 addi s1,sp,128
|
||||
32: 0092 slli ra,ra,0x4
|
||||
34: 0000 unimp
|
||||
36: 124c addi a1,sp,292
|
||||
38: 0000 unimp
|
||||
3a: 1300 addi s0,sp,416
|
||||
3c: 0000 unimp
|
||||
3e: 0099 addi ra,ra,6
|
||||
40: 0000 unimp
|
||||
42: 0032 c.slli zero,0xc
|
||||
44: 0000 unimp
|
||||
46: 0000008b 0x8b
|
||||
4a: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
12: 0000 unimp
|
||||
14: 1101 addi sp,sp,-32
|
||||
16: 1000 addi s0,sp,32
|
||||
18: 1106 slli sp,sp,0x21
|
||||
1a: 1201 addi tp,tp,-32
|
||||
1c: 0301 addi t1,t1,0
|
||||
1e: 1b0e slli s6,s6,0x23
|
||||
20: 250e fld fa0,192(sp)
|
||||
22: 130e slli t1,t1,0x23
|
||||
24: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 1228 addi a0,sp,296
|
||||
12: 0000 unimp
|
||||
14: 0024 addi s1,sp,8
|
||||
...
|
||||
1e: 0000 unimp
|
||||
20: 001c 0x1c
|
||||
22: 0000 unimp
|
||||
24: 0002 c.slli64 zero
|
||||
26: 0026 c.slli zero,0x9
|
||||
28: 0000 unimp
|
||||
2a: 0004 0x4
|
||||
2c: 0000 unimp
|
||||
2e: 0000 unimp
|
||||
30: 124c addi a1,sp,292
|
||||
32: 0000 unimp
|
||||
34: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 6d2f7663 bgeu t5,s2,6f2 <printInt-0x90e>
|
||||
2a: 6c75 lui s8,0x1d
|
||||
2c: 6964 flw fs1,84(a0)
|
||||
2e: 00532e33 slt t3,t1,t0
|
||||
32: 6d6f682f 0x6d6f682f
|
||||
36: 2f65 jal 7ee <printInt-0x812>
|
||||
38: 712d7577 0x712d7577
|
||||
3c: 6e69 lui t3,0x1a
|
||||
3e: 35312d67 0x35312d67
|
||||
42: 69722f37 lui t5,0x69722
|
||||
46: 2d766373 csrrsi t1,0x2d7,12
|
||||
4a: 2d756e67 0x2d756e67
|
||||
4e: 6f74 flw fa3,92(a4)
|
||||
50: 68636c6f jal s8,366d6 <__heap_start+0x346d6>
|
||||
54: 6961 lui s2,0x18
|
||||
56: 2f6e fld ft10,216(sp)
|
||||
58: 7562 flw fa0,56(sp)
|
||||
5a: 6c69 lui s8,0x1a
|
||||
5c: 2d64 fld fs1,216(a0)
|
||||
5e: 2d636367 0x2d636367
|
||||
62: 656e flw fa0,216(sp)
|
||||
64: 62696c77 0x62696c77
|
||||
68: 732d lui t1,0xfffeb
|
||||
6a: 6174 flw fa3,68(a0)
|
||||
6c: 2f326567 0x2f326567
|
||||
70: 6972 flw fs2,28(sp)
|
||||
72: 33766373 csrrsi t1,mhpmevent23,12
|
||||
76: 2d32 fld fs10,264(sp)
|
||||
78: 6e75 lui t3,0x1d
|
||||
7a: 776f6e6b 0x776f6e6b
|
||||
7e: 2d6e fld fs10,216(sp)
|
||||
80: 6c65 lui s8,0x19
|
||||
82: 2f66 fld ft10,88(sp)
|
||||
84: 696c flw fa1,84(a0)
|
||||
86: 6762 flw fa4,24(sp)
|
||||
88: 47006363 bltu zero,a6,4ee <printInt-0xb12>
|
||||
8c: 554e lw a0,240(sp)
|
||||
8e: 4120 lw s0,64(a0)
|
||||
90: 2e322053 0x2e322053
|
||||
94: 312e3133 0x312e3133
|
||||
98: 2e00 fld fs0,24(a2)
|
||||
9a: 2f2e fld ft10,200(sp)
|
||||
9c: 2e2e fld ft8,200(sp)
|
||||
9e: 2f2e2e2f 0x2f2e2e2f
|
||||
a2: 2f2e fld ft10,200(sp)
|
||||
a4: 6972 flw fs2,28(sp)
|
||||
a6: 2d766373 csrrsi t1,0x2d7,12
|
||||
aa: 2f636367 0x2f636367
|
||||
ae: 696c flw fa1,84(a0)
|
||||
b0: 6762 flw fa4,24(sp)
|
||||
b2: 632f6363 bltu t5,s2,6d8 <printInt-0x928>
|
||||
b6: 69666e6f jal t3,6674c <__heap_start+0x6474c>
|
||||
ba: 69722f67 0x69722f67
|
||||
be: 2f766373 csrrsi t1,0x2f7,12
|
||||
c2: 6964 flw fs1,84(a0)
|
||||
c4: 2e76 fld ft8,344(sp)
|
||||
c6: fadd.s ft0,ft0,ft0,rne
|
38
test/testcases/superloop.c
Normal file
38
test/testcases/superloop.c
Normal file
@ -0,0 +1,38 @@
|
||||
#include "io.inc"
|
||||
// Target: use loops to calculate calculator of 6!
|
||||
//@author yixi
|
||||
|
||||
int N;
|
||||
int h = 99;
|
||||
int i = 100;
|
||||
int j = 101;
|
||||
int k = 102;
|
||||
int total = 0;
|
||||
|
||||
int main() {
|
||||
int a;
|
||||
int b;
|
||||
int c;
|
||||
int d;
|
||||
int e;
|
||||
int f;
|
||||
N = 6;
|
||||
for (a = 1; a <= N; a++)
|
||||
for (b = 1; b <= N; b++)
|
||||
for (c = 1; c <= N; c++)
|
||||
for (d = 1; d <= N; d++)
|
||||
for (e = 1; e <= N; e++)
|
||||
for (f = 1; f <= N; f++)
|
||||
if (a != b && a != c && a != d && a != e && a != f && a != h &&
|
||||
a != i && a != j && a != k && b != c && b != d && b != e &&
|
||||
b != f && b != h && b != i && b != j && b != k && c != d &&
|
||||
c != e && c != f && c != h && c != i && c != j && c != k &&
|
||||
d != e && d != f && d != h && d != i && d != j && d != k &&
|
||||
e != f && e != h && e != i && e != j && e != k && f != h &&
|
||||
f != i && f != j && f != k && i != j && h != k) {
|
||||
total++;
|
||||
}
|
||||
|
||||
printInt(total);
|
||||
return judgeResult % Mod; // 134
|
||||
}
|
49
test/testcases/superloop.data
Normal file
49
test/testcases/superloop.data
Normal file
@ -0,0 +1,49 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 00 04 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 47 2A 33 45 F5 00 13 05 D5 0A
|
||||
23 22 A7 2A 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 47 2A B3 C7 D7 00 93 87 97 20
|
||||
23 22 F7 2A 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FF 23 26 11 00 B7 17 00 00
|
||||
13 07 60 00 23 AE E7 28 B7 17 00 00 83 A8 87 29
|
||||
B7 17 00 00 03 A3 47 29 B7 17 00 00 03 AE 07 29
|
||||
B7 17 00 00 83 AE C7 28 B7 17 00 00 03 AF 07 2A
|
||||
93 0F 00 00 93 07 10 00 93 06 70 00 93 02 10 00
|
||||
6F 00 40 10 13 07 17 00 63 0A D7 0A E3 8C C7 FE
|
||||
E3 8A A7 FE E3 88 07 FF E3 86 B7 FE E3 84 E7 FE
|
||||
E3 82 F8 FE E3 00 F3 FE E3 0E FE FC E3 8C FE FC
|
||||
E3 0A A6 FC E3 08 06 FD E3 06 B6 FC E3 04 E6 FC
|
||||
E3 82 C8 FC E3 00 C3 FC E3 0E CE FA E3 8C CE FA
|
||||
E3 0A 05 FB E3 08 B5 FA E3 06 E5 FA E3 84 A8 FA
|
||||
E3 02 A3 FA E3 00 AE FA E3 8E AE F8 E3 0C B8 F8
|
||||
E3 0A E8 F8 E3 88 08 F9 E3 06 03 F9 E3 04 0E F9
|
||||
E3 82 0E F9 E3 80 E5 F8 E3 8E B8 F6 E3 0C B3 F6
|
||||
E3 0A BE F6 E3 88 BE F6 E3 86 E8 F6 E3 04 E3 F6
|
||||
E3 02 EE F6 E3 80 EE F6 E3 0E C3 F5 E3 8C D8 F5
|
||||
13 0F 1F 00 93 8F 02 00 6F F0 DF F4 93 85 15 00
|
||||
63 86 D5 00 13 07 10 00 6F F0 5F F4 13 08 18 00
|
||||
63 06 D8 00 93 05 10 00 6F F0 DF FE 13 05 15 00
|
||||
63 06 D5 00 13 08 10 00 6F F0 DF FE 13 06 16 00
|
||||
63 06 D6 00 13 05 10 00 6F F0 DF FE 93 87 17 00
|
||||
63 86 D7 00 13 06 10 00 6F F0 DF FE 63 96 0F 02
|
||||
B7 17 00 00 03 A5 07 2A EF F0 9F E5 93 05 D0 0F
|
||||
B7 17 00 00 03 A5 47 2A EF 00 00 0A 83 20 C1 00
|
||||
13 01 01 01 67 80 00 00 B7 17 00 00 23 A0 E7 2B
|
||||
6F F0 1F FD 63 40 05 06 63 C6 05 06 13 86 05 00
|
||||
93 05 05 00 13 05 F0 FF 63 0C 06 02 93 06 10 00
|
||||
63 7A B6 00 63 58 C0 00 13 16 16 00 93 96 16 00
|
||||
E3 6A B6 FE 13 05 00 00 63 E6 C5 00 B3 85 C5 40
|
||||
33 65 D5 00 93 D6 16 00 13 56 16 00 E3 96 06 FE
|
||||
67 80 00 00 93 82 00 00 EF F0 5F FB 13 85 05 00
|
||||
67 80 02 00 33 05 A0 40 63 D8 05 00 B3 05 B0 40
|
||||
6F F0 DF F9 B3 05 B0 40 93 82 00 00 EF F0 1F F9
|
||||
33 05 A0 40 67 80 02 00 93 82 00 00 63 CA 05 00
|
||||
63 4C 05 00 EF F0 9F F7 13 85 05 00 67 80 02 00
|
||||
B3 05 B0 40 E3 58 05 FE 33 05 A0 40 EF F0 1F F6
|
||||
33 05 B0 40 67 80 02 00
|
||||
@00001288
|
||||
FD 00 00 00
|
||||
@0000128C
|
||||
66 00 00 00 65 00 00 00 64 00 00 00 63 00 00 00
|
482
test/testcases/superloop.dump
Normal file
482
test/testcases/superloop.dump
Normal file
@ -0,0 +1,482 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 040010ef jal ra,1044 <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 2a472783 lw a5,676(a4) # 12a4 <judgeResult>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 2aa72223 sw a0,676(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 2a472683 lw a3,676(a4) # 12a4 <judgeResult>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 2af72223 sw a5,676(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <main>:
|
||||
1044: ff010113 addi sp,sp,-16 # 1fff0 <__heap_start+0x1dff0>
|
||||
1048: 00112623 sw ra,12(sp)
|
||||
104c: 000017b7 lui a5,0x1
|
||||
1050: 00600713 li a4,6
|
||||
1054: 28e7ae23 sw a4,668(a5) # 129c <N>
|
||||
1058: 000017b7 lui a5,0x1
|
||||
105c: 2987a883 lw a7,664(a5) # 1298 <h>
|
||||
1060: 000017b7 lui a5,0x1
|
||||
1064: 2947a303 lw t1,660(a5) # 1294 <i>
|
||||
1068: 000017b7 lui a5,0x1
|
||||
106c: 2907ae03 lw t3,656(a5) # 1290 <j>
|
||||
1070: 000017b7 lui a5,0x1
|
||||
1074: 28c7ae83 lw t4,652(a5) # 128c <__bss_start>
|
||||
1078: 000017b7 lui a5,0x1
|
||||
107c: 2a07af03 lw t5,672(a5) # 12a0 <__bss_end>
|
||||
1080: 00000f93 li t6,0
|
||||
1084: 00100793 li a5,1
|
||||
1088: 00700693 li a3,7
|
||||
108c: 00100293 li t0,1
|
||||
1090: 1040006f j 1194 <main+0x150>
|
||||
1094: 00170713 addi a4,a4,1
|
||||
1098: 0ad70a63 beq a4,a3,114c <main+0x108>
|
||||
109c: fec78ce3 beq a5,a2,1094 <main+0x50>
|
||||
10a0: fea78ae3 beq a5,a0,1094 <main+0x50>
|
||||
10a4: ff0788e3 beq a5,a6,1094 <main+0x50>
|
||||
10a8: feb786e3 beq a5,a1,1094 <main+0x50>
|
||||
10ac: fee784e3 beq a5,a4,1094 <main+0x50>
|
||||
10b0: fef882e3 beq a7,a5,1094 <main+0x50>
|
||||
10b4: fef300e3 beq t1,a5,1094 <main+0x50>
|
||||
10b8: fcfe0ee3 beq t3,a5,1094 <main+0x50>
|
||||
10bc: fcfe8ce3 beq t4,a5,1094 <main+0x50>
|
||||
10c0: fca60ae3 beq a2,a0,1094 <main+0x50>
|
||||
10c4: fd0608e3 beq a2,a6,1094 <main+0x50>
|
||||
10c8: fcb606e3 beq a2,a1,1094 <main+0x50>
|
||||
10cc: fce604e3 beq a2,a4,1094 <main+0x50>
|
||||
10d0: fcc882e3 beq a7,a2,1094 <main+0x50>
|
||||
10d4: fcc300e3 beq t1,a2,1094 <main+0x50>
|
||||
10d8: face0ee3 beq t3,a2,1094 <main+0x50>
|
||||
10dc: face8ce3 beq t4,a2,1094 <main+0x50>
|
||||
10e0: fb050ae3 beq a0,a6,1094 <main+0x50>
|
||||
10e4: fab508e3 beq a0,a1,1094 <main+0x50>
|
||||
10e8: fae506e3 beq a0,a4,1094 <main+0x50>
|
||||
10ec: faa884e3 beq a7,a0,1094 <main+0x50>
|
||||
10f0: faa302e3 beq t1,a0,1094 <main+0x50>
|
||||
10f4: faae00e3 beq t3,a0,1094 <main+0x50>
|
||||
10f8: f8ae8ee3 beq t4,a0,1094 <main+0x50>
|
||||
10fc: f8b80ce3 beq a6,a1,1094 <main+0x50>
|
||||
1100: f8e80ae3 beq a6,a4,1094 <main+0x50>
|
||||
1104: f90888e3 beq a7,a6,1094 <main+0x50>
|
||||
1108: f90306e3 beq t1,a6,1094 <main+0x50>
|
||||
110c: f90e04e3 beq t3,a6,1094 <main+0x50>
|
||||
1110: f90e82e3 beq t4,a6,1094 <main+0x50>
|
||||
1114: f8e580e3 beq a1,a4,1094 <main+0x50>
|
||||
1118: f6b88ee3 beq a7,a1,1094 <main+0x50>
|
||||
111c: f6b30ce3 beq t1,a1,1094 <main+0x50>
|
||||
1120: f6be0ae3 beq t3,a1,1094 <main+0x50>
|
||||
1124: f6be88e3 beq t4,a1,1094 <main+0x50>
|
||||
1128: f6e886e3 beq a7,a4,1094 <main+0x50>
|
||||
112c: f6e304e3 beq t1,a4,1094 <main+0x50>
|
||||
1130: f6ee02e3 beq t3,a4,1094 <main+0x50>
|
||||
1134: f6ee80e3 beq t4,a4,1094 <main+0x50>
|
||||
1138: f5c30ee3 beq t1,t3,1094 <main+0x50>
|
||||
113c: f5d88ce3 beq a7,t4,1094 <main+0x50>
|
||||
1140: 001f0f13 addi t5,t5,1
|
||||
1144: 00028f93 mv t6,t0
|
||||
1148: f4dff06f j 1094 <main+0x50>
|
||||
114c: 00158593 addi a1,a1,1
|
||||
1150: 00d58663 beq a1,a3,115c <main+0x118>
|
||||
1154: 00100713 li a4,1
|
||||
1158: f45ff06f j 109c <main+0x58>
|
||||
115c: 00180813 addi a6,a6,1
|
||||
1160: 00d80663 beq a6,a3,116c <main+0x128>
|
||||
1164: 00100593 li a1,1
|
||||
1168: fedff06f j 1154 <main+0x110>
|
||||
116c: 00150513 addi a0,a0,1
|
||||
1170: 00d50663 beq a0,a3,117c <main+0x138>
|
||||
1174: 00100813 li a6,1
|
||||
1178: fedff06f j 1164 <main+0x120>
|
||||
117c: 00160613 addi a2,a2,1
|
||||
1180: 00d60663 beq a2,a3,118c <main+0x148>
|
||||
1184: 00100513 li a0,1
|
||||
1188: fedff06f j 1174 <main+0x130>
|
||||
118c: 00178793 addi a5,a5,1
|
||||
1190: 00d78663 beq a5,a3,119c <main+0x158>
|
||||
1194: 00100613 li a2,1
|
||||
1198: fedff06f j 1184 <main+0x140>
|
||||
119c: 020f9663 bnez t6,11c8 <main+0x184>
|
||||
11a0: 000017b7 lui a5,0x1
|
||||
11a4: 2a07a503 lw a0,672(a5) # 12a0 <__bss_end>
|
||||
11a8: e59ff0ef jal ra,1000 <printInt>
|
||||
11ac: 0fd00593 li a1,253
|
||||
11b0: 000017b7 lui a5,0x1
|
||||
11b4: 2a47a503 lw a0,676(a5) # 12a4 <judgeResult>
|
||||
11b8: 0a0000ef jal ra,1258 <__modsi3>
|
||||
11bc: 00c12083 lw ra,12(sp)
|
||||
11c0: 01010113 addi sp,sp,16
|
||||
11c4: 00008067 ret
|
||||
11c8: 000017b7 lui a5,0x1
|
||||
11cc: 2be7a023 sw t5,672(a5) # 12a0 <__bss_end>
|
||||
11d0: fd1ff06f j 11a0 <main+0x15c>
|
||||
|
||||
000011d4 <__divsi3>:
|
||||
11d4: 06054063 bltz a0,1234 <__umodsi3+0x10>
|
||||
11d8: 0605c663 bltz a1,1244 <__umodsi3+0x20>
|
||||
|
||||
000011dc <__udivsi3>:
|
||||
11dc: 00058613 mv a2,a1
|
||||
11e0: 00050593 mv a1,a0
|
||||
11e4: fff00513 li a0,-1
|
||||
11e8: 02060c63 beqz a2,1220 <__udivsi3+0x44>
|
||||
11ec: 00100693 li a3,1
|
||||
11f0: 00b67a63 bgeu a2,a1,1204 <__udivsi3+0x28>
|
||||
11f4: 00c05863 blez a2,1204 <__udivsi3+0x28>
|
||||
11f8: 00161613 slli a2,a2,0x1
|
||||
11fc: 00169693 slli a3,a3,0x1
|
||||
1200: feb66ae3 bltu a2,a1,11f4 <__udivsi3+0x18>
|
||||
1204: 00000513 li a0,0
|
||||
1208: 00c5e663 bltu a1,a2,1214 <__udivsi3+0x38>
|
||||
120c: 40c585b3 sub a1,a1,a2
|
||||
1210: 00d56533 or a0,a0,a3
|
||||
1214: 0016d693 srli a3,a3,0x1
|
||||
1218: 00165613 srli a2,a2,0x1
|
||||
121c: fe0696e3 bnez a3,1208 <__udivsi3+0x2c>
|
||||
1220: 00008067 ret
|
||||
|
||||
00001224 <__umodsi3>:
|
||||
1224: 00008293 mv t0,ra
|
||||
1228: fb5ff0ef jal ra,11dc <__udivsi3>
|
||||
122c: 00058513 mv a0,a1
|
||||
1230: 00028067 jr t0
|
||||
1234: 40a00533 neg a0,a0
|
||||
1238: 0005d863 bgez a1,1248 <__umodsi3+0x24>
|
||||
123c: 40b005b3 neg a1,a1
|
||||
1240: f9dff06f j 11dc <__udivsi3>
|
||||
1244: 40b005b3 neg a1,a1
|
||||
1248: 00008293 mv t0,ra
|
||||
124c: f91ff0ef jal ra,11dc <__udivsi3>
|
||||
1250: 40a00533 neg a0,a0
|
||||
1254: 00028067 jr t0
|
||||
|
||||
00001258 <__modsi3>:
|
||||
1258: 00008293 mv t0,ra
|
||||
125c: 0005ca63 bltz a1,1270 <__modsi3+0x18>
|
||||
1260: 00054c63 bltz a0,1278 <__modsi3+0x20>
|
||||
1264: f79ff0ef jal ra,11dc <__udivsi3>
|
||||
1268: 00058513 mv a0,a1
|
||||
126c: 00028067 jr t0
|
||||
1270: 40b005b3 neg a1,a1
|
||||
1274: fe0558e3 bgez a0,1264 <__modsi3+0xc>
|
||||
1278: 40a00533 neg a0,a0
|
||||
127c: f61ff0ef jal ra,11dc <__udivsi3>
|
||||
1280: 40b00533 neg a0,a1
|
||||
1284: 00028067 jr t0
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
00001288 <Mod>:
|
||||
1288: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .sdata:
|
||||
|
||||
0000128c <k>:
|
||||
128c: 0066 c.slli zero,0x19
|
||||
...
|
||||
|
||||
00001290 <j>:
|
||||
1290: 0065 c.nop 25
|
||||
...
|
||||
|
||||
00001294 <i>:
|
||||
1294: 0064 addi s1,sp,12
|
||||
...
|
||||
|
||||
00001298 <h>:
|
||||
1298: 00000063 beqz zero,1298 <h>
|
||||
|
||||
Disassembly of section .bss:
|
||||
|
||||
0000129c <N>:
|
||||
129c: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
000012a0 <total>:
|
||||
12a0: 0000 unimp
|
||||
...
|
||||
|
||||
000012a4 <judgeResult>:
|
||||
12a4: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 11d4 addi a3,sp,228
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 11d4 addi a3,sp,228
|
||||
12: 0000 unimp
|
||||
14: 1288 addi a0,sp,352
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 11d4 addi a3,sp,228
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
15
test/testcases/tak.c
Normal file
15
test/testcases/tak.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include "io.inc"
|
||||
int tak(int x, int y, int z) {
|
||||
if (y < x)
|
||||
return 1 + tak(tak(x - 1, y, z), tak(y - 1, z, x), tak(z - 1, x, y));
|
||||
else
|
||||
return z;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int a = 18;
|
||||
int b = 12;
|
||||
int c = 6;
|
||||
printInt(tak(a, b, c));
|
||||
return judgeResult % Mod; // 186
|
||||
}
|
35
test/testcases/tak.data
Normal file
35
test/testcases/tak.data
Normal file
@ -0,0 +1,35 @@
|
||||
@00000000
|
||||
37 01 02 00 EF 10 80 0D 13 05 F0 0F B7 06 03 00
|
||||
23 82 A6 00 6F F0 9F FF
|
||||
@00001000
|
||||
37 17 00 00 83 27 C7 1C 33 45 F5 00 13 05 D5 0A
|
||||
23 26 A7 1C 67 80 00 00 83 47 05 00 63 82 07 02
|
||||
37 17 00 00 83 26 C7 1C B3 C7 D7 00 93 87 97 20
|
||||
23 26 F7 1C 13 05 15 00 83 47 05 00 E3 94 07 FE
|
||||
67 80 00 00 13 01 01 FE 23 2E 11 00 23 2C 81 00
|
||||
23 2A 91 00 23 28 21 01 23 26 31 01 23 24 41 01
|
||||
13 04 06 00 63 C4 A5 02 13 05 04 00 83 20 C1 01
|
||||
03 24 81 01 83 24 41 01 03 29 01 01 83 29 C1 00
|
||||
03 2A 81 00 13 01 01 02 67 80 00 00 93 04 05 00
|
||||
13 89 05 00 13 05 F5 FF EF F0 DF FA 93 09 05 00
|
||||
13 86 04 00 93 05 04 00 13 05 F9 FF EF F0 9F F9
|
||||
13 0A 05 00 13 06 09 00 93 85 04 00 13 05 F4 FF
|
||||
EF F0 5F F8 13 06 05 00 93 05 0A 00 13 85 09 00
|
||||
EF F0 5F F7 13 04 15 00 6F F0 1F F9 13 01 01 FF
|
||||
23 26 11 00 13 06 60 00 93 05 C0 00 13 05 20 01
|
||||
EF F0 5F F5 EF F0 DF F0 93 05 D0 0F B7 17 00 00
|
||||
03 A5 C7 1C EF 00 40 09 83 20 C1 00 13 01 01 01
|
||||
67 80 00 00 63 40 05 06 63 C6 05 06 13 86 05 00
|
||||
93 05 05 00 13 05 F0 FF 63 0C 06 02 93 06 10 00
|
||||
63 7A B6 00 63 58 C0 00 13 16 16 00 93 96 16 00
|
||||
E3 6A B6 FE 13 05 00 00 63 E6 C5 00 B3 85 C5 40
|
||||
33 65 D5 00 93 D6 16 00 13 56 16 00 E3 96 06 FE
|
||||
67 80 00 00 93 82 00 00 EF F0 5F FB 13 85 05 00
|
||||
67 80 02 00 33 05 A0 40 63 D8 05 00 B3 05 B0 40
|
||||
6F F0 DF F9 B3 05 B0 40 93 82 00 00 EF F0 1F F9
|
||||
33 05 A0 40 67 80 02 00 93 82 00 00 63 CA 05 00
|
||||
63 4C 05 00 EF F0 9F F7 13 85 05 00 67 80 02 00
|
||||
B3 05 B0 40 E3 58 05 FE 33 05 A0 40 EF F0 1F F6
|
||||
33 05 B0 40 67 80 02 00
|
||||
@000011C8
|
||||
FD 00 00 00
|
409
test/testcases/tak.dump
Normal file
409
test/testcases/tak.dump
Normal file
@ -0,0 +1,409 @@
|
||||
|
||||
./test/test.om: file format elf32-littleriscv
|
||||
|
||||
|
||||
Disassembly of section .rom:
|
||||
|
||||
00000000 <.rom>:
|
||||
0: 00020137 lui sp,0x20
|
||||
4: 0d8010ef jal ra,10dc <main>
|
||||
8: 0ff00513 li a0,255
|
||||
c: 000306b7 lui a3,0x30
|
||||
10: 00a68223 sb a0,4(a3) # 30004 <__heap_start+0x2e004>
|
||||
14: ff9ff06f j c <printInt-0xff4>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00001000 <printInt>:
|
||||
1000: 00001737 lui a4,0x1
|
||||
1004: 1cc72783 lw a5,460(a4) # 11cc <__bss_end>
|
||||
1008: 00f54533 xor a0,a0,a5
|
||||
100c: 0ad50513 addi a0,a0,173
|
||||
1010: 1ca72623 sw a0,460(a4)
|
||||
1014: 00008067 ret
|
||||
|
||||
00001018 <printStr>:
|
||||
1018: 00054783 lbu a5,0(a0)
|
||||
101c: 02078263 beqz a5,1040 <printStr+0x28>
|
||||
1020: 00001737 lui a4,0x1
|
||||
1024: 1cc72683 lw a3,460(a4) # 11cc <__bss_end>
|
||||
1028: 00d7c7b3 xor a5,a5,a3
|
||||
102c: 20978793 addi a5,a5,521
|
||||
1030: 1cf72623 sw a5,460(a4)
|
||||
1034: 00150513 addi a0,a0,1
|
||||
1038: 00054783 lbu a5,0(a0)
|
||||
103c: fe0794e3 bnez a5,1024 <printStr+0xc>
|
||||
1040: 00008067 ret
|
||||
|
||||
00001044 <tak>:
|
||||
1044: fe010113 addi sp,sp,-32 # 1ffe0 <__heap_start+0x1dfe0>
|
||||
1048: 00112e23 sw ra,28(sp)
|
||||
104c: 00812c23 sw s0,24(sp)
|
||||
1050: 00912a23 sw s1,20(sp)
|
||||
1054: 01212823 sw s2,16(sp)
|
||||
1058: 01312623 sw s3,12(sp)
|
||||
105c: 01412423 sw s4,8(sp)
|
||||
1060: 00060413 mv s0,a2
|
||||
1064: 02a5c463 blt a1,a0,108c <tak+0x48>
|
||||
1068: 00040513 mv a0,s0
|
||||
106c: 01c12083 lw ra,28(sp)
|
||||
1070: 01812403 lw s0,24(sp)
|
||||
1074: 01412483 lw s1,20(sp)
|
||||
1078: 01012903 lw s2,16(sp)
|
||||
107c: 00c12983 lw s3,12(sp)
|
||||
1080: 00812a03 lw s4,8(sp)
|
||||
1084: 02010113 addi sp,sp,32
|
||||
1088: 00008067 ret
|
||||
108c: 00050493 mv s1,a0
|
||||
1090: 00058913 mv s2,a1
|
||||
1094: fff50513 addi a0,a0,-1
|
||||
1098: fadff0ef jal ra,1044 <tak>
|
||||
109c: 00050993 mv s3,a0
|
||||
10a0: 00048613 mv a2,s1
|
||||
10a4: 00040593 mv a1,s0
|
||||
10a8: fff90513 addi a0,s2,-1
|
||||
10ac: f99ff0ef jal ra,1044 <tak>
|
||||
10b0: 00050a13 mv s4,a0
|
||||
10b4: 00090613 mv a2,s2
|
||||
10b8: 00048593 mv a1,s1
|
||||
10bc: fff40513 addi a0,s0,-1
|
||||
10c0: f85ff0ef jal ra,1044 <tak>
|
||||
10c4: 00050613 mv a2,a0
|
||||
10c8: 000a0593 mv a1,s4
|
||||
10cc: 00098513 mv a0,s3
|
||||
10d0: f75ff0ef jal ra,1044 <tak>
|
||||
10d4: 00150413 addi s0,a0,1
|
||||
10d8: f91ff06f j 1068 <tak+0x24>
|
||||
|
||||
000010dc <main>:
|
||||
10dc: ff010113 addi sp,sp,-16
|
||||
10e0: 00112623 sw ra,12(sp)
|
||||
10e4: 00600613 li a2,6
|
||||
10e8: 00c00593 li a1,12
|
||||
10ec: 01200513 li a0,18
|
||||
10f0: f55ff0ef jal ra,1044 <tak>
|
||||
10f4: f0dff0ef jal ra,1000 <printInt>
|
||||
10f8: 0fd00593 li a1,253
|
||||
10fc: 000017b7 lui a5,0x1
|
||||
1100: 1cc7a503 lw a0,460(a5) # 11cc <__bss_end>
|
||||
1104: 094000ef jal ra,1198 <__modsi3>
|
||||
1108: 00c12083 lw ra,12(sp)
|
||||
110c: 01010113 addi sp,sp,16
|
||||
1110: 00008067 ret
|
||||
|
||||
00001114 <__divsi3>:
|
||||
1114: 06054063 bltz a0,1174 <__umodsi3+0x10>
|
||||
1118: 0605c663 bltz a1,1184 <__umodsi3+0x20>
|
||||
|
||||
0000111c <__udivsi3>:
|
||||
111c: 00058613 mv a2,a1
|
||||
1120: 00050593 mv a1,a0
|
||||
1124: fff00513 li a0,-1
|
||||
1128: 02060c63 beqz a2,1160 <__udivsi3+0x44>
|
||||
112c: 00100693 li a3,1
|
||||
1130: 00b67a63 bgeu a2,a1,1144 <__udivsi3+0x28>
|
||||
1134: 00c05863 blez a2,1144 <__udivsi3+0x28>
|
||||
1138: 00161613 slli a2,a2,0x1
|
||||
113c: 00169693 slli a3,a3,0x1
|
||||
1140: feb66ae3 bltu a2,a1,1134 <__udivsi3+0x18>
|
||||
1144: 00000513 li a0,0
|
||||
1148: 00c5e663 bltu a1,a2,1154 <__udivsi3+0x38>
|
||||
114c: 40c585b3 sub a1,a1,a2
|
||||
1150: 00d56533 or a0,a0,a3
|
||||
1154: 0016d693 srli a3,a3,0x1
|
||||
1158: 00165613 srli a2,a2,0x1
|
||||
115c: fe0696e3 bnez a3,1148 <__udivsi3+0x2c>
|
||||
1160: 00008067 ret
|
||||
|
||||
00001164 <__umodsi3>:
|
||||
1164: 00008293 mv t0,ra
|
||||
1168: fb5ff0ef jal ra,111c <__udivsi3>
|
||||
116c: 00058513 mv a0,a1
|
||||
1170: 00028067 jr t0
|
||||
1174: 40a00533 neg a0,a0
|
||||
1178: 0005d863 bgez a1,1188 <__umodsi3+0x24>
|
||||
117c: 40b005b3 neg a1,a1
|
||||
1180: f9dff06f j 111c <__udivsi3>
|
||||
1184: 40b005b3 neg a1,a1
|
||||
1188: 00008293 mv t0,ra
|
||||
118c: f91ff0ef jal ra,111c <__udivsi3>
|
||||
1190: 40a00533 neg a0,a0
|
||||
1194: 00028067 jr t0
|
||||
|
||||
00001198 <__modsi3>:
|
||||
1198: 00008293 mv t0,ra
|
||||
119c: 0005ca63 bltz a1,11b0 <__modsi3+0x18>
|
||||
11a0: 00054c63 bltz a0,11b8 <__modsi3+0x20>
|
||||
11a4: f79ff0ef jal ra,111c <__udivsi3>
|
||||
11a8: 00058513 mv a0,a1
|
||||
11ac: 00028067 jr t0
|
||||
11b0: 40b005b3 neg a1,a1
|
||||
11b4: fe0558e3 bgez a0,11a4 <__modsi3+0xc>
|
||||
11b8: 40a00533 neg a0,a0
|
||||
11bc: f61ff0ef jal ra,111c <__udivsi3>
|
||||
11c0: 40b00533 neg a0,a1
|
||||
11c4: 00028067 jr t0
|
||||
|
||||
Disassembly of section .srodata:
|
||||
|
||||
000011c8 <Mod>:
|
||||
11c8: 00fd addi ra,ra,31
|
||||
...
|
||||
|
||||
Disassembly of section .sbss:
|
||||
|
||||
000011cc <judgeResult>:
|
||||
11cc: 0000 unimp
|
||||
...
|
||||
|
||||
Disassembly of section .comment:
|
||||
|
||||
00000000 <.comment>:
|
||||
0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm
|
||||
4: 2820 fld fs0,80(s0)
|
||||
6: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm
|
||||
a: 3820 fld fs0,112(s0)
|
||||
c: 332e fld ft6,232(sp)
|
||||
e: 302e fld ft0,232(sp)
|
||||
...
|
||||
|
||||
Disassembly of section .debug_line:
|
||||
|
||||
00000000 <.debug_line>:
|
||||
0: 0164 addi s1,sp,140
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0045 c.nop 17
|
||||
8: 0000 unimp
|
||||
a: 0101 addi sp,sp,0
|
||||
c: 000d0efb 0xd0efb
|
||||
10: 0101 addi sp,sp,0
|
||||
12: 0101 addi sp,sp,0
|
||||
14: 0000 unimp
|
||||
16: 0100 addi s0,sp,128
|
||||
18: 0000 unimp
|
||||
1a: 2e01 jal 32a <printInt-0xcd6>
|
||||
1c: 2f2e fld ft10,200(sp)
|
||||
1e: 2e2e fld ft8,200(sp)
|
||||
20: 2f2e2e2f 0x2f2e2e2f
|
||||
24: 2f2e fld ft10,200(sp)
|
||||
26: 6972 flw fs2,28(sp)
|
||||
28: 2d766373 csrrsi t1,0x2d7,12
|
||||
2c: 2f636367 0x2f636367
|
||||
30: 696c flw fa1,84(a0)
|
||||
32: 6762 flw fa4,24(sp)
|
||||
34: 632f6363 bltu t5,s2,65a <printInt-0x9a6>
|
||||
38: 69666e6f jal t3,666ce <__heap_start+0x646ce>
|
||||
3c: 69722f67 0x69722f67
|
||||
40: 00766373 csrrsi t1,0x7,12
|
||||
44: 6400 flw fs0,8(s0)
|
||||
46: 7669 lui a2,0xffffa
|
||||
48: 532e lw t1,232(sp)
|
||||
4a: 0100 addi s0,sp,128
|
||||
4c: 0000 unimp
|
||||
4e: 0000 unimp
|
||||
50: 0205 addi tp,tp,1
|
||||
52: 1114 addi a3,sp,160
|
||||
54: 0000 unimp
|
||||
56: 0100c403 lbu s0,16(ra)
|
||||
5a: 04090103 lb sp,64(s2)
|
||||
5e: 0100 addi s0,sp,128
|
||||
60: 04090403 lb s0,64(s2)
|
||||
64: 0100 addi s0,sp,128
|
||||
66: 04090103 lb sp,64(s2)
|
||||
6a: 0100 addi s0,sp,128
|
||||
6c: 04090103 lb sp,64(s2)
|
||||
70: 0100 addi s0,sp,128
|
||||
72: 04090103 lb sp,64(s2)
|
||||
76: 0100 addi s0,sp,128
|
||||
78: 04090103 lb sp,64(s2)
|
||||
7c: 0100 addi s0,sp,128
|
||||
7e: 04090103 lb sp,64(s2)
|
||||
82: 0100 addi s0,sp,128
|
||||
84: 04090203 lb tp,64(s2)
|
||||
88: 0100 addi s0,sp,128
|
||||
8a: 04090103 lb sp,64(s2)
|
||||
8e: 0100 addi s0,sp,128
|
||||
90: 04090103 lb sp,64(s2)
|
||||
94: 0100 addi s0,sp,128
|
||||
96: 04090103 lb sp,64(s2)
|
||||
9a: 0100 addi s0,sp,128
|
||||
9c: 04090203 lb tp,64(s2)
|
||||
a0: 0100 addi s0,sp,128
|
||||
a2: 04090203 lb tp,64(s2)
|
||||
a6: 0100 addi s0,sp,128
|
||||
a8: 04090103 lb sp,64(s2)
|
||||
ac: 0100 addi s0,sp,128
|
||||
ae: 04090103 lb sp,64(s2)
|
||||
b2: 0100 addi s0,sp,128
|
||||
b4: 04090203 lb tp,64(s2)
|
||||
b8: 0100 addi s0,sp,128
|
||||
ba: 04090103 lb sp,64(s2)
|
||||
be: 0100 addi s0,sp,128
|
||||
c0: 04090103 lb sp,64(s2)
|
||||
c4: 0100 addi s0,sp,128
|
||||
c6: 04090203 lb tp,64(s2)
|
||||
ca: 0100 addi s0,sp,128
|
||||
cc: 04090503 lb a0,64(s2)
|
||||
d0: 0100 addi s0,sp,128
|
||||
d2: 04090103 lb sp,64(s2)
|
||||
d6: 0100 addi s0,sp,128
|
||||
d8: 04090103 lb sp,64(s2)
|
||||
dc: 0100 addi s0,sp,128
|
||||
de: 04090103 lb sp,64(s2)
|
||||
e2: 0100 addi s0,sp,128
|
||||
e4: 04090503 lb a0,64(s2)
|
||||
e8: 0100 addi s0,sp,128
|
||||
ea: 04090103 lb sp,64(s2)
|
||||
ee: 0100 addi s0,sp,128
|
||||
f0: 04090103 lb sp,64(s2)
|
||||
f4: 0100 addi s0,sp,128
|
||||
f6: 04090103 lb sp,64(s2)
|
||||
fa: 0100 addi s0,sp,128
|
||||
fc: 04090203 lb tp,64(s2)
|
||||
100: 0100 addi s0,sp,128
|
||||
102: 04090203 lb tp,64(s2)
|
||||
106: 0100 addi s0,sp,128
|
||||
108: 04090103 lb sp,64(s2)
|
||||
10c: 0100 addi s0,sp,128
|
||||
10e: 04090103 lb sp,64(s2)
|
||||
112: 0100 addi s0,sp,128
|
||||
114: 04090103 lb sp,64(s2)
|
||||
118: 0100 addi s0,sp,128
|
||||
11a: 04090403 lb s0,64(s2)
|
||||
11e: 0100 addi s0,sp,128
|
||||
120: 04090103 lb sp,64(s2)
|
||||
124: 0100 addi s0,sp,128
|
||||
126: 04090103 lb sp,64(s2)
|
||||
12a: 0100 addi s0,sp,128
|
||||
12c: 04090203 lb tp,64(s2)
|
||||
130: 0100 addi s0,sp,128
|
||||
132: 04090103 lb sp,64(s2)
|
||||
136: 0100 addi s0,sp,128
|
||||
138: 04090103 lb sp,64(s2)
|
||||
13c: 0100 addi s0,sp,128
|
||||
13e: 04090203 lb tp,64(s2)
|
||||
142: 0100 addi s0,sp,128
|
||||
144: 04090103 lb sp,64(s2)
|
||||
148: 0100 addi s0,sp,128
|
||||
14a: 04090203 lb tp,64(s2)
|
||||
14e: 0100 addi s0,sp,128
|
||||
150: 04090103 lb sp,64(s2)
|
||||
154: 0100 addi s0,sp,128
|
||||
156: 04090103 lb sp,64(s2)
|
||||
15a: 0100 addi s0,sp,128
|
||||
15c: 04090103 lb sp,64(s2)
|
||||
160: 0100 addi s0,sp,128
|
||||
162: 0409 addi s0,s0,2
|
||||
164: 0000 unimp
|
||||
166: 0101 addi sp,sp,0
|
||||
|
||||
Disassembly of section .debug_info:
|
||||
|
||||
00000000 <.debug_info>:
|
||||
0: 0022 c.slli zero,0x8
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0104 addi s1,sp,128
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 1114 addi a3,sp,160
|
||||
12: 0000 unimp
|
||||
14: 11c8 addi a0,sp,228
|
||||
16: 0000 unimp
|
||||
18: 0000 unimp
|
||||
1a: 0000 unimp
|
||||
1c: 0000002f 0x2f
|
||||
20: 0088 addi a0,sp,64
|
||||
22: 0000 unimp
|
||||
24: 8001 c.srli64 s0
|
||||
|
||||
Disassembly of section .debug_abbrev:
|
||||
|
||||
00000000 <.debug_abbrev>:
|
||||
0: 1101 addi sp,sp,-32
|
||||
2: 1000 addi s0,sp,32
|
||||
4: 1106 slli sp,sp,0x21
|
||||
6: 1201 addi tp,tp,-32
|
||||
8: 0301 addi t1,t1,0
|
||||
a: 1b0e slli s6,s6,0x23
|
||||
c: 250e fld fa0,192(sp)
|
||||
e: 130e slli t1,t1,0x23
|
||||
10: 0005 c.nop 1
|
||||
...
|
||||
|
||||
Disassembly of section .debug_aranges:
|
||||
|
||||
00000000 <.debug_aranges>:
|
||||
0: 001c 0x1c
|
||||
2: 0000 unimp
|
||||
4: 0002 c.slli64 zero
|
||||
6: 0000 unimp
|
||||
8: 0000 unimp
|
||||
a: 0004 0x4
|
||||
c: 0000 unimp
|
||||
e: 0000 unimp
|
||||
10: 1114 addi a3,sp,160
|
||||
12: 0000 unimp
|
||||
14: 00b4 addi a3,sp,72
|
||||
...
|
||||
|
||||
Disassembly of section .debug_str:
|
||||
|
||||
00000000 <.debug_str>:
|
||||
0: 2e2e fld ft8,200(sp)
|
||||
2: 2f2e2e2f 0x2f2e2e2f
|
||||
6: 2e2e fld ft8,200(sp)
|
||||
8: 722f2e2f 0x722f2e2f
|
||||
c: 7369 lui t1,0xffffa
|
||||
e: 672d7663 bgeu s10,s2,67a <printInt-0x986>
|
||||
12: 6c2f6363 bltu t5,sp,6d8 <printInt-0x928>
|
||||
16: 6269 lui tp,0x1a
|
||||
18: 2f636367 0x2f636367
|
||||
1c: 666e6f63 bltu t3,t1,69a <printInt-0x966>
|
||||
20: 6769 lui a4,0x1a
|
||||
22: 7369722f 0x7369722f
|
||||
26: 642f7663 bgeu t5,sp,672 <printInt-0x98e>
|
||||
2a: 7669 lui a2,0xffffa
|
||||
2c: 532e lw t1,232(sp)
|
||||
2e: 2f00 fld fs0,24(a4)
|
||||
30: 6f68 flw fa0,92(a4)
|
||||
32: 656d lui a0,0x1b
|
||||
34: 2d75772f 0x2d75772f
|
||||
38: 6971 lui s2,0x1c
|
||||
3a: 676e flw fa4,216(sp)
|
||||
3c: 312d jal fffffc66 <__heap_start+0xffffdc66>
|
||||
3e: 3735 jal ffffff6a <__heap_start+0xffffdf6a>
|
||||
40: 7369722f 0x7369722f
|
||||
44: 672d7663 bgeu s10,s2,6b0 <printInt-0x950>
|
||||
48: 756e flw fa0,248(sp)
|
||||
4a: 742d lui s0,0xfffeb
|
||||
4c: 636c6f6f jal t5,c6682 <__heap_start+0xc4682>
|
||||
50: 6168 flw fa0,68(a0)
|
||||
52: 6e69 lui t3,0x1a
|
||||
54: 6975622f 0x6975622f
|
||||
58: 646c flw fa1,76(s0)
|
||||
5a: 672d lui a4,0xb
|
||||
5c: 6e2d6363 bltu s10,sp,742 <printInt-0x8be>
|
||||
60: 7765 lui a4,0xffff9
|
||||
62: 696c flw fa1,84(a0)
|
||||
64: 2d62 fld fs10,24(sp)
|
||||
66: 67617473 csrrci s0,0x676,2
|
||||
6a: 3265 jal fffffa12 <__heap_start+0xffffda12>
|
||||
6c: 7369722f 0x7369722f
|
||||
70: 32337663 bgeu t1,gp,39c <printInt-0xc64>
|
||||
74: 752d lui a0,0xfffeb
|
||||
76: 6b6e flw fs6,216(sp)
|
||||
78: 6f6e flw ft10,216(sp)
|
||||
7a: 652d6e77 0x652d6e77
|
||||
7e: 666c flw fa1,76(a2)
|
||||
80: 62696c2f 0x62696c2f
|
||||
84: 00636367 0x636367
|
||||
88: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm
|
||||
8c: 5341 li t1,-16
|
||||
8e: 3220 fld fs0,96(a2)
|
||||
90: 332e fld ft6,232(sp)
|
||||
92: 2e31 jal 3ae <printInt-0xc52>
|
||||
94: 0031 c.nop 12
|
Reference in New Issue
Block a user