mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-21 00:42:16 +00:00
66d857b08b
There is a lot of common code that could be shared between the m68k and m68knommu arch branches. It makes sense to merge the two branches into a single directory structure so that we can more easily share that common code. This is a brute force merge, based on a script from Stephen King <sfking@fdwdc.com>, which was originally written by Arnd Bergmann <arnd@arndb.de>. > The script was inspired by the script Sam Ravnborg used to merge the > includes from m68knommu. For those files common to both arches but > differing in content, the m68k version of the file is renamed to > <file>_mm.<ext> and the m68knommu version of the file is moved into the > corresponding m68k directory and renamed <file>_no.<ext> and a small > wrapper file <file>.<ext> is used to select between the two version. Files > that are common to both but don't differ are removed from the m68knommu > tree and files and directories that are unique to the m68knommu tree are > moved to the m68k tree. Finally, the arch/m68knommu tree is removed. > > To select between the the versions of the files, the wrapper uses > > #ifdef CONFIG_MMU > #include <file>_mm.<ext> > #else > #include <file>_no.<ext> > #endif On top of this file merge I have done a simplistic merge of m68k and m68knommu Kconfig, which primarily attempts to keep existing options and menus in place. Other than a handful of options being moved it produces identical .config outputs on m68k and m68knommu targets I tested it on. With this in place there is now quite a bit of scope for merge cleanups in future patches. Signed-off-by: Greg Ungerer <gerg@uclinux.org>
135 lines
2.6 KiB
ArmAsm
135 lines
2.6 KiB
ArmAsm
/*
|
|
* linux/arch/m68knommu/kernel/entry.S
|
|
*
|
|
* Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com)
|
|
* Copyright (C) 1998 D. Jeff Dionne <jeff@lineo.ca>,
|
|
* Kenneth Albanowski <kjahds@kjahds.com>,
|
|
* Copyright (C) 2000 Lineo Inc. (www.lineo.com)
|
|
*
|
|
* Based on:
|
|
*
|
|
* linux/arch/m68k/kernel/entry.S
|
|
*
|
|
* Copyright (C) 1991, 1992 Linus Torvalds
|
|
*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file README.legal in the main directory of this archive
|
|
* for more details.
|
|
*
|
|
* Linux/m68k support by Hamish Macdonald
|
|
*
|
|
* 68060 fixes by Jesper Skov
|
|
* ColdFire support by Greg Ungerer (gerg@snapgear.com)
|
|
* 5307 fixes by David W. Miller
|
|
* linux 2.4 support David McCullough <davidm@snapgear.com>
|
|
*/
|
|
|
|
#include <linux/sys.h>
|
|
#include <linux/linkage.h>
|
|
#include <asm/errno.h>
|
|
#include <asm/setup.h>
|
|
#include <asm/segment.h>
|
|
#include <asm/asm-offsets.h>
|
|
#include <asm/entry.h>
|
|
#include <asm/unistd.h>
|
|
|
|
.text
|
|
|
|
.globl buserr
|
|
.globl trap
|
|
.globl ret_from_exception
|
|
.globl ret_from_signal
|
|
.globl sys_fork
|
|
.globl sys_clone
|
|
.globl sys_vfork
|
|
|
|
ENTRY(buserr)
|
|
SAVE_ALL
|
|
moveq #-1,%d0
|
|
movel %d0,%sp@(PT_OFF_ORIG_D0)
|
|
movel %sp,%sp@- /* stack frame pointer argument */
|
|
jsr buserr_c
|
|
addql #4,%sp
|
|
jra ret_from_exception
|
|
|
|
ENTRY(trap)
|
|
SAVE_ALL
|
|
moveq #-1,%d0
|
|
movel %d0,%sp@(PT_OFF_ORIG_D0)
|
|
movel %sp,%sp@- /* stack frame pointer argument */
|
|
jsr trap_c
|
|
addql #4,%sp
|
|
jra ret_from_exception
|
|
|
|
#ifdef TRAP_DBG_INTERRUPT
|
|
|
|
.globl dbginterrupt
|
|
ENTRY(dbginterrupt)
|
|
SAVE_ALL
|
|
moveq #-1,%d0
|
|
movel %d0,%sp@(PT_OFF_ORIG_D0)
|
|
movel %sp,%sp@- /* stack frame pointer argument */
|
|
jsr dbginterrupt_c
|
|
addql #4,%sp
|
|
jra ret_from_exception
|
|
#endif
|
|
|
|
ENTRY(reschedule)
|
|
/* save top of frame */
|
|
pea %sp@
|
|
jbsr set_esp0
|
|
addql #4,%sp
|
|
pea ret_from_exception
|
|
jmp schedule
|
|
|
|
ENTRY(ret_from_fork)
|
|
movel %d1,%sp@-
|
|
jsr schedule_tail
|
|
addql #4,%sp
|
|
jra ret_from_exception
|
|
|
|
ENTRY(sys_fork)
|
|
SAVE_SWITCH_STACK
|
|
pea %sp@(SWITCH_STACK_SIZE)
|
|
jbsr m68k_fork
|
|
addql #4,%sp
|
|
RESTORE_SWITCH_STACK
|
|
rts
|
|
|
|
ENTRY(sys_vfork)
|
|
SAVE_SWITCH_STACK
|
|
pea %sp@(SWITCH_STACK_SIZE)
|
|
jbsr m68k_vfork
|
|
addql #4,%sp
|
|
RESTORE_SWITCH_STACK
|
|
rts
|
|
|
|
ENTRY(sys_clone)
|
|
SAVE_SWITCH_STACK
|
|
pea %sp@(SWITCH_STACK_SIZE)
|
|
jbsr m68k_clone
|
|
addql #4,%sp
|
|
RESTORE_SWITCH_STACK
|
|
rts
|
|
|
|
ENTRY(sys_sigreturn)
|
|
SAVE_SWITCH_STACK
|
|
jbsr do_sigreturn
|
|
RESTORE_SWITCH_STACK
|
|
rts
|
|
|
|
ENTRY(sys_rt_sigreturn)
|
|
SAVE_SWITCH_STACK
|
|
jbsr do_rt_sigreturn
|
|
RESTORE_SWITCH_STACK
|
|
rts
|
|
|
|
ENTRY(ret_from_user_signal)
|
|
moveq #__NR_sigreturn,%d0
|
|
trap #0
|
|
|
|
ENTRY(ret_from_user_rt_signal)
|
|
movel #__NR_rt_sigreturn,%d0
|
|
trap #0
|
|
|