ELF adaption.

This commit is contained in:
thomas 2001-09-08 11:21:02 +00:00
parent f433d91346
commit b2990af499
3 changed files with 58 additions and 63 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.8 1999/03/15 07:46:11 leo Exp $
# $NetBSD: Makefile,v 1.9 2001/09/08 11:21:02 thomas Exp $
LIB= sa
@ -7,7 +7,7 @@ MKPROFILE=no
OBJMACHINE=
CPPFLAGS+= ${DEFS} ${INCL}
CFLAGS+= -fomit-frame-pointer -Wall
CFLAGS+= -fomit-frame-pointer -Wall -fno-function-cse -fstrength-reduce
NO_NET=
DEFS= -D_STANDALONE
@ -18,7 +18,7 @@ INCL= -I- -I${S_MACHSA} -I${S_KERN} -I${S_SA} -I${S}
#
# machine dependant routines
SRCS= consio.s diskio.c
SRCS= consio.S diskio.c
# from lib/libkern
SRCS+= ashrdi3.c bzero.c strcmp.c strlen.c

View File

@ -1,4 +1,4 @@
/* $NetBSD: consio.s,v 1.1.1.1 1996/02/29 11:36:12 leo Exp $ */
/* $NetBSD: consio.S,v 1.1 2001/09/08 11:21:02 thomas Exp $ */
/*
* Copyright (c) 1995 Waldi Ravens.
@ -30,34 +30,30 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
.globl _getchar | int getchar (void);
.text
.even
_getchar:
movml d2/a2,sp@-
movw #2,sp@- | BIOS device 2 => console (VT52)
movw #2,sp@- | BIOS opcode 2 => Bconin
#include <machine/asm.h>
ENTRY_NOPROFILE(getchar) | int getchar (void);
movml %d2/%a2,%sp@-
movw #2,%sp@- | BIOS device 2 => console (VT52)
movw #2,%sp@- | BIOS opcode 2 => Bconin
trap #13 | => char in d0.b
addql #4,sp
andl #0xff,d0
movml sp@+,d2/a2
addql #4,%sp
andl #0xff,%d0
movml %sp@+,%d2/%a2
rts
.globl _putchar | void putchar (int c);
.text
.even
_putchar:
movl sp@(4),d0
cmpw #10,d0 | linefeed?
ENTRY_NOPROFILE(putchar) | void putchar (int c);
movl %sp@(4),%d0
cmpw #10,%d0 | linefeed?
bnes 0f
movq #13,d0 | yes, put CR and LF.
movq #13,%d0 | yes, put CR and LF.
bsrs 0f
movq #10,d0
0: movml d2/a2,sp@-
movw d0,sp@- | character
movw #2,sp@- | BIOS device 2 => console (VT52)
movw #3,sp@- | BIOS opcode 3 => Bconout
movq #10,%d0
0: movml %d2/%a2,%sp@-
movw %d0,%sp@- | character
movw #2,%sp@- | BIOS device 2 => console (VT52)
movw #3,%sp@- | BIOS opcode 3 => Bconout
trap #13 | => none
addql #6,sp
movml sp@+,d2/a2
addql #6,%sp
movml %sp@+,%d2/%a2
rts

View File

@ -1,4 +1,4 @@
/* $NetBSD: bsdstart.s,v 1.5 1997/12/04 07:39:05 leo Exp $ */
/* $NetBSD: bsdstart.s,v 1.6 2001/09/08 11:22:26 thomas Exp $ */
/*
* Copyright (c) 1995 L. Weppelman
@ -36,12 +36,11 @@
*
* bsd_startup(struct kparamb *)
*/
.text
.even
.globl _bsd_startup
_bsd_startup:
movw #0x2700,sr
#include <machine/asm.h>
ENTRY_NOPROFILE(bsd_startup)
movw #0x2700,%sr
| the BSD kernel wants values into the following registers:
| d0: ttmem-size
@ -54,24 +53,24 @@ _bsd_startup:
| a1: end of symbols (esym)
| All other registers zeroed for possible future requirements.
movl sp@(4),a3 | a3 points to parameter block
movl %sp@(4),%a3 | a3 points to parameter block
#ifdef TOSTOOLS
lea _bsd_startup,sp | make sure we have a good stack ***
lea _ASM_LABEL(bsd_startup),%sp | make sure we have a good stack ***
#endif
movl a3@,a0 | loaded kernel
movl a3@(8),d0 | kernel entry point
addl a0,d0 | added makes our absolute entry point
movl d0,sp@- | push entry point ***
movl a3@(12),d1 | stmem-size
movl a3@(16),d0 | ttmem-size
movl a3@(20),d2 | bootflags
movl a3@(24),d3 | boothowto
movl a3@(4),d4 | length of loaded kernel
movl a3@(28),d5 | start of fastram
movl a3@(32),a1 | end of symbols
subl a5,a5 | target, load to 0
movl d2,d6
andb #0x50,d6 | Is this an 68040/68060?
movl %a3@,%a0 | loaded kernel
movl %a3@(8),%d0 | kernel entry point
addl %a0,%d0 | added makes our absolute entry point
movl %d0,%sp@- | push entry point ***
movl %a3@(12),%d1 | stmem-size
movl %a3@(16),%d0 | ttmem-size
movl %a3@(20),%d2 | bootflags
movl %a3@(24),%d3 | boothowto
movl %a3@(4),%d4 | length of loaded kernel
movl %a3@(28),%d5 | start of fastram
movl %a3@(32),%a1 | end of symbols
subl %a5,%a5 | target, load to 0
movl %d2,%d6
andb #0x50,%d6 | Is this an 68040/68060?
beqs 0f
| Turn off 68040 type MMU
@ -85,25 +84,25 @@ _bsd_startup:
.word 0xf4f8 | cpusha bc - push and inval caches
bras 1f
0: lea pc@(zero),a3
pmove a3@,tc | Turn off MMU
pmove a3@(-4),crp | crp = nullrp
pmove a3@(-4),srp | srp = nullrp
btst #3,d2 | Is this an 68030?
0: lea %pc@(zero),%a3
pmove %a3@,%tc | Turn off MMU
pmove %a3@(-4),%crp | crp = nullrp
pmove %a3@(-4),%srp | srp = nullrp
btst #3,%d2 | Is this an 68030?
beqs 1f
| Turn off 68030 TT registers
.word 0xf013,0x0800 | pmove a3@,tt0
.word 0xf013,0x0c00 | pmove a3@,tt1
1: movq #0,d6 | would have known contents
movc d6,cacr | turn off the caches
movl d6,d7
movl d6,a2
movl d6,a3
movl d6,a4
movl d6,a5
movl d6,a6
1: movq #0,%d6 | would have known contents
movc %d6,%cacr | turn off the caches
movl %d6,%d7
movl %d6,%a2
movl %d6,%a3
movl %d6,%a4
movl %d6,%a5
movl %d6,%a6
rts | enter kernel at address on stack ***
| A do-nothing MMU root pointer (includes the following long as well)