1*83d290c5STom Rini/* SPDX-License-Identifier: GPL-2.0+ */ 2d4abc757SPeter Tyser/* 3d4abc757SPeter Tyser * (C) Copyright 2007 Semihalf 4d4abc757SPeter Tyser * 5d4abc757SPeter Tyser * Written by: Rafal Jaworowski <raj@semihalf.com> 6d4abc757SPeter Tyser */ 7d4abc757SPeter Tyser 8d4abc757SPeter Tyser#if defined(CONFIG_PPC) 9d4abc757SPeter Tyser 10d4abc757SPeter Tyser .text 11d4abc757SPeter Tyser .globl _start 12d4abc757SPeter Tyser_start: 13d4abc757SPeter Tyser lis %r11, search_hint@ha 14d4abc757SPeter Tyser addi %r11, %r11, search_hint@l 15d4abc757SPeter Tyser stw %r1, 0(%r11) 16d4abc757SPeter Tyser b main 17d4abc757SPeter Tyser 18d4abc757SPeter Tyser 19d4abc757SPeter Tyser .globl syscall 20d4abc757SPeter Tysersyscall: 21d4abc757SPeter Tyser lis %r11, syscall_ptr@ha 22d4abc757SPeter Tyser addi %r11, %r11, syscall_ptr@l 23d4abc757SPeter Tyser lwz %r11, 0(%r11) 24d4abc757SPeter Tyser mtctr %r11 25d4abc757SPeter Tyser bctr 26d4abc757SPeter Tyser 27d4abc757SPeter Tyser#elif defined(CONFIG_ARM) 28d4abc757SPeter Tyser 29d4abc757SPeter Tyser .text 30d4abc757SPeter Tyser .globl _start 31d4abc757SPeter Tyser_start: 32d4abc757SPeter Tyser ldr ip, =search_hint 33d4abc757SPeter Tyser str sp, [ip] 34d4abc757SPeter Tyser b main 35d4abc757SPeter Tyser 36d4abc757SPeter Tyser 37d4abc757SPeter Tyser .globl syscall 38d4abc757SPeter Tysersyscall: 39d4abc757SPeter Tyser ldr ip, =syscall_ptr 40d4abc757SPeter Tyser ldr pc, [ip] 41d4abc757SPeter Tyser 427c604231SStanislav Galabov#elif defined(CONFIG_MIPS) 4378757d52SStanislav Galabov#include <asm/asm.h> 447c604231SStanislav Galabov .text 457c604231SStanislav Galabov .globl __start 467c604231SStanislav Galabov .ent __start 477c604231SStanislav Galabov__start: 4878757d52SStanislav Galabov PTR_S $sp, search_hint 497c604231SStanislav Galabov b main 507c604231SStanislav Galabov .end __start 517c604231SStanislav Galabov 527c604231SStanislav Galabov .globl syscall 537c604231SStanislav Galabov .ent syscall 547c604231SStanislav Galabovsyscall: 5578757d52SStanislav Galabov PTR_S $ra, return_addr 5678757d52SStanislav Galabov PTR_L $t9, syscall_ptr 577c604231SStanislav Galabov jalr $t9 587c604231SStanislav Galabov nop 5978757d52SStanislav Galabov PTR_L $ra, return_addr 607c604231SStanislav Galabov jr $ra 617c604231SStanislav Galabov nop 627c604231SStanislav Galabov .end syscall 637c604231SStanislav Galabov 647c604231SStanislav Galabovreturn_addr: 6578757d52SStanislav Galabov .align 8 667c604231SStanislav 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: 7378757d52SStanislav Galabov .align 8 74d4abc757SPeter Tyser .long 0 75d4abc757SPeter Tyser 76d4abc757SPeter Tyser .globl search_hint 77d4abc757SPeter Tysersearch_hint: 78d4abc757SPeter Tyser .long 0 79