/*1* linux/arch/m68knommu/kernel/entry.S2*3* Copyright (C) 1999-2002, Greg Ungerer ([email protected])4* Copyright (C) 1998 D. Jeff Dionne <[email protected]>,5* Kenneth Albanowski <[email protected]>,6* Copyright (C) 2000 Lineo Inc. (www.lineo.com)7*8* Based on:9*10* linux/arch/m68k/kernel/entry.S11*12* Copyright (C) 1991, 1992 Linus Torvalds13*14* This file is subject to the terms and conditions of the GNU General Public15* License. See the file README.legal in the main directory of this archive16* for more details.17*18* Linux/m68k support by Hamish Macdonald19*20* 68060 fixes by Jesper Skov21* ColdFire support by Greg Ungerer ([email protected])22* 5307 fixes by David W. Miller23* linux 2.4 support David McCullough <[email protected]>24*/2526#include <linux/linkage.h>27#include <asm/errno.h>28#include <asm/setup.h>29#include <asm/segment.h>30#include <asm/asm-offsets.h>31#include <asm/entry.h>32#include <asm/unistd.h>3334.text3536.globl buserr37.globl trap38.globl ret_from_exception39.globl ret_from_signal40.globl sys_fork41.globl sys_clone42.globl sys_vfork4344ENTRY(buserr)45SAVE_ALL46moveq #-1,%d047movel %d0,%sp@(PT_OFF_ORIG_D0)48movel %sp,%sp@- /* stack frame pointer argument */49jsr buserr_c50addql #4,%sp51jra ret_from_exception5253ENTRY(trap)54SAVE_ALL55moveq #-1,%d056movel %d0,%sp@(PT_OFF_ORIG_D0)57movel %sp,%sp@- /* stack frame pointer argument */58jsr trap_c59addql #4,%sp60jra ret_from_exception6162#ifdef TRAP_DBG_INTERRUPT6364.globl dbginterrupt65ENTRY(dbginterrupt)66SAVE_ALL67moveq #-1,%d068movel %d0,%sp@(PT_OFF_ORIG_D0)69movel %sp,%sp@- /* stack frame pointer argument */70jsr dbginterrupt_c71addql #4,%sp72jra ret_from_exception73#endif7475ENTRY(reschedule)76/* save top of frame */77pea %sp@78jbsr set_esp079addql #4,%sp80pea ret_from_exception81jmp schedule8283ENTRY(ret_from_fork)84movel %d1,%sp@-85jsr schedule_tail86addql #4,%sp87jra ret_from_exception8889ENTRY(sys_fork)90SAVE_SWITCH_STACK91pea %sp@(SWITCH_STACK_SIZE)92jbsr m68k_fork93addql #4,%sp94RESTORE_SWITCH_STACK95rts9697ENTRY(sys_vfork)98SAVE_SWITCH_STACK99pea %sp@(SWITCH_STACK_SIZE)100jbsr m68k_vfork101addql #4,%sp102RESTORE_SWITCH_STACK103rts104105ENTRY(sys_clone)106SAVE_SWITCH_STACK107pea %sp@(SWITCH_STACK_SIZE)108jbsr m68k_clone109addql #4,%sp110RESTORE_SWITCH_STACK111rts112113ENTRY(sys_sigreturn)114SAVE_SWITCH_STACK115jbsr do_sigreturn116RESTORE_SWITCH_STACK117rts118119ENTRY(sys_rt_sigreturn)120SAVE_SWITCH_STACK121jbsr do_rt_sigreturn122RESTORE_SWITCH_STACK123rts124125ENTRY(ret_from_user_signal)126moveq #__NR_sigreturn,%d0127trap #0128129ENTRY(ret_from_user_rt_signal)130movel #__NR_rt_sigreturn,%d0131trap #0132133134135