Merge from matt-nb5-mips64
This commit is contained in:
parent
15aa4c53c9
commit
1e301281a1
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: common.h,v 1.12 2006/05/18 17:54:19 christos Exp $ */
|
||||
/* $NetBSD: common.h,v 1.13 2009/12/14 01:04:02 matt Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1995 Christopher G. Demetriou
|
||||
|
@ -53,7 +53,7 @@
|
|||
typedef void Obj_Entry;
|
||||
#endif
|
||||
|
||||
extern int __syscall(quad_t, ...);
|
||||
extern quad_t __syscall(quad_t, ...);
|
||||
#define _exit(v) __syscall(SYS_exit, (v))
|
||||
#define write(fd, s, n) __syscall(SYS_write, (fd), (s), (n))
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: crt0.c,v 1.19 2005/12/24 22:02:10 perry Exp $ */
|
||||
/* $NetBSD: crt0.c,v 1.20 2009/12/14 01:04:02 matt Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1995 Christopher G. Demetriou
|
||||
|
@ -86,10 +86,15 @@ __start(u_long sp,
|
|||
*/
|
||||
|
||||
#ifndef DYNAMIC
|
||||
#ifdef _LP64
|
||||
__asm volatile("dla $28,_gp");
|
||||
#else
|
||||
__asm volatile("la $28,_gp");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
ksp = (char**)sp;
|
||||
#if defined(__mips_n32) || defined(__mips_n64)
|
||||
if (ksp == 0) {
|
||||
/*
|
||||
* Uh, oh. We're running on a old kernel that passed
|
||||
|
@ -110,6 +115,7 @@ __start(u_long sp,
|
|||
__asm volatile(" addiu %0,$29,64" : "=r" (ksp));
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
argc = *(int *)ksp;
|
||||
|
@ -157,7 +163,7 @@ __start(u_long sp,
|
|||
* is the entrypoint. (Only needed for old toolchains).
|
||||
*/
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
__RCSID("$NetBSD: crt0.c,v 1.19 2005/12/24 22:02:10 perry Exp $");
|
||||
__RCSID("$NetBSD: crt0.c,v 1.20 2009/12/14 01:04:02 matt Exp $");
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include "common.c"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: dot_init.h,v 1.9 2008/05/10 15:31:04 martin Exp $ */
|
||||
/* $NetBSD: dot_init.h,v 1.10 2009/12/14 01:04:02 matt Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2001 Ross Harvey
|
||||
|
@ -36,48 +36,98 @@
|
|||
|
||||
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
|
||||
|
||||
#define ra "$31"
|
||||
#define t9 "$25"
|
||||
|
||||
/*
|
||||
* Allocate 32 bytes for the stack frame. Store GP at SP+16 (since
|
||||
* this is where code generated by the compiler for fallthru processing
|
||||
* expects it to be), and the RA at SP+28.
|
||||
* For O32/O64, allocate 8 "slots" for the stack frame. Store GP in the 4th
|
||||
* (zero-based) slot (since this is where compiler generated code for fallthru
|
||||
* processing expects it to be), and the RA in seventh (highest address).
|
||||
*
|
||||
* This will need adjustment for 64-bit ABIs.
|
||||
* For N32/N64, allocate 4 8-byte "slots" for the stack frame. Store GP in the
|
||||
* 2nd (zero-based) slot (since ...) and the RA in third (highest address).
|
||||
*/
|
||||
#ifdef __ABICALLS__
|
||||
#define MD_FUNCTION_PROLOGUE \
|
||||
".set noreorder \n"\
|
||||
".cpload $25 \n"\
|
||||
".set reorder \n"\
|
||||
" subu $sp,$sp,32 \n"\
|
||||
".cprestore 16 \n"\
|
||||
" sw "ra",28($sp) \n"
|
||||
|
||||
#ifdef __mips_o32
|
||||
#define sPTR_ADDU "addu"
|
||||
#define sREG_L "lw"
|
||||
#define sREG_S "sw"
|
||||
#define sRAOFF "28"
|
||||
#define sFRAMESZ "32"
|
||||
#define MD_GPRESTORE /* nothing */
|
||||
#else
|
||||
#define MD_FUNCTION_PROLOGUE \
|
||||
" subu $sp,$sp,32 \n"\
|
||||
" sw "ra",28($sp) \n"
|
||||
#define sPTR_ADDU "daddu"
|
||||
#define sREG_L "ld"
|
||||
#define sREG_S "sd"
|
||||
#if defined(__mips_n32) || defined(__mips_n64)
|
||||
#define MD_GPRESTORE "ld $gp,8($sp)" "\n\t"
|
||||
#define sRAOFF "24"
|
||||
#define sFRAMESZ "32"
|
||||
#elif defined(__mips_o64)
|
||||
#define sRAOFF "56"
|
||||
#define sFRAMESZ "64"
|
||||
#define MD_GPRESTORE /* nothing */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __ABICALLS__
|
||||
#if defined(__mips_o32) || defined(__mips_o64)
|
||||
#define MD_FUNCTION_PROLOGUE(entry_pt) \
|
||||
".set noreorder" "\n\t" \
|
||||
".cpload "t9 "\n\t" \
|
||||
".set reorder" "\n\t" \
|
||||
sPTR_ADDU" $sp,$sp,-"sFRAMESZ "\n\t" \
|
||||
".cprestore 16" "\n\t" \
|
||||
sREG_S" $ra,"sRAOFF"($sp)" "\n\t"
|
||||
|
||||
#define MD_SECTION_PROLOGUE(sect, entry_pt) \
|
||||
__asm ( \
|
||||
".section "#sect",\"ax\",@progbits \n"\
|
||||
".align 2 \n"\
|
||||
".globl "#entry_pt" \n"\
|
||||
#entry_pt": \n"\
|
||||
MD_FUNCTION_PROLOGUE \
|
||||
" /* fall thru */ \n"\
|
||||
#elif defined(__mips_n32) || defined(__mips_n64)
|
||||
#define MD_FUNCTION_PROLOGUE(entry_pt) \
|
||||
".set noreorder" "\n\t" \
|
||||
"daddu $sp,$sp,-32" "\n\t" \
|
||||
".cpsetup "t9", 8, "#entry_pt "\n\t" \
|
||||
"sd $ra,24($sp)" "\n\t" \
|
||||
".set reorder" "\n\t"
|
||||
#else
|
||||
#error ABI not supported (__ABICALLS)
|
||||
#endif
|
||||
#else
|
||||
#if defined(__mips_o32) || defined(__mips_o64)
|
||||
#define MD_FUNCTION_PROLOGUE(entry_pt) \
|
||||
sPTR_ADDU" $sp,$sp,-"sFRAMESZ "\n\t" \
|
||||
sREG_S" $ra,"sRAOFF"($sp)" "\n\t"
|
||||
|
||||
#elif defined(__mips_n32) || defined(__mips_n64)
|
||||
/*
|
||||
* On N32/N64, GP is callee-saved.
|
||||
*/
|
||||
#define MD_FUNCTION_PROLOGUE(entry_pt) \
|
||||
"daddu $sp,$sp,-32" "\n\t" \
|
||||
"sd $gp,8($sp)" "\n\t" \
|
||||
"sd $ra,24($sp)" "\n\t"
|
||||
#else
|
||||
#error ABI not supported (!__ABICALLS)
|
||||
#endif
|
||||
#endif /* __ABICALLS */
|
||||
|
||||
|
||||
#define MD_SECTION_PROLOGUE(sect, entry_pt) \
|
||||
__asm ( \
|
||||
".section "#sect",\"ax\",@progbits" "\n\t" \
|
||||
".align 2" "\n\t" \
|
||||
".globl "#entry_pt "\n\t" \
|
||||
#entry_pt":" "\n\t" \
|
||||
MD_FUNCTION_PROLOGUE(entry_pt) \
|
||||
" /* fall thru */" "\n\t" \
|
||||
".previous")
|
||||
|
||||
#define MD_SECTION_EPILOGUE(sect) \
|
||||
__asm ( \
|
||||
".section "#sect",\"ax\",@progbits \n"\
|
||||
" lw "ra",28($sp) \n"\
|
||||
" .set noreorder \n"\
|
||||
" j "ra" \n"\
|
||||
" addu $sp,$sp,32 \n"\
|
||||
" .set reorder \n"\
|
||||
#define MD_SECTION_EPILOGUE(sect) \
|
||||
__asm ( \
|
||||
".section "#sect",\"ax\",@progbits" "\n\t" \
|
||||
sREG_L" $ra,"sRAOFF"($sp)" "\n\t" \
|
||||
MD_GPRESTORE \
|
||||
".set noreorder" "\n\t" \
|
||||
"j $ra" "\n\t" \
|
||||
sPTR_ADDU" $sp,$sp,"sFRAMESZ "\n\t" \
|
||||
".set reorder" "\n\t" \
|
||||
".previous")
|
||||
|
||||
#define MD_INIT_SECTION_PROLOGUE MD_SECTION_PROLOGUE(.init, _init)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: bsd.kmodule.mk,v 1.21 2009/11/10 14:47:52 skrll Exp $
|
||||
# $NetBSD: bsd.kmodule.mk,v 1.22 2009/12/14 01:00:46 matt Exp $
|
||||
|
||||
# We are not building this with PIE
|
||||
MKPIE=no
|
||||
|
@ -43,7 +43,8 @@ ${OBJS} ${LOBJS}: ${DPSRCS}
|
|||
|
||||
${PROG}: ${OBJS} ${DPADD}
|
||||
${_MKTARGET_LINK}
|
||||
${LD} -T ${KMODSCRIPT} -r -d -o ${.TARGET} ${OBJS}
|
||||
${CC} ${LDFLAGS} -nostdlib -Wl,-T,${KMODSCRIPT},-r,-d \
|
||||
-o ${.TARGET} ${OBJS}
|
||||
|
||||
##### Install rules
|
||||
.if !target(kmodinstall)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: bsd.own.mk,v 1.612 2009/12/13 09:10:16 mrg Exp $
|
||||
# $NetBSD: bsd.own.mk,v 1.613 2009/12/14 01:00:46 matt Exp $
|
||||
|
||||
# This needs to be before bsd.init.mk
|
||||
.if defined(BSD_MK_COMPAT_FILE)
|
||||
|
@ -532,8 +532,7 @@ MKPICLIB:= no
|
|||
|
||||
#
|
||||
# On VAX using ELF, all objects are PIC, not just shared libraries,
|
||||
# so don't build the _pic version. Unless we are using GCC3 which
|
||||
# doesn't support PIC yet.
|
||||
# so don't build the _pic version.
|
||||
#
|
||||
.if ${MACHINE_ARCH} == "vax"
|
||||
MKPICLIB= no
|
||||
|
@ -653,7 +652,8 @@ MK${var}:= yes
|
|||
#
|
||||
# MK* options which have variable defaults.
|
||||
#
|
||||
.if ${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "sparc64"
|
||||
.if ${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "sparc64" || \
|
||||
${MACHINE_ARCH} == "mips64eb" || ${MACHINE_ARCH} == "mips64el"
|
||||
MKCOMPAT?= yes
|
||||
.else
|
||||
# Don't let this build where it really isn't supported.
|
||||
|
@ -680,9 +680,9 @@ MKZFS?= yes
|
|||
_MKVARS.yes= \
|
||||
MKATF \
|
||||
MKBINUTILS \
|
||||
MKCATPAGES MKCRYPTO MKCOMPLEX MKCVS \
|
||||
MKCATPAGES MKCRYPTO MKCOMPLEX MKCVS MKCXX \
|
||||
MKDOC \
|
||||
MKGCC MKGCCCMDS MKGDB \
|
||||
MKGCC MKGCCCMDS MKGDB MKGROFF \
|
||||
MKHESIOD MKHTML \
|
||||
MKIEEEFP MKINET6 MKINFO MKIPFILTER MKISCSI \
|
||||
MKKERBEROS \
|
||||
|
@ -741,6 +741,11 @@ X11FLAVOUR?= Xorg
|
|||
# Force some options off if their dependencies are off.
|
||||
#
|
||||
|
||||
.if ${MKCXX} == "no"
|
||||
MKATF:= no
|
||||
MKGROFF:= no
|
||||
.endif
|
||||
|
||||
.if ${MKCRYPTO} == "no"
|
||||
MKKERBEROS:= no
|
||||
.endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: bsd.prog.mk,v 1.244 2009/12/08 15:18:42 uebayasi Exp $
|
||||
# $NetBSD: bsd.prog.mk,v 1.245 2009/12/14 01:00:46 matt Exp $
|
||||
# @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94
|
||||
|
||||
.ifndef HOSTPROG
|
||||
|
@ -309,7 +309,7 @@ ${_P}: .gdbinit ${LIBCRT0} ${OBJS.${_P}} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${D
|
|||
|
||||
${_P}.ro: ${OBJS.${_P}} ${DPADD}
|
||||
${_MKTARGET_LINK}
|
||||
${LD} -r -dc -o ${.TARGET} ${OBJS.${_P}}
|
||||
${CC} ${LDFLAGS} -nostdlib -Wl,-r,-dc -o ${.TARGET} ${OBJS.${_P}}
|
||||
|
||||
.if defined(_PROGDEBUG.${_P})
|
||||
${_PROGDEBUG.${_P}}: ${_P}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: bsd.sys.mk,v 1.187 2009/12/13 18:40:50 christos Exp $
|
||||
# $NetBSD: bsd.sys.mk,v 1.188 2009/12/14 01:00:46 matt Exp $
|
||||
#
|
||||
# Build definitions used for NetBSD source tree builds.
|
||||
|
||||
|
@ -89,6 +89,18 @@ FFLAGS+= -mieee
|
|||
CFLAGS+= -Wa,-Av8plus
|
||||
.endif
|
||||
|
||||
.if (${MACHINE_ARCH} == "mips64el") || (${MACHINE_ARCH} == "mips64eb")
|
||||
CPUFLAGS+= -Wa,--fatal-warnings
|
||||
.endif
|
||||
|
||||
#.if ${MACHINE} == "sbmips"
|
||||
#CFLAGS+= -mips64 -mtune=sb1
|
||||
#.endif
|
||||
|
||||
#.if (${MACHINE_ARCH} == "mips64el" || ${MACHINE_ARCH} == "mips64eb") && \
|
||||
# (defined(MKPIC) && ${MKPIC} == "no")
|
||||
#CPUFLAGS+= -mno-abicalls -fno-PIC
|
||||
#.endif
|
||||
CFLAGS+= ${CPUFLAGS}
|
||||
AFLAGS+= ${CPUFLAGS}
|
||||
|
||||
|
|
Loading…
Reference in New Issue