@@ -84,7 +84,18 @@ _abs_start:
la sp, _stack_start
lui t0, %hi(_hart_stack_size)
add t0, t0, %lo(_hart_stack_size)
+#ifdef __riscv_mul
mul t0, a2, t0
+#else
+ beqz a2, 2f // Jump if single-hart
+ mv t1, a2
+ mv t2, t0
+1:
+ add t0, t0, t2
+ addi t1, t1, -1
+ bnez t1, 1b
+2:
+#endif
sub sp, sp, t0
// Set frame pointer