GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* (C) Copyright 2007 Semihalf
|
||||
*
|
||||
* Written by: Rafal Jaworowski <raj@semihalf.com>
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_PPC)
|
||||
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
lis %r11, search_hint@ha
|
||||
addi %r11, %r11, search_hint@l
|
||||
stw %r1, 0(%r11)
|
||||
b main
|
||||
|
||||
|
||||
.globl syscall
|
||||
syscall:
|
||||
lis %r11, syscall_ptr@ha
|
||||
addi %r11, %r11, syscall_ptr@l
|
||||
lwz %r11, 0(%r11)
|
||||
mtctr %r11
|
||||
bctr
|
||||
|
||||
#elif defined(CONFIG_ARM)
|
||||
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
ldr ip, =search_hint
|
||||
str sp, [ip]
|
||||
b main
|
||||
|
||||
|
||||
.globl syscall
|
||||
syscall:
|
||||
ldr ip, =syscall_ptr
|
||||
ldr pc, [ip]
|
||||
|
||||
#elif defined(CONFIG_MIPS)
|
||||
#include <asm/asm.h>
|
||||
.text
|
||||
.globl __start
|
||||
.ent __start
|
||||
__start:
|
||||
PTR_S $sp, search_hint
|
||||
b main
|
||||
.end __start
|
||||
|
||||
.globl syscall
|
||||
.ent syscall
|
||||
syscall:
|
||||
PTR_S $ra, return_addr
|
||||
PTR_L $t9, syscall_ptr
|
||||
jalr $t9
|
||||
nop
|
||||
PTR_L $ra, return_addr
|
||||
jr $ra
|
||||
nop
|
||||
.end syscall
|
||||
|
||||
return_addr:
|
||||
.align 8
|
||||
.long 0
|
||||
#else
|
||||
#error No support for this arch!
|
||||
#endif
|
||||
|
||||
.globl syscall_ptr
|
||||
syscall_ptr:
|
||||
.align 8
|
||||
.long 0
|
||||
|
||||
.globl search_hint
|
||||
search_hint:
|
||||
.long 0
|
||||
Reference in New Issue
Block a user