aboutsummaryrefslogtreecommitdiff
path: root/libgloss/riscv/crt0.S
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss/riscv/crt0.S')
-rw-r--r--libgloss/riscv/crt0.S4
1 files changed, 3 insertions, 1 deletions
diff --git a/libgloss/riscv/crt0.S b/libgloss/riscv/crt0.S
index f1c5419..54443e4 100644
--- a/libgloss/riscv/crt0.S
+++ b/libgloss/riscv/crt0.S
@@ -61,7 +61,9 @@ _start:
lw a0, 0(sp) # a0 = argc
addi a1, sp, __SIZEOF_POINTER__ # a1 = argv
- li a2, 0 # a2 = envp = NULL
+ slli a2, a0, 1 + __SIZEOF_POINTER__ >> 2
+ addi a2, a2, __SIZEOF_POINTER__
+ add a2, a2, a1 # a2 = envp
call main
tail exit
.size _start, .-_start