Skip to content

Commit 4f4a117

Browse files
stikonasjanneke
authored andcommitted
DRAFT riscv64: Fix arguments of main function in tcc.
* lib/linux/riscv64-mes-tcc/crt1.c Co-authored-by: Ekaitz Zarraga <ekaitz@elenq.tech>.
1 parent 9446e7a commit 4f4a117

File tree

1 file changed

+14
-0
lines changed
  • lib/linux/riscv64-mes-tcc

1 file changed

+14
-0
lines changed

Diff for: lib/linux/riscv64-mes-tcc/crt1.c

+14
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,21 @@ _start ()
4545
"addi a1, s0, 8\n\t" // a1 argv
4646
"mv a2, t0\n\t" // a2 envp
4747

48+
// Push arguments to stack
49+
"addi sp, sp, -32\n\t"
50+
"sd sp, a0, 8\n\t" // argc
51+
"sd sp, a1, 16\n\t" // argv
52+
"sd sp, a2, 24\n\t" // envp
53+
54+
4855
"jal ra, __init_io\n\t"
56+
57+
// Recover stack
58+
"ld a0, sp, 8\n\t" // a0 argc
59+
"ld a1, sp, 16\n\t" // a0 argc
60+
"ld a2, sp, 24\n\t" // a0 argc
61+
"addi sp, sp, 32\n\t"
62+
4963
"jal ra, main\n\t"
5064

5165
"li a7, 93\n\t" // SYS_exit

0 commit comments

Comments
 (0)