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 437c604231SStanislav Galabov#elif defined(CONFIG_MIPS) 44*78757d52SStanislav Galabov#include <asm/asm.h> 457c604231SStanislav Galabov .text 467c604231SStanislav Galabov .globl __start 477c604231SStanislav Galabov .ent __start 487c604231SStanislav Galabov__start: 49*78757d52SStanislav Galabov PTR_S $sp, search_hint 507c604231SStanislav Galabov b main 517c604231SStanislav Galabov .end __start 527c604231SStanislav Galabov 537c604231SStanislav Galabov .globl syscall 547c604231SStanislav Galabov .ent syscall 557c604231SStanislav Galabovsyscall: 56*78757d52SStanislav Galabov PTR_S $ra, return_addr 57*78757d52SStanislav Galabov PTR_L $t9, syscall_ptr 587c604231SStanislav Galabov jalr $t9 597c604231SStanislav Galabov nop 60*78757d52SStanislav Galabov PTR_L $ra, return_addr 617c604231SStanislav Galabov jr $ra 627c604231SStanislav Galabov nop 637c604231SStanislav Galabov .end syscall 647c604231SStanislav Galabov 657c604231SStanislav Galabovreturn_addr: 66*78757d52SStanislav Galabov .align 8 677c604231SStanislav Galabov .long 0 68d4abc757SPeter Tyser#else 69d4abc757SPeter Tyser#error No support for this arch! 70d4abc757SPeter Tyser#endif 71d4abc757SPeter Tyser 72d4abc757SPeter Tyser .globl syscall_ptr 73d4abc757SPeter Tysersyscall_ptr: 74*78757d52SStanislav Galabov .align 8 75d4abc757SPeter Tyser .long 0 76d4abc757SPeter Tyser 77d4abc757SPeter Tyser .globl search_hint 78d4abc757SPeter Tysersearch_hint: 79d4abc757SPeter Tyser .long 0 80