Blame view
examples/api/crt0.S
1.01 KB
83d290c56
|
1 |
/* SPDX-License-Identifier: GPL-2.0+ */ |
500856eb1
|
2 3 4 5 |
/* * (C) Copyright 2007 Semihalf * * Written by: Rafal Jaworowski <raj@semihalf.com> |
500856eb1
|
6 7 8 9 10 |
*/ #if defined(CONFIG_PPC) .text |
500856eb1
|
11 12 |
.globl _start _start: |
b84d7d8f1
|
13 14 15 |
lis %r11, search_hint@ha addi %r11, %r11, search_hint@l stw %r1, 0(%r11) |
500856eb1
|
16 17 18 19 20 21 22 23 24 25 |
b main .globl syscall syscall: lis %r11, syscall_ptr@ha addi %r11, %r11, syscall_ptr@l lwz %r11, 0(%r11) mtctr %r11 bctr |
7fb6c4f9b
|
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#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] |
7c6042310
|
41 |
#elif defined(CONFIG_MIPS) |
78757d52c
|
42 |
#include <asm/asm.h> |
7c6042310
|
43 44 45 46 |
.text .globl __start .ent __start __start: |
78757d52c
|
47 |
PTR_S $sp, search_hint |
7c6042310
|
48 49 50 51 52 53 |
b main .end __start .globl syscall .ent syscall syscall: |
78757d52c
|
54 55 |
PTR_S $ra, return_addr PTR_L $t9, syscall_ptr |
7c6042310
|
56 57 |
jalr $t9 nop |
78757d52c
|
58 |
PTR_L $ra, return_addr |
7c6042310
|
59 60 61 62 63 |
jr $ra nop .end syscall return_addr: |
78757d52c
|
64 |
.align 8 |
7c6042310
|
65 |
.long 0 |
b84d7d8f1
|
66 67 68 |
#else #error No support for this arch! #endif |
500856eb1
|
69 70 71 |
.globl syscall_ptr syscall_ptr: |
78757d52c
|
72 |
.align 8 |
500856eb1
|
73 |
.long 0 |
b84d7d8f1
|
74 75 76 77 |
.globl search_hint search_hint: .long 0 |