/* Syscalls for MIPS ABI O32 : * - WARNING! there's always a delayed slot! * - WARNING again, the syntax is different, registers take a '$' and numbers * do not. * - registers are 32-bit * - stack is 8-byte aligned * - syscall number is passed in v0 (starts at 0xfa0). * - arguments are in a0, a1, a2, a3, then the stack. The caller needs to * leave some room in the stack for the callee to save a0..a3 if needed. * - Many registers are clobbered, in fact only a0..a2 and s0..s8 are * preserved. See: https://www.linux-mips.org/wiki/Syscall as well as * scall32-o32.S in the kernel sources. * - the system call is performed by calling "syscall" * - syscall return comes in v0, and register a3 needs to be checked to know * if an error occurred, in which case errno is in v0. * - the arguments are cast to long and assigned into the target registers * which are then simply passed as registers to the asm code, so that we * don't have to experience issues with register constraints. * * Syscalls for MIPS ABI N32, same as ABI O32 with the following differences : * - arguments are in a0, a1, a2, a3, t0, t1, t2, t3. * t0..t3 are also known as a4..a7. * - stack is 16-byte aligned
*/
/* startup code, note that it's called __start on MIPS */ void __start(void); void __attribute__((weak, noreturn)) __nolibc_entrypoint __no_stack_protector __start(void)
{
__asm__ volatile ( "move $a0, $sp\n"/* save stack pointer to $a0, as arg1 of _start_c */ #ifdefined(_ABIO32) "addiu $sp, $sp, -16\n"/* the callee expects to save a0..a3 there */ #endif/* _ABIO32 */ "lui $t9, %hi(_start_c)\n"/* ABI requires current function address in $t9 */ "ori $t9, %lo(_start_c)\n" #ifdefined(_ABI64) "lui $t0, %highest(_start_c)\n" "ori $t0, %higher(_start_c)\n" "dsll $t0, 0x20\n" "or $t9, $t0\n" #endif/* _ABI64 */ "jalr $t9\n"/* transfer to c runtime */
);
__nolibc_entrypoint_epilogue();
}
#endif/* _NOLIBC_ARCH_MIPS_H */
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.27 Sekunden
(vorverarbeitet am 2026-04-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.