Add register prefixes.
This commit is contained in:
parent
8770ff2900
commit
db27e55251
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: alloc.s,v 1.5 2001/02/26 14:58:36 is Exp $ */
|
||||
/* $NetBSD: alloc.s,v 1.6 2001/03/01 21:32:53 is Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1996 The NetBSD Foundation, Inc.
|
||||
|
@ -43,19 +43,19 @@
|
|||
#include <machine/asm.h>
|
||||
|
||||
ENTRY_NOPROFILE(alloc)
|
||||
movl a6,sp@-
|
||||
movl pc@(_C_LABEL(SysBase):w),a6
|
||||
movl sp@(8),d0
|
||||
movl #0x50001,d1 | MEMF_CLEAR|MEMF_REVERSE|MEMF_PUBLIC for now.
|
||||
jsr a6@(-0x2ac) | AllocVec
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_C_LABEL(SysBase):w),%a6
|
||||
movl %sp@(8),%d0
|
||||
movl #0x50001,%d1 | MEMF_CLEAR|MEMF_REVERSE|MEMF_PUBLIC for now.
|
||||
jsr %a6@(-0x2ac) | AllocVec
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
ENTRY_NOPROFILE(free)
|
||||
movl a6,sp@-
|
||||
movl pc@(_C_LABEL(SysBase):w),a6
|
||||
movl sp@(8),a1
|
||||
jsr a6@(-0x2b2) | FreeVec
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_C_LABEL(SysBase):w),%a6
|
||||
movl %sp@(8),%a1
|
||||
jsr %a6@(-0x2b2) | FreeVec
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ashrdi3.s,v 1.4 2001/02/26 14:58:36 is Exp $ */
|
||||
/* $NetBSD: ashrdi3.s,v 1.5 2001/03/01 21:32:53 is Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1996 The NetBSD Foundation, Inc.
|
||||
|
@ -39,14 +39,14 @@
|
|||
#include <machine/asm.h>
|
||||
|
||||
ENTRY_NOPROFILE(__ashrdi3)
|
||||
movl d2,sp@- | 0 reg, 1 pc, 2..4 parameters
|
||||
movml sp@(8),d0-d2
|
||||
movl %d2,sp@- | 0 reg, 1 %pc, 2..4 parameters
|
||||
movml %sp@(8),%d0-d2
|
||||
jra L2
|
||||
L1:
|
||||
asrl #1,d0
|
||||
roxrl #1,d1
|
||||
asrl #1,%d0
|
||||
roxrl #1,%d1
|
||||
L2:
|
||||
dbra d2,L1
|
||||
dbra %d2,L1
|
||||
|
||||
movl sp@+,d2
|
||||
movl %sp@+,%d2
|
||||
rts
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: bbstart.s,v 1.6 2001/02/26 14:58:36 is Exp $ */
|
||||
/* $NetBSD: bbstart.s,v 1.7 2001/03/01 21:32:53 is Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1996 The NetBSD Foundation, Inc.
|
||||
|
@ -80,46 +80,46 @@ Lreltab:
|
|||
* autoload
|
||||
*/
|
||||
Lautoload:
|
||||
movl a6,sp@- |SysBase
|
||||
movl a1,sp@- |IORequest
|
||||
movl %a6,sp@- |SysBase
|
||||
movl %a1,sp@- |IORequest
|
||||
|
||||
movl #AUTOLOAD,d0 |Howmuch
|
||||
movl d0,a1@(IOlen) | for the actual read...
|
||||
movl #0x10001,d1 |MEMF_CLEAR|MEMF_PUBLIC
|
||||
jsr a6@(LVOAllocMem)
|
||||
movl sp@+,a1 |IORequest
|
||||
movl sp@+,a6 |SysBase
|
||||
orl d0,d0
|
||||
movl #AUTOLOAD,%d0 |Howmuch
|
||||
movl %d0,a1@(IOlen) | for the actual read...
|
||||
movl #0x10001,%d1 |MEMF_CLEAR|MEMF_PUBLIC
|
||||
jsr %a6@(LVOAllocMem)
|
||||
movl %sp@+,%a1 |IORequest
|
||||
movl %sp@+,%a6 |SysBase
|
||||
orl %d0,d0
|
||||
jne Lgotmem
|
||||
movql #1,d0
|
||||
movql #1,%d0
|
||||
rts
|
||||
|
||||
Lgotmem:
|
||||
movl d0,sp@- |Address
|
||||
movl a1@(IOoff),sp@- |Old offset
|
||||
movl a1,sp@-
|
||||
movl a6,sp@-
|
||||
movl %d0,sp@- |Address
|
||||
movl %a1@(IOoff),%sp@- |Old offset
|
||||
movl %a1,sp@-
|
||||
movl %a6,sp@-
|
||||
|
||||
/* we've set IOlen above */
|
||||
movl d0,a1@(IObuf)
|
||||
movw #Cmd_Rd,a1@(IOcmd)
|
||||
jsr a6@(LVODoIO)
|
||||
movl %d0,a1@(IObuf)
|
||||
movw #Cmd_Rd,%a1@(IOcmd)
|
||||
jsr %a6@(LVODoIO)
|
||||
|
||||
movl sp@+,a6
|
||||
movl sp@+,a1
|
||||
movl sp@+,a1@(IOoff)
|
||||
movl %sp@+,%a6
|
||||
movl %sp@+,%a1
|
||||
movl %sp@+,%a1@(IOoff)
|
||||
|
||||
tstb a1@(IOerr)
|
||||
tstb %a1@(IOerr)
|
||||
jne Lioerr
|
||||
addl #Lrelocate-Lzero,sp@
|
||||
addl #Lrelocate-Lzero,%sp@
|
||||
|
||||
movl a6,sp@-
|
||||
jsr a6@(LVOCacheClearU)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
jsr %a6@(LVOCacheClearU)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
Lioerr:
|
||||
movql #1,d0
|
||||
addql #4,sp
|
||||
movql #1,%d0
|
||||
addql #4,%sp
|
||||
rts
|
||||
#endif
|
||||
|
||||
|
@ -139,42 +139,42 @@ Lioerr:
|
|||
*/
|
||||
|
||||
Lrelocate:
|
||||
lea pc@(Lzero),a0
|
||||
movl a0,d1
|
||||
movw pc@(Lreltab),a2
|
||||
addl d1,a2
|
||||
lea %pc@(Lzero),%a0
|
||||
movl %a0,d1
|
||||
movw %pc@(Lreltab),%a2
|
||||
addl %d1,a2
|
||||
jra Loopend
|
||||
|
||||
Loopw:
|
||||
clrw a2@+
|
||||
movl d1,a0 | for a variant with relative words, erase this line
|
||||
clrw %a2@+
|
||||
movl %d1,a0 | for a variant with relative words, erase this line
|
||||
Loopb:
|
||||
addl d0,a0
|
||||
addl d1,a0@
|
||||
addl %d0,a0
|
||||
addl %d1,a0@
|
||||
Loopend:
|
||||
movq #0,d0
|
||||
movb a2@,d0
|
||||
clrb a2@+ | bfclr a2@+{0:8} is still two shorts
|
||||
tstb d0 | we could save one short by using casb d0,d0,a2@+
|
||||
movq #0,%d0
|
||||
movb %a2@,%d0
|
||||
clrb %a2@+ | bfclr %a2@+{0:8} is still two shorts
|
||||
tstb %d0 | we could save one short by using casb %d0,d0,%a2@+
|
||||
jne Loopb
|
||||
|
||||
movw a2@,d0
|
||||
movw %a2@,%d0
|
||||
jne Loopw
|
||||
|
||||
Lendtab:
|
||||
movl a6,sp@-
|
||||
jsr a6@(LVOCacheClearU)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
jsr %a6@(LVOCacheClearU)
|
||||
movl %sp@+,%a6
|
||||
|
||||
/* We are relocated. Now it is safe to initialize _SysBase: */
|
||||
|
||||
movl a6,_SysBase
|
||||
movl %a6,_SysBase
|
||||
|
||||
movl a1,sp@-
|
||||
movl %a1,sp@-
|
||||
bsr _C_LABEL(pain)
|
||||
|
||||
Lerr:
|
||||
movq #1,d0
|
||||
movq #1,%d0
|
||||
rts
|
||||
|
||||
.comm _C_LABEL(SysBase),4
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: bcopy.s,v 1.5 2001/02/26 14:58:37 is Exp $ */
|
||||
/* $NetBSD: bcopy.s,v 1.6 2001/03/01 21:32:53 is Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1996 The NetBSD Foundation, Inc.
|
||||
|
@ -46,29 +46,29 @@
|
|||
.even
|
||||
|
||||
ENTRY_NOPROFILE(memcpy)
|
||||
movel sp@(4),a0
|
||||
movel sp@(8),a1
|
||||
movel %sp@(4),%a0
|
||||
movel %sp@(8),%a1
|
||||
jra Lcpy
|
||||
|
||||
ENTRY_NOPROFILE(bcopy)
|
||||
movel sp@(4),a1
|
||||
movel sp@(8),a0
|
||||
movel %sp@(4),%a1
|
||||
movel %sp@(8),%a0
|
||||
Lcpy:
|
||||
movel sp@(12),d0
|
||||
movel %sp@(12),%d0
|
||||
jeq L1
|
||||
cmpl a1,a0
|
||||
cmpl %a1,a0
|
||||
jcc L3
|
||||
L4:
|
||||
moveb a1@+,a0@+
|
||||
subql #1,d0
|
||||
moveb %a1@+,%a0@+
|
||||
subql #1,%d0
|
||||
jne L4
|
||||
rts
|
||||
L3:
|
||||
addl d0,a1
|
||||
addl d0,a0
|
||||
addl %d0,a1
|
||||
addl %d0,a0
|
||||
L9:
|
||||
moveb a1@-,a0@-
|
||||
subql #1,d0
|
||||
moveb %a1@-,%a0@-
|
||||
subql #1,%d0
|
||||
jne L9
|
||||
L1:
|
||||
rts
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: bzero.s,v 1.4 2001/02/26 14:58:37 is Exp $ */
|
||||
/* $NetBSD: bzero.s,v 1.5 2001/03/01 21:32:53 is Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1997 The NetBSD Foundation, Inc.
|
||||
|
@ -42,12 +42,12 @@
|
|||
#include <machine/asm.h>
|
||||
|
||||
ENTRY_NOPROFILE(bzero)
|
||||
movel sp@(4),a0
|
||||
movel sp@(8),d0
|
||||
movel %sp@(4),%a0
|
||||
movel %sp@(8),%d0
|
||||
jeq L3
|
||||
L4:
|
||||
clrb a0@+
|
||||
subql #1,d0
|
||||
clrb %a0@+
|
||||
subql #1,%d0
|
||||
jne L4
|
||||
L3:
|
||||
rts
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: libstubs.s,v 1.4 2001/02/26 14:58:37 is Exp $ */
|
||||
/* $NetBSD: libstubs.s,v 1.5 2001/03/01 21:32:53 is Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1996 The NetBSD Foundation, Inc.
|
||||
|
@ -43,161 +43,161 @@
|
|||
.comm _C_LABEL(SysBase),4
|
||||
|
||||
ENTRY_NOPROFILE(OpenLibrary)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a1
|
||||
movl sp@(12),d0
|
||||
jsr a6@(-0x228)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a1
|
||||
movl %sp@(12),%d0
|
||||
jsr %a6@(-0x228)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
#ifdef notyet
|
||||
ENTRY_NOPROFILE(CloseLibrary)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a1
|
||||
jsr a6@(-0x19e)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a1
|
||||
jsr %a6@(-0x19e)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
#endif
|
||||
ENTRY_NOPROFILE(CreateIORequest)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a0
|
||||
movl sp@(12),d0
|
||||
jsr a6@(-0x28e)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a0
|
||||
movl %sp@(12),%d0
|
||||
jsr %a6@(-0x28e)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
ENTRY_NOPROFILE(CreateMsgPort)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
jsr a6@(-0x29a)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
jsr %a6@(-0x29a)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
#ifdef notyet
|
||||
ENTRY_NOPROFILE(DeleteMsgPort)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a0
|
||||
jsr a6@(-0x2a0)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a0
|
||||
jsr %a6@(-0x2%a0)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
ENTRY_NOPROFILE(DeleteIORequest)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a0
|
||||
jsr a6@(-0x294)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a0
|
||||
jsr %a6@(-0x294)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
#endif
|
||||
|
||||
ENTRY_NOPROFILE(OpenDevice)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a0
|
||||
movl sp@(12),d0
|
||||
movl sp@(16),a1
|
||||
movl sp@(20),d1
|
||||
jsr a6@(-0x1bc)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a0
|
||||
movl %sp@(12),%d0
|
||||
movl %sp@(16),%a1
|
||||
movl %sp@(20),%d1
|
||||
jsr %a6@(-0x1bc)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
ENTRY_NOPROFILE(DoIO)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a1
|
||||
jsr a6@(-0x1c8)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a1
|
||||
jsr %a6@(-0x1c8)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
#ifdef nomore
|
||||
ENTRY_NOPROFILE(CheckIO)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a1
|
||||
jsr a6@(-0x1d4)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a1
|
||||
jsr %a6@(-0x1%d4)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
#endif
|
||||
ENTRY_NOPROFILE(WaitIO)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a1
|
||||
jsr a6@(-0x1da)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a1
|
||||
jsr %a6@(-0x1da)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
ENTRY_NOPROFILE(SendIO)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a1
|
||||
jsr a6@(-0x1ce)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a1
|
||||
jsr %a6@(-0x1ce)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
ENTRY_NOPROFILE(AbortIO)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a1
|
||||
jsr a6@(-0x1e0)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a1
|
||||
jsr %a6@(-0x1e0)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
ENTRY_NOPROFILE(WaitPort)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a0
|
||||
jsr a6@(-0x180)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a0
|
||||
jsr %a6@(-0x180)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
#ifndef DOINLINES
|
||||
ENTRY_NOPROFILE(CacheClearU)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
jsr a6@(-0x27c)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
jsr %a6@(-0x27c)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
#endif
|
||||
ENTRY_NOPROFILE(CachePreDMA)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a0
|
||||
movl sp@(12),a1
|
||||
movl sp@(16),d0
|
||||
jsr a6@(-0x2fa)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a0
|
||||
movl %sp@(12),%a1
|
||||
movl %sp@(16),%d0
|
||||
jsr %a6@(-0x2fa)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
ENTRY_NOPROFILE(FindResident)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a1
|
||||
jsr a6@(-0x60)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a1
|
||||
jsr %a6@(-0x60)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
ENTRY_NOPROFILE(OpenResource)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:w),a6
|
||||
movl sp@(8),a1
|
||||
jsr a6@(-0x1f2)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:w),%a6
|
||||
movl %sp@(8),%a1
|
||||
jsr %a6@(-0x1f2)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
#ifdef notyet
|
||||
ENTRY_NOPROFILE(Forbid)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:W),a6
|
||||
jsr a6@(-0x84)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:W),%a6
|
||||
jsr %a6@(-0x84)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
ENTRY_NOPROFILE(Permit)
|
||||
movl a6,sp@-
|
||||
movl pc@(_SysBase:W),a6
|
||||
jsr a6@(-0x8a)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_SysBase:W),%a6
|
||||
jsr %a6@(-0x8a)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
#endif
|
||||
|
||||
|
@ -208,42 +208,42 @@ ENTRY_NOPROFILE(Permit)
|
|||
.comm _IntuitionBase,4
|
||||
|
||||
ENTRY_NOPROFILE(OpenScreenTagList)
|
||||
movl a6,sp@-
|
||||
movl pc@(_IntuitionBase:w),a6
|
||||
movl sp@(8),a0
|
||||
movl sp@(12),a1
|
||||
jsr a6@(-0x264)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_IntuitionBase:w),%a6
|
||||
movl %sp@(8),%a0
|
||||
movl %sp@(12),%a1
|
||||
jsr %a6@(-0x264)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
||||
ENTRY_NOPROFILE(OpenWindowTagList)
|
||||
movl a6,sp@-
|
||||
movl pc@(_IntuitionBase:w),a6
|
||||
movl sp@(8),a0
|
||||
movl sp@(12),a1
|
||||
jsr a6@(-0x25e)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_IntuitionBase:w),%a6
|
||||
movl %sp@(8),%a0
|
||||
movl %sp@(12),%a1
|
||||
jsr %a6@(-0x25e)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
#ifdef nomore
|
||||
ENTRY_NOPROFILE(mytime)
|
||||
movl a6,sp@-
|
||||
movl pc@(_IntuitionBase:w),a6
|
||||
subql #8,sp
|
||||
movl sp,a0
|
||||
lea sp@(4),a1
|
||||
jsr a6@(-0x54)
|
||||
movl sp@+,d0
|
||||
addql #4,sp
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl %pc@(_IntuitionBase:w),%a6
|
||||
subql #8,%sp
|
||||
movl %sp,a0
|
||||
lea %sp@(4),%a1
|
||||
jsr %a6@(-0x54)
|
||||
movl %sp@+,%d0
|
||||
addql #4,%sp
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
#endif
|
||||
.comm _ExpansionBase,4
|
||||
ENTRY_NOPROFILE(FindConfigDev)
|
||||
movl a6,sp@-
|
||||
movl _ExpansionBase,a6
|
||||
movl sp@(8),a0
|
||||
movl sp@(12),d0
|
||||
movl sp@(16),d1
|
||||
jsr a6@(-0x48)
|
||||
movl sp@+,a6
|
||||
movl %a6,sp@-
|
||||
movl _ExpansionBase,%a6
|
||||
movl %sp@(8),%a0
|
||||
movl %sp@(12),%d0
|
||||
movl %sp@(16),%d1
|
||||
jsr %a6@(-0x48)
|
||||
movl %sp@+,%a6
|
||||
rts
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: muldi3.s,v 1.4 2001/02/26 14:58:37 is Exp $ */
|
||||
/* $NetBSD: muldi3.s,v 1.5 2001/03/01 21:32:53 is Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1996 The NetBSD Foundation, Inc.
|
||||
|
@ -38,25 +38,25 @@
|
|||
#include <machine/asm.h>
|
||||
|
||||
ENTRY_NOPROFILE(__muldi3)
|
||||
movml d2/d3/d4/d5/d6,sp@- | 0..4 regs, 5 pc, 6..9 parameters
|
||||
movml sp@(24),d2-d5
|
||||
| movl sp@(24),d2
|
||||
| movl sp@(28),d3
|
||||
| movl sp@(32),d4
|
||||
| movl sp@(36),d5
|
||||
movq #0,d0
|
||||
movq #0,d1
|
||||
movq #63,d6
|
||||
movml %d2/d3/%d4/d5/%d6,sp@- | 0..4 regs, 5 %pc, 6..9 parameters
|
||||
movml %sp@(24),%d2-d5
|
||||
| movl %sp@(24),%d2
|
||||
| movl %sp@(28),%d3
|
||||
| movl %sp@(32),%d4
|
||||
| movl %sp@(36),%d5
|
||||
movq #0,%d0
|
||||
movq #0,%d1
|
||||
movq #63,%d6
|
||||
L4:
|
||||
asrl #1,d2
|
||||
roxrl #1,d3
|
||||
asrl #1,%d2
|
||||
roxrl #1,%d3
|
||||
jcc L5
|
||||
addl d5,d1
|
||||
addxl d4,d0
|
||||
addl %d5,d1
|
||||
addxl %d4,d0
|
||||
L5:
|
||||
addl d5,d5
|
||||
addxl d4,d4
|
||||
addl %d5,d5
|
||||
addxl %d4,d4
|
||||
L7:
|
||||
dbra d6,L4
|
||||
movml sp@+,d2/d3/d4/d5/d6
|
||||
dbra %d6,L4
|
||||
movml %sp@+,%d2/d3/%d4/d5/%d6
|
||||
rts
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: printf.s,v 1.4 2001/02/26 14:58:37 is Exp $ */
|
||||
/* $NetBSD: printf.s,v 1.5 2001/03/01 21:32:53 is Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1996 The NetBSD Foundation, Inc.
|
||||
|
@ -44,34 +44,34 @@
|
|||
.text
|
||||
.even
|
||||
Lputch:
|
||||
movl d0,sp@-
|
||||
movl %d0,sp@-
|
||||
bsr _C_LABEL(putchar)
|
||||
addql #4,sp
|
||||
addql #4,%sp
|
||||
rts
|
||||
|
||||
ENTRY_NOPROFILE(printf)
|
||||
movml #0x0032,sp@-
|
||||
lea pc@(Lputch:w),a2
|
||||
lea sp@(20),a1
|
||||
movl sp@(16),a0
|
||||
movl pc@(_C_LABEL(SysBase):w),a6
|
||||
jsr a6@(-0x20a)
|
||||
movml sp@+, #0x4c00
|
||||
movml #0x0032,%sp@-
|
||||
lea %pc@(Lputch:w),%a2
|
||||
lea %sp@(20),%a1
|
||||
movl %sp@(16),%a0
|
||||
movl %pc@(_C_LABEL(SysBase):w),%a6
|
||||
jsr %a6@(-0x20a)
|
||||
movml %sp@+, #0x4c00
|
||||
rts
|
||||
#if 0
|
||||
Lstorech:
|
||||
movb d0, a3@+
|
||||
movb %d0, %a3@+
|
||||
rts
|
||||
|
||||
.globl _sprintf
|
||||
ENTRY_NOPROFILE(sprintf)
|
||||
movml #0x0032,sp@-
|
||||
movl sp@(16),a3
|
||||
lea pc@(Lstorech:w),a2
|
||||
lea sp@(24),a1
|
||||
movl sp@(20),a0
|
||||
movl pc@(_C_LABEL(SysBase):w),a6
|
||||
jsr a6@(-0x20a)
|
||||
movml sp@+, #0x4c00
|
||||
movml #0x0032,%sp@-
|
||||
movl %sp@(16),%a3
|
||||
lea %pc@(Lstorech:w),%a2
|
||||
lea %sp@(24),%a1
|
||||
movl %sp@(20),%a0
|
||||
movl %pc@(_C_LABEL(SysBase):w),%a6
|
||||
jsr %a6@(-0x20a)
|
||||
movml %sp@+, #0x4c00
|
||||
rts
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: startit.s,v 1.6 2001/02/26 14:58:37 is Exp $ */
|
||||
/* $NetBSD: startit.s,v 1.7 2001/03/01 21:32:53 is Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996 Ignatios Souvatzis
|
||||
|
@ -31,7 +31,7 @@
|
|||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*
|
||||
* From: $NetBSD: startit.s,v 1.6 2001/02/26 14:58:37 is Exp $
|
||||
* From: $NetBSD: startit.s,v 1.7 2001/03/01 21:32:53 is Exp $
|
||||
*/
|
||||
#include <machine/asm.h>
|
||||
|
||||
|
@ -49,10 +49,10 @@ ENTRY_NOPROFILE(startit)
|
|||
moveb #31,0x200003c9
|
||||
moveb #31,0x200003c9
|
||||
#endif
|
||||
movel sp,a3
|
||||
movel 4:w,a6
|
||||
lea pc@(start_super:w),a5
|
||||
jmp a6@(-0x1e) | supervisor-call
|
||||
movel %sp,a3
|
||||
movel 4:w,%a6
|
||||
lea %pc@(start_super:w),%a5
|
||||
jmp %a6@(-0x1e) | supervisor-call
|
||||
|
||||
start_super:
|
||||
#if TESTONAMIGA
|
||||
|
@ -61,37 +61,37 @@ start_super:
|
|||
movew #0x2700,sr
|
||||
|
||||
| the BSD kernel wants values into the following registers:
|
||||
| a0: fastmem-start
|
||||
| d0: fastmem-size
|
||||
| d1: chipmem-size
|
||||
| d3: Amiga specific flags
|
||||
| d4: E clock frequency
|
||||
| d5: AttnFlags (cpuid)
|
||||
| d6: boot partition offset
|
||||
| d7: boothowto
|
||||
| a4: esym location
|
||||
| a2: Inhibit sync flags
|
||||
| %a0: fastmem-start
|
||||
| %d0: fastmem-size
|
||||
| %d1: chipmem-size
|
||||
| %d3: Amiga specific flags
|
||||
| %d4: E clock frequency
|
||||
| %d5: AttnFlags (cpuid)
|
||||
| %d6: boot partition offset
|
||||
| %d7: boothowto
|
||||
| %a4: esym location
|
||||
| %a2: Inhibit sync flags
|
||||
| All other registers zeroed for possible future requirements.
|
||||
|
||||
lea pc@(_startit:w),sp | make sure we have a good stack ***
|
||||
lea %pc@(_startit:w),%sp | make sure we have a good stack ***
|
||||
|
||||
movel a3@(4),a1 | loaded kernel
|
||||
movel a3@(8),d2 | length of loaded kernel
|
||||
| movel a3@(12),sp | entry point in stack pointer
|
||||
movel a3@(12),a6 | entry point ***
|
||||
movel a3@(16),a0 | fastmem-start
|
||||
movel a3@(20),d0 | fastmem-size
|
||||
movel a3@(24),d1 | chipmem-size
|
||||
movel a3@(28),d7 | boothowto
|
||||
movel a3@(32),a4 | esym
|
||||
movel a3@(36),d5 | cpuid
|
||||
movel a3@(40),d4 | E clock frequency
|
||||
movel a3@(44),d3 | Amiga flags
|
||||
movel a3@(48),a2 | Inhibit sync flags
|
||||
movel a3@(52),d6 | boot partition offset
|
||||
movel %a3@(4),%a1 | loaded kernel
|
||||
movel %a3@(8),%d2 | length of loaded kernel
|
||||
| movel %a3@(12),%sp | entry point in stack pointer
|
||||
movel %a3@(12),%a6 | entry point ***
|
||||
movel %a3@(16),%a0 | fastmem-start
|
||||
movel %a3@(20),%d0 | fastmem-size
|
||||
movel %a3@(24),%d1 | chipmem-size
|
||||
movel %a3@(28),%d7 | boothowto
|
||||
movel %a3@(32),%a4 | esym
|
||||
movel %a3@(36),%d5 | cpuid
|
||||
movel %a3@(40),%d4 | E clock frequency
|
||||
movel %a3@(44),%d3 | Amiga flags
|
||||
movel %a3@(48),%a2 | Inhibit sync flags
|
||||
movel %a3@(52),%d6 | boot partition offset
|
||||
|
||||
cmpb #0x7D,a3@(36) | is it DraCo?
|
||||
movel a3@(56),a3 | Load to fastmem flag
|
||||
cmpb #0x7D,%a3@(36) | is it DraCo?
|
||||
movel %a3@(56),%a3 | Load to fastmem flag
|
||||
jeq nott | yes, switch off MMU later
|
||||
|
||||
| no, it is an Amiga:
|
||||
|
@ -110,35 +110,35 @@ start_super:
|
|||
|
||||
| ------ mmu off start -----
|
||||
|
||||
btst #3,d5 | AFB_68040,SysBase->AttnFlags
|
||||
btst #3,%d5 | AFB_68040,SysBase->AttnFlags
|
||||
jeq not040
|
||||
|
||||
| Turn off 68040/060 MMU
|
||||
|
||||
subl a5,a5
|
||||
.word 0x4e7b,0xd003 | movec a5,tc
|
||||
.word 0x4e7b,0xd806 | movec a5,urp
|
||||
.word 0x4e7b,0xd807 | movec a5,srp
|
||||
.word 0x4e7b,0xd004 | movec a5,itt0
|
||||
.word 0x4e7b,0xd005 | movec a5,itt1
|
||||
.word 0x4e7b,0xd006 | movec a5,dtt0
|
||||
.word 0x4e7b,0xd007 | movec a5,dtt1
|
||||
subl %a5,a5
|
||||
.word 0x4e7b,0xd003 | movec %a5,tc
|
||||
.word 0x4e7b,0xd806 | movec %a5,urp
|
||||
.word 0x4e7b,0xd807 | movec %a5,srp
|
||||
.word 0x4e7b,0xd004 | movec %a5,itt0
|
||||
.word 0x4e7b,0xd005 | movec %a5,itt1
|
||||
.word 0x4e7b,0xd006 | movec %a5,dtt0
|
||||
.word 0x4e7b,0xd007 | movec %a5,dtt1
|
||||
jra nott
|
||||
|
||||
not040:
|
||||
lea pc@(zero:w),a5
|
||||
pmove a5@,tc | Turn off MMU
|
||||
lea pc@(nullrp:w),a5
|
||||
pmove a5@,crp | Turn off MMU some more
|
||||
pmove a5@,srp | Really, really, turn off MMU
|
||||
lea %pc@(zero:w),%a5
|
||||
pmove %a5@,tc | Turn off MMU
|
||||
lea %pc@(nullrp:w),%a5
|
||||
pmove %a5@,crp | Turn off MMU some more
|
||||
pmove %a5@,srp | Really, really, turn off MMU
|
||||
|
||||
| Turn off 68030 TT registers
|
||||
|
||||
btst #2,d5 | AFB_68030,SysBase->AttnFlags
|
||||
btst #2,%d5 | AFB_68030,SysBase->AttnFlags
|
||||
jeq nott | Skip TT registers if not 68030
|
||||
lea pc@(zero:w),a5
|
||||
.word 0xf015,0x0800 | pmove a5@,tt0 (gas only knows about 68851 ops..)
|
||||
.word 0xf015,0x0c00 | pmove a5@,tt1 (gas only knows about 68851 ops..)
|
||||
lea %pc@(zero:w),%a5
|
||||
.word 0xf015,0x0800 | pmove %a5@,tt0 (gas only knows about 68851 ops..)
|
||||
.word 0xf015,0x0c00 | pmove %a5@,tt1 (gas only knows about 68851 ops..)
|
||||
|
||||
nott:
|
||||
| ---- mmu off end ----
|
||||
|
@ -156,73 +156,73 @@ nott:
|
|||
| ---- copy kernel start ----
|
||||
|
||||
| removed Z flag
|
||||
| tstl a3 | Can we load to fastmem?
|
||||
| tstl %a3 | Can we load to fastmem?
|
||||
| jeq L0 | No, leave destination at 0
|
||||
movl a0,a3 | Move to start of fastmem chunk
|
||||
addl a0,a6 | relocate kernel entry point
|
||||
movl %a0,a3 | Move to start of fastmem chunk
|
||||
addl %a0,a6 | relocate kernel entry point
|
||||
|
||||
addl #3,d2
|
||||
andl #0xfffffffc,d2 | round up.
|
||||
addl #3,%d2
|
||||
andl #0xfffffffc,%d2 | round up.
|
||||
|
||||
| determine if the kernel need be copied upwards or downwards
|
||||
|
||||
cmpl a1,a3 | a3-a1
|
||||
cmpl %a1,a3 | %a3-a1
|
||||
bcs above | source is above
|
||||
|
||||
movl a0,sp
|
||||
addl d0,sp | move the stack to the end of segment
|
||||
movl %a0,sp
|
||||
addl %d0,sp | move the stack to the end of segment
|
||||
|
||||
| copy from below upwards requires copying from end to start.
|
||||
|
||||
addl d2,a3 | one long word past
|
||||
addl d2,a1 | one long word past
|
||||
addl %d2,a3 | one long word past
|
||||
addl %d2,a1 | one long word past
|
||||
|
||||
subl #4,sp | alloc space
|
||||
movl a1,sp@- | save source
|
||||
movl a3,sp@- | save destination
|
||||
subl #4,%sp | alloc space
|
||||
movl %a1,sp@- | save source
|
||||
movl %a3,sp@- | save destination
|
||||
|
||||
| copy copier to end of segment
|
||||
|
||||
movl sp,a3
|
||||
subl #256,a3 | end of segment save our stack
|
||||
movl %sp,a3
|
||||
subl #256,%a3 | end of segment save our stack
|
||||
|
||||
lea pc@(_startit_end:w),a1
|
||||
movl a0,sp@- | save segment start
|
||||
lea pc@(below:w),a0
|
||||
lea %pc@(_startit_end:w),%a1
|
||||
movl %a0,sp@- | save segment start
|
||||
lea %pc@(below:w),%a0
|
||||
|
||||
L0: movw a1@-,a3@-
|
||||
cmpl a0,a1
|
||||
L0: movw %a1@-,%a3@-
|
||||
cmpl %a0,a1
|
||||
bne L0
|
||||
movl sp@,a0 | restore segment start
|
||||
movl a3,sp@ | address of relocated below
|
||||
addl #(ckend - below),a3
|
||||
movl a3,sp@(12) | address of ckend for later
|
||||
movl %sp@,%a0 | restore segment start
|
||||
movl %a3,sp@ | address of relocated below
|
||||
addl #(ckend - below),%a3
|
||||
movl %a3,sp@(12) | address of ckend for later
|
||||
| ---- switch off cache ----
|
||||
bra Lchoff | and to relocated below
|
||||
|
||||
|
||||
below: movl sp@+,a3 | recover destination
|
||||
movl sp@+,a1 | recover source
|
||||
below: movl %sp@+,%a3 | recover destination
|
||||
movl %sp@+,%a1 | recover source
|
||||
|
||||
L1: movl a1@-,a3@- | copy kernel
|
||||
subl #4,d2
|
||||
L1: movl %a1@-,%a3@- | copy kernel
|
||||
subl #4,%d2
|
||||
bne L1
|
||||
|
||||
| ---- switch off cache ----
|
||||
bra Lchoff | and to relocated ckend
|
||||
|
||||
above: movl a1@+,a3@+
|
||||
subl #4,d2
|
||||
above: movl %a1@+,%a3@+
|
||||
subl #4,%d2
|
||||
bne above
|
||||
|
||||
lea pc@(ckend:w),a1
|
||||
movl a3,sp@-
|
||||
pea pc@(_startit_end:w)
|
||||
lea %pc@(ckend:w),%a1
|
||||
movl %a3,sp@-
|
||||
pea %pc@(_startit_end:w)
|
||||
L2:
|
||||
movl a1@+,a3@+
|
||||
cmpl sp@,a1
|
||||
movl %a1@+,%a3@+
|
||||
cmpl %sp@,%a1
|
||||
bcs L2
|
||||
addql #4,sp
|
||||
addql #4,%sp
|
||||
|
||||
#if TESTONAMIGA
|
||||
movew #0xFF0,0xdff180 | yellow
|
||||
|
@ -235,13 +235,13 @@ L2:
|
|||
#endif
|
||||
|
||||
| ---- switch off cache ----
|
||||
Lchoff: btst #3,d5
|
||||
Lchoff: btst #3,%d5
|
||||
jeq L3c
|
||||
.word 0xf4f8
|
||||
L3c: movl d2,sp@- | save d2
|
||||
movql #0,d2 | switch off cache to ensure we use
|
||||
movec d2,cacr | valid kernel data
|
||||
movl sp@+,d2 | restore d2
|
||||
L3c: movl %d2,sp@- | save %d2
|
||||
movql #0,%d2 | switch off cache to ensure we use
|
||||
movec %d2,cacr | valid kernel data
|
||||
movl %sp@+,%d2 | restore %d2
|
||||
rts
|
||||
|
||||
| ---- copy kernel end ----
|
||||
|
@ -257,29 +257,29 @@ ckend:
|
|||
moveb #63,0x200003c9
|
||||
#endif
|
||||
|
||||
movl d5,d2
|
||||
roll #8,d2
|
||||
cmpb #0x7D,d2
|
||||
movl %d5,d2
|
||||
roll #8,%d2
|
||||
cmpb #0x7D,%d2
|
||||
jne noDraCo
|
||||
|
||||
| DraCo: switch off MMU now:
|
||||
|
||||
subl a5,a5
|
||||
.word 0x4e7b,0xd003 | movec a5,tc
|
||||
.word 0x4e7b,0xd806 | movec a5,urp
|
||||
.word 0x4e7b,0xd807 | movec a5,srp
|
||||
.word 0x4e7b,0xd004 | movec a5,itt0
|
||||
.word 0x4e7b,0xd005 | movec a5,itt1
|
||||
.word 0x4e7b,0xd006 | movec a5,dtt0
|
||||
.word 0x4e7b,0xd007 | movec a5,dtt1
|
||||
subl %a5,a5
|
||||
.word 0x4e7b,0xd003 | movec %a5,tc
|
||||
.word 0x4e7b,0xd806 | movec %a5,urp
|
||||
.word 0x4e7b,0xd807 | movec %a5,srp
|
||||
.word 0x4e7b,0xd004 | movec %a5,itt0
|
||||
.word 0x4e7b,0xd005 | movec %a5,itt1
|
||||
.word 0x4e7b,0xd006 | movec %a5,dtt0
|
||||
.word 0x4e7b,0xd007 | movec %a5,dtt1
|
||||
|
||||
noDraCo:
|
||||
moveq #0,d2 | zero out unused registers
|
||||
movel d2,a1 | (might make future compatibility
|
||||
movel d2,a3 | would have known contents)
|
||||
movel d2,a5
|
||||
movel a6,sp | entry point into stack pointer
|
||||
movel d2,a6
|
||||
moveq #0,%d2 | zero out unused registers
|
||||
movel %d2,a1 | (might make future compatibility
|
||||
movel %d2,a3 | would have known contents)
|
||||
movel %d2,a5
|
||||
movel %a6,sp | entry point into stack pointer
|
||||
movel %d2,a6
|
||||
|
||||
#if TESTONAMIGA
|
||||
movew #0x0F0,0xdff180 | green
|
||||
|
@ -291,7 +291,7 @@ noDraCo:
|
|||
moveb #0,0x200003c9
|
||||
#endif
|
||||
|
||||
jmp sp@ | jump to kernel entry point
|
||||
jmp %sp@ | jump to kernel entry point
|
||||
|
||||
|
||||
| A do-nothing MMU root pointer (includes the following long as well)
|
||||
|
|
Loading…
Reference in New Issue