From b2990af499cb9a7afce563c5e9225aae75efcbfa Mon Sep 17 00:00:00 2001 From: thomas Date: Sat, 8 Sep 2001 11:21:02 +0000 Subject: [PATCH] ELF adaption. --- sys/arch/atari/stand/libsa/Makefile | 6 +- .../atari/stand/libsa/{consio.s => consio.S} | 46 ++++++------- .../atari/stand/tostools/libtos/bsdstart.s | 69 +++++++++---------- 3 files changed, 58 insertions(+), 63 deletions(-) rename sys/arch/atari/stand/libsa/{consio.s => consio.S} (73%) diff --git a/sys/arch/atari/stand/libsa/Makefile b/sys/arch/atari/stand/libsa/Makefile index 0d760f3d71b2..0654b673d7ec 100644 --- a/sys/arch/atari/stand/libsa/Makefile +++ b/sys/arch/atari/stand/libsa/Makefile @@ -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 diff --git a/sys/arch/atari/stand/libsa/consio.s b/sys/arch/atari/stand/libsa/consio.S similarity index 73% rename from sys/arch/atari/stand/libsa/consio.s rename to sys/arch/atari/stand/libsa/consio.S index ca5d4c498bc2..f313b33ec37b 100644 --- a/sys/arch/atari/stand/libsa/consio.s +++ b/sys/arch/atari/stand/libsa/consio.S @@ -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 + +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 diff --git a/sys/arch/atari/stand/tostools/libtos/bsdstart.s b/sys/arch/atari/stand/tostools/libtos/bsdstart.s index 59ef40359b56..f448a6188efe 100644 --- a/sys/arch/atari/stand/tostools/libtos/bsdstart.s +++ b/sys/arch/atari/stand/tostools/libtos/bsdstart.s @@ -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 + +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)