Skip to content

Instantly share code, notes, and snippets.

@folknology
Created December 31, 2022 10:43
Show Gist options
  • Save folknology/0a775c347a4f6b774d476377ed1eb1c2 to your computer and use it in GitHub Desktop.
Save folknology/0a775c347a4f6b774d476377ed1eb1c2 to your computer and use it in GitHub Desktop.
target/riscv32imac-unknown-none-elf/release/firmware: file format elf32-littleriscv
Disassembly of section .text:
00000000 <_start>:
0: 000000b7 lui ra,0x0
4: 00808067 jr 8(ra) # 8 <_abs_start>
00000008 <_abs_start>:
8: 30405073 csrwi mie,0
c: 34405073 csrwi mip,0
10: 4081 li ra,0
12: 4101 li sp,0
14: 4181 li gp,0
16: 4201 li tp,0
18: 4281 li t0,0
1a: 4301 li t1,0
1c: 4381 li t2,0
1e: 4401 li s0,0
20: 4481 li s1,0
22: 4681 li a3,0
24: 4701 li a4,0
26: 4781 li a5,0
28: 4801 li a6,0
2a: 4881 li a7,0
2c: 4901 li s2,0
2e: 4981 li s3,0
30: 4a01 li s4,0
32: 4a81 li s5,0
34: 4b01 li s6,0
36: 4b81 li s7,0
38: 4c01 li s8,0
3a: 4c81 li s9,0
3c: 4d01 li s10,0
3e: 4d81 li s11,0
40: 4e01 li t3,0
42: 4e81 li t4,0
44: 4f01 li t5,0
46: 4f81 li t6,0
48: 10000197 auipc gp,0x10000
4c: 7b818193 addi gp,gp,1976 # 10000800 <__global_pointer$>
50: f14023f3 csrr t2,mhartid
54: 000002b7 lui t0,0x0
58: 00028293 mv t0,t0
5c: 0072f463 bgeu t0,t2,64 <.Lline_table_start3+0xa>
60: 2240006f j 284 <abort>
64: 10001117 auipc sp,0x10001
68: f9c10113 addi sp,sp,-100 # 10001000 <_sstack>
6c: 000012b7 lui t0,0x1
70: 80028293 addi t0,t0,-2048 # 800 <_hart_stack_size>
74: 025382b3 mul t0,t2,t0
78: 40510133 sub sp,sp,t0
7c: 00010433 add s0,sp,zero
80: 0040006f j 84 <_start_rust>
00000084 <_start_rust>:
84: 1141 addi sp,sp,-16
86: c606 sw ra,12(sp)
88: f1402573 csrr a0,mhartid
8c: 00000097 auipc ra,0x0
90: 128080e7 jalr 296(ra) # 1b4 <default_mp_hook>
94: c12d beqz a0,f6 <_start_rust+0x72>
96: 00000097 auipc ra,0x0
9a: 11c080e7 jalr 284(ra) # 1b2 <default_pre_init>
9e: 10000537 lui a0,0x10000
a2: 00050513 mv a0,a0
a6: 100005b7 lui a1,0x10000
aa: 00058593 mv a1,a1
ae: 00a5f763 bgeu a1,a0,bc <_start_rust+0x38>
b2: 0005a023 sw zero,0(a1) # 10000000 <_ebss>
b6: 0591 addi a1,a1,4
b8: fea5ede3 bltu a1,a0,b2 <_start_rust+0x2e>
bc: 10000537 lui a0,0x10000
c0: 00050593 mv a1,a0
c4: 10000537 lui a0,0x10000
c8: 00050513 mv a0,a0
cc: 02b57563 bgeu a0,a1,f6 <_start_rust+0x72>
d0: 00450613 addi a2,a0,4 # 10000004 <_ebss+0x4>
d4: 00b66363 bltu a2,a1,da <_start_rust+0x56>
d8: 85b2 mv a1,a2
da: fff54613 not a2,a0
de: 95b2 add a1,a1,a2
e0: 0591 addi a1,a1,4
e2: ffc5f613 andi a2,a1,-4
e6: 000005b7 lui a1,0x0
ea: 2b858593 addi a1,a1,696 # 2b8 <_sidata>
ee: 00000097 auipc ra,0x0
f2: 0e0080e7 jalr 224(ra) # 1ce <memcpy>
f6: 00000097 auipc ra,0x0
fa: 0ca080e7 jalr 202(ra) # 1c0 <default_setup_interrupts>
fe: 00000097 auipc ra,0x0
102: 090080e7 jalr 144(ra) # 18e <main>
...
00000108 <_start_trap>:
108: 7139 addi sp,sp,-64
10a: c006 sw ra,0(sp)
10c: c216 sw t0,4(sp)
10e: c41a sw t1,8(sp)
110: c61e sw t2,12(sp)
112: c872 sw t3,16(sp)
114: ca76 sw t4,20(sp)
116: cc7a sw t5,24(sp)
118: ce7e sw t6,28(sp)
11a: d02a sw a0,32(sp)
11c: d22e sw a1,36(sp)
11e: d432 sw a2,40(sp)
120: d636 sw a3,44(sp)
122: d83a sw a4,48(sp)
124: da3e sw a5,52(sp)
126: dc42 sw a6,56(sp)
128: de46 sw a7,60(sp)
12a: 00010533 add a0,sp,zero
12e: 02a000ef jal ra,158 <_start_trap_rust>
132: 4082 lw ra,0(sp)
134: 4292 lw t0,4(sp)
136: 4322 lw t1,8(sp)
138: 43b2 lw t2,12(sp)
13a: 4e42 lw t3,16(sp)
13c: 4ed2 lw t4,20(sp)
13e: 4f62 lw t5,24(sp)
140: 4ff2 lw t6,28(sp)
142: 5502 lw a0,32(sp)
144: 5592 lw a1,36(sp)
146: 5622 lw a2,40(sp)
148: 56b2 lw a3,44(sp)
14a: 5742 lw a4,48(sp)
14c: 57d2 lw a5,52(sp)
14e: 5862 lw a6,56(sp)
150: 58f2 lw a7,60(sp)
152: 6121 addi sp,sp,64
154: 30200073 mret
00000158 <_start_trap_rust>:
158: 342025f3 csrr a1,mcause
15c: 0005c663 bltz a1,168 <_start_trap_rust+0x10>
160: 00000317 auipc t1,0x0
164: 04e30067 jr 78(t1) # 1ae <DefaultExceptionHandler>
168: 00159513 slli a0,a1,0x1
16c: 8105 srli a0,a0,0x1
16e: 45b1 li a1,12
170: 00b57b63 bgeu a0,a1,186 <_start_trap_rust+0x2e>
174: 050a slli a0,a0,0x2
176: 000005b7 lui a1,0x0
17a: 28858593 addi a1,a1,648 # 288 <__INTERRUPTS>
17e: 952e add a0,a0,a1
180: 411c lw a5,0(a0)
182: c391 beqz a5,186 <_start_trap_rust+0x2e>
184: 8782 jr a5
186: 00000317 auipc t1,0x0
18a: 02a30067 jr 42(t1) # 1b0 <DefaultInterruptHandler>
0000018e <main>:
18e: b1000537 lui a0,0xb1000
192: 4605 li a2,1
194: c150 sw a2,4(a0)
196: 000495b7 lui a1,0x49
19a: 3e058593 addi a1,a1,992 # 493e0 <_hart_stack_size+0x48be0>
19e: 0605 addi a2,a2,1
1a0: c110 sw a2,0(a0)
1a2: 862e mv a2,a1
1a4: 0001 nop
1a6: 167d addi a2,a2,-1
1a8: fe75 bnez a2,1a4 <main+0x16>
1aa: 4110 lw a2,0(a0)
1ac: bfcd j 19e <main+0x10>
000001ae <DefaultExceptionHandler>:
1ae: a001 j 1ae <DefaultExceptionHandler>
000001b0 <DefaultInterruptHandler>:
1b0: a001 j 1b0 <DefaultInterruptHandler>
000001b2 <default_pre_init>:
1b2: 8082 ret
000001b4 <default_mp_hook>:
1b4: c501 beqz a0,1bc <default_mp_hook+0x8>
1b6: 10500073 wfi
1ba: bff5 j 1b6 <default_mp_hook+0x2>
1bc: 4505 li a0,1
1be: 8082 ret
000001c0 <default_setup_interrupts>:
1c0: 00000537 lui a0,0x0
1c4: 10850513 addi a0,a0,264 # 108 <_start_trap>
1c8: 30551073 csrw mtvec,a0
1cc: 8082 ret
000001ce <memcpy>:
1ce: 00000317 auipc t1,0x0
1d2: 00830067 jr 8(t1) # 1d6 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E>
000001d6 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E>:
1d6: 46bd li a3,15
1d8: 06c6fa63 bgeu a3,a2,24c <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0x76>
1dc: 40a006b3 neg a3,a0
1e0: 0036f813 andi a6,a3,3
1e4: 010503b3 add t2,a0,a6
1e8: 00080c63 beqz a6,200 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0x2a>
1ec: 87aa mv a5,a0
1ee: 86ae mv a3,a1
1f0: 00068703 lb a4,0(a3)
1f4: 00e78023 sb a4,0(a5)
1f8: 0785 addi a5,a5,1
1fa: 0685 addi a3,a3,1
1fc: fe77eae3 bltu a5,t2,1f0 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0x1a>
200: 010588b3 add a7,a1,a6
204: 41060833 sub a6,a2,a6
208: ffc87293 andi t0,a6,-4
20c: 0038f593 andi a1,a7,3
210: 005386b3 add a3,t2,t0
214: cd9d beqz a1,252 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0x7c>
216: 04505863 blez t0,266 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0x90>
21a: 00359313 slli t1,a1,0x3
21e: ffc8f713 andi a4,a7,-4
222: 4310 lw a2,0(a4)
224: 406005b3 neg a1,t1
228: 0185fe13 andi t3,a1,24
22c: 00470793 addi a5,a4,4
230: 4398 lw a4,0(a5)
232: 00665633 srl a2,a2,t1
236: 01c715b3 sll a1,a4,t3
23a: 8dd1 or a1,a1,a2
23c: 00b3a023 sw a1,0(t2)
240: 0391 addi t2,t2,4
242: 0791 addi a5,a5,4
244: 863a mv a2,a4
246: fed3e5e3 bltu t2,a3,230 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0x5a>
24a: a831 j 266 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0x90>
24c: 86aa mv a3,a0
24e: e20d bnez a2,270 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0x9a>
250: a80d j 282 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0xac>
252: 00505a63 blez t0,266 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0x90>
256: 85c6 mv a1,a7
258: 4190 lw a2,0(a1)
25a: 00c3a023 sw a2,0(t2)
25e: 0391 addi t2,t2,4
260: 0591 addi a1,a1,4
262: fed3ebe3 bltu t2,a3,258 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0x82>
266: 005885b3 add a1,a7,t0
26a: 00387613 andi a2,a6,3
26e: ca11 beqz a2,282 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0xac>
270: 9636 add a2,a2,a3
272: 00058703 lb a4,0(a1)
276: 00e68023 sb a4,0(a3)
27a: 0685 addi a3,a3,1
27c: 0585 addi a1,a1,1
27e: fec6eae3 bltu a3,a2,272 <_ZN17compiler_builtins3mem6memcpy17h4d31ea71c18a03c5E+0x9c>
282: 8082 ret
00000284 <abort>:
284: a001 j 284 <abort>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment