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