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