Commit 1274718f by Chung-Lin Tang Committed by Chung-Lin Tang

mips.h (CRT_CALL_STATIC_FUNCTION): Add nomips16 asm directives, remove #ifndef __mips16 guards.

2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Add nomips16 asm
	directives, remove #ifndef __mips16 guards.
	* config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use
	mapping style, add ../lib/mips16.
	(MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16.
	(MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32.

From-SVN: r190774
parent 867a8345
2012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
* config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Add nomips16 asm
directives, remove #ifndef __mips16 guards.
* config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use
mapping style, add ../lib/mips16.
(MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16.
(MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32.
2012-08-28 Walter Lee <walt@tilera.com> 2012-08-28 Walter Lee <walt@tilera.com>
* confg/tilegx/tilegx.md: Fix code style. * confg/tilegx/tilegx.md: Fix code style.
(*zero_extendsidi_truncdisi): Fix typo. (*zero_extendsidi_truncdisi): Fix typo.
......
...@@ -2793,7 +2793,6 @@ while (0) ...@@ -2793,7 +2793,6 @@ while (0)
#define STORE_BY_PIECES_P(SIZE, ALIGN) \ #define STORE_BY_PIECES_P(SIZE, ALIGN) \
mips_store_by_pieces_p (SIZE, ALIGN) mips_store_by_pieces_p (SIZE, ALIGN)
#ifndef __mips16
/* Since the bits of the _init and _fini function is spread across /* Since the bits of the _init and _fini function is spread across
many object files, each potentially with its own GP, we must assume many object files, each potentially with its own GP, we must assume
we need to load our GP. We don't preserve $gp or $ra, since each we need to load our GP. We don't preserve $gp or $ra, since each
...@@ -2802,27 +2801,32 @@ while (0) ...@@ -2802,27 +2801,32 @@ while (0)
#if (defined _ABIO32 && _MIPS_SIM == _ABIO32) #if (defined _ABIO32 && _MIPS_SIM == _ABIO32)
#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \ #define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
asm (SECTION_OP "\n\ asm (SECTION_OP "\n\
.set push\n\
.set nomips16\n\
.set noreorder\n\ .set noreorder\n\
bal 1f\n\ bal 1f\n\
nop\n\ nop\n\
1: .cpload $31\n\ 1: .cpload $31\n\
.set reorder\n\ .set reorder\n\
jal " USER_LABEL_PREFIX #FUNC "\n\ jal " USER_LABEL_PREFIX #FUNC "\n\
.set pop\n\
" TEXT_SECTION_ASM_OP); " TEXT_SECTION_ASM_OP);
#endif /* Switch to #elif when we're no longer limited by K&R C. */ #endif /* Switch to #elif when we're no longer limited by K&R C. */
#if (defined _ABIN32 && _MIPS_SIM == _ABIN32) \ #if (defined _ABIN32 && _MIPS_SIM == _ABIN32) \
|| (defined _ABI64 && _MIPS_SIM == _ABI64) || (defined _ABI64 && _MIPS_SIM == _ABI64)
#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \ #define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
asm (SECTION_OP "\n\ asm (SECTION_OP "\n\
.set push\n\
.set nomips16\n\
.set noreorder\n\ .set noreorder\n\
bal 1f\n\ bal 1f\n\
nop\n\ nop\n\
1: .set reorder\n\ 1: .set reorder\n\
.cpsetup $31, $2, 1b\n\ .cpsetup $31, $2, 1b\n\
jal " USER_LABEL_PREFIX #FUNC "\n\ jal " USER_LABEL_PREFIX #FUNC "\n\
.set pop\n\
" TEXT_SECTION_ASM_OP); " TEXT_SECTION_ASM_OP);
#endif #endif
#endif
#ifndef HAVE_AS_TLS #ifndef HAVE_AS_TLS
#define HAVE_AS_TLS 0 #define HAVE_AS_TLS 0
......
...@@ -18,4 +18,12 @@ ...@@ -18,4 +18,12 @@
MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64 MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
MULTILIB_DIRNAMES = n32 32 64 MULTILIB_DIRNAMES = n32 32 64
MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64 MULTILIB_OSDIRNAMES = mabi.n32=../lib32
MULTILIB_OSDIRNAMES += mabi.32=../lib
MULTILIB_OSDIRNAMES += mabi.64=../lib64
# MIPS16 is currently only supported under O32
MULTILIB_OPTIONS += mips16
MULTILIB_DIRNAMES += mips16
MULTILIB_OSDIRNAMES += mabi.32/mips16=../lib/mips16
MULTILIB_EXCLUSIONS = !mabi=32/mips16
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment