Module Name: src Committed By: uebayasi Date: Thu Aug 20 04:43:34 UTC 2009
Modified Files: src/sys/arch/mips/mips [matt-nb5-mips64]: locore_mips3.S Log Message: Build mips3_ld / mips3_sd for N32/N64. 64-bit arguments are stored in single registers in these ABIs. No special treatment needed. To generate a diff of this commit: cvs rdiff -u -r1.93 -r1.93.38.1 src/sys/arch/mips/mips/locore_mips3.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/mips/mips/locore_mips3.S diff -u src/sys/arch/mips/mips/locore_mips3.S:1.93 src/sys/arch/mips/mips/locore_mips3.S:1.93.38.1 --- src/sys/arch/mips/mips/locore_mips3.S:1.93 Wed Oct 17 19:55:38 2007 +++ src/sys/arch/mips/mips/locore_mips3.S Thu Aug 20 04:43:34 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: locore_mips3.S,v 1.93 2007/10/17 19:55:38 garbled Exp $ */ +/* $NetBSD: locore_mips3.S,v 1.93.38.1 2009/08/20 04:43:34 uebayasi Exp $ */ /* * Copyright (c) 1997 Jonathan Stone (hereinafter referred to as the author) @@ -348,11 +348,6 @@ nop END(mips3_cp0_pg_mask_write) -#if defined(_MIPS_BSD_API) && \ - (_MIPS_BSD_API == _MIPS_BSD_API_N32 || _MIPS_BSD_API == _MIPS_BSD_API_LP64) -#error mips3_ld and mips3_sd should be adjusted for N32 or LP64 -#endif - LEAF(mips3_ld) #if !defined(_MIPS_BSD_API) || _MIPS_BSD_API == _MIPS_BSD_API_LP32 mfc0 t0, MIPS_COP_0_STATUS # turn off interrupts @@ -365,6 +360,10 @@ #endif ld v0, 0(a0) +#if defined(_MIPS_BSD_API) && \ + (_MIPS_BSD_API == _MIPS_BSD_API_N32 || _MIPS_BSD_API == _MIPS_BSD_API_LP64) + # nothing to do +#else #if _BYTE_ORDER == _BIG_ENDIAN dsll v1, v0, 32 dsra v1, v1, 32 # low word in v1 @@ -374,6 +373,7 @@ dsll v0, v0, 32 dsra v0, v0, 32 # low word in v0 #endif +#endif #if !defined(_MIPS_BSD_API) || _MIPS_BSD_API == _MIPS_BSD_API_LP32 mtc0 t0, MIPS_COP_0_STATUS # restore intr status. @@ -396,6 +396,10 @@ nop #endif +#if defined(_MIPS_BSD_API) && \ + (_MIPS_BSD_API == _MIPS_BSD_API_N32 || _MIPS_BSD_API == _MIPS_BSD_API_LP64) + # nothing to do +#else # NOTE: a1 is padding! #if _BYTE_ORDER == _BIG_ENDIAN @@ -408,6 +412,7 @@ dsll a3, a3, 32 # high word in a3 #endif or a1, a2, a3 +#endif sd a1, 0(a0) #if !defined(_MIPS_BSD_API) || _MIPS_BSD_API == _MIPS_BSD_API_LP32