mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 08:11:08 +00:00
Powerpc: correct duplicate label issue with multiple passes through context code
This commit is contained in:
parent
0cc5ed3b01
commit
929d11c7cf
@ -1,3 +1,11 @@
|
|||||||
|
2012-01-04 Will Schmidt <will_schmidt@vnet.ibm.com>
|
||||||
|
|
||||||
|
* powerpc/powerpc32/sysdep.h: Add GLUE and GENERATE_GOT_LABEL macros.
|
||||||
|
* unix/sysv/linux/powerpc/powerpc32/getcontext-common.S: Call
|
||||||
|
macro to ensure uniqueness of label name.
|
||||||
|
* unix/sysv/linux/powerpc/powerpc32/setcontext-common.S: Likewise.
|
||||||
|
* unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S: Likewise.
|
||||||
|
|
||||||
2012-01-11 Ulrich Drepper <drepper@gmail.com>
|
2012-01-11 Ulrich Drepper <drepper@gmail.com>
|
||||||
|
|
||||||
* sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c: New file.
|
* sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c: New file.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Assembly macros for 32-bit PowerPC.
|
/* Assembly macros for 32-bit PowerPC.
|
||||||
Copyright (C) 1999, 2001, 2002, 2003, 2006, 2011
|
Copyright (C) 1999, 2001, 2002, 2003, 2006, 2011, 2012
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ GOT_LABEL: ; \
|
|||||||
ASM_SIZE_DIRECTIVE(name)
|
ASM_SIZE_DIRECTIVE(name)
|
||||||
|
|
||||||
#define DO_CALL(syscall) \
|
#define DO_CALL(syscall) \
|
||||||
li 0,syscall; \
|
li 0,syscall; \
|
||||||
sc
|
sc
|
||||||
|
|
||||||
#undef JUMPTARGET
|
#undef JUMPTARGET
|
||||||
@ -153,6 +153,10 @@ GOT_LABEL: ; \
|
|||||||
#undef L
|
#undef L
|
||||||
#define L(x) .L##x
|
#define L(x) .L##x
|
||||||
|
|
||||||
|
#define XGLUE(a,b) a##b
|
||||||
|
#define GLUE(a,b) XGLUE (a,b)
|
||||||
|
#define GENERATE_GOT_LABEL(name) GLUE (.got_label, name)
|
||||||
|
|
||||||
/* Label in text section. */
|
/* Label in text section. */
|
||||||
#define C_TEXT(name) name
|
#define C_TEXT(name) name
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Save current context, powerpc32 common.
|
/* Save current context, powerpc32 common.
|
||||||
Copyright (C) 2005, 2006, 2011 Free Software Foundation, Inc.
|
Copyright (C) 2005, 2006, 2011, 2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -18,13 +18,13 @@
|
|||||||
02110-1301 USA. */
|
02110-1301 USA. */
|
||||||
|
|
||||||
/* This is the common implementation of getcontext for powerpc32.
|
/* This is the common implementation of getcontext for powerpc32.
|
||||||
It not complete in itself should be included in to a framework that
|
It not complete in itself should be included in to a framework that
|
||||||
defines:
|
defines:
|
||||||
__CONTEXT_FUNC_NAME
|
__CONTEXT_FUNC_NAME
|
||||||
and if appropriate:
|
and if appropriate:
|
||||||
__CONTEXT_ENABLE_FPRS
|
__CONTEXT_ENABLE_FPRS
|
||||||
__CONTEXT_ENABLE_VRS
|
__CONTEXT_ENABLE_VRS
|
||||||
Any archecture that implements the Vector unit is assumed to also
|
Any archecture that implements the Vector unit is assumed to also
|
||||||
implement the floating unit. */
|
implement the floating unit. */
|
||||||
|
|
||||||
/* Stack frame offsets. */
|
/* Stack frame offsets. */
|
||||||
@ -145,6 +145,7 @@ ENTRY(__CONTEXT_FUNC_NAME)
|
|||||||
# ifdef __CONTEXT_ENABLE_VRS
|
# ifdef __CONTEXT_ENABLE_VRS
|
||||||
# ifdef PIC
|
# ifdef PIC
|
||||||
mflr r8
|
mflr r8
|
||||||
|
# define got_label GENERATE_GOT_LABEL (__CONTEXT_FUNC_NAME)
|
||||||
SETUP_GOT_ACCESS(r7,got_label)
|
SETUP_GOT_ACCESS(r7,got_label)
|
||||||
addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
|
addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
|
||||||
addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
|
addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
|
||||||
@ -165,9 +166,9 @@ ENTRY(__CONTEXT_FUNC_NAME)
|
|||||||
|
|
||||||
la r10,(_UC_VREGS)(r3)
|
la r10,(_UC_VREGS)(r3)
|
||||||
la r9,(_UC_VREGS+16)(r3)
|
la r9,(_UC_VREGS+16)(r3)
|
||||||
|
|
||||||
beq 2f /* L(no_vec) */
|
beq 2f /* L(no_vec) */
|
||||||
/* address of the combined VSCR/VSAVE quadword. */
|
/* address of the combined VSCR/VSAVE quadword. */
|
||||||
la r8,(_UC_VREGS+512)(r3)
|
la r8,(_UC_VREGS+512)(r3)
|
||||||
|
|
||||||
/* Save the vector registers */
|
/* Save the vector registers */
|
||||||
@ -186,7 +187,7 @@ ENTRY(__CONTEXT_FUNC_NAME)
|
|||||||
addi r9,r9,32
|
addi r9,r9,32
|
||||||
|
|
||||||
stvx v0,0,r8
|
stvx v0,0,r8
|
||||||
|
|
||||||
stvx v4,0,r10
|
stvx v4,0,r10
|
||||||
stvx v5,0,r9
|
stvx v5,0,r9
|
||||||
addi r10,r10,32
|
addi r10,r10,32
|
||||||
@ -277,4 +278,3 @@ ENTRY(__CONTEXT_FUNC_NAME)
|
|||||||
mtlr r0
|
mtlr r0
|
||||||
blr
|
blr
|
||||||
END(__CONTEXT_FUNC_NAME)
|
END(__CONTEXT_FUNC_NAME)
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Jump to a new context powerpc32 common.
|
/* Jump to a new context powerpc32 common.
|
||||||
Copyright (C) 2005, 2006, 2008, 2009, 2011 Free Software Foundation, Inc.
|
Copyright (C) 2005, 2006, 2008, 2009, 2011, 2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -73,6 +73,7 @@ ENTRY(__CONTEXT_FUNC_NAME)
|
|||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
mflr r8
|
mflr r8
|
||||||
|
# define got_label GENERATE_GOT_LABEL (__CONTEXT_FUNC_NAME)
|
||||||
SETUP_GOT_ACCESS(r7,got_label)
|
SETUP_GOT_ACCESS(r7,got_label)
|
||||||
addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
|
addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
|
||||||
addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
|
addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Save current context and jump to a new context.
|
/* Save current context and jump to a new context.
|
||||||
Copyright (C) 2005, 2006, 2008, 2009, 2011 Free Software Foundation, Inc.
|
Copyright (C) 2005,2006,2008,2009,2011,2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -146,6 +146,7 @@ ENTRY(__CONTEXT_FUNC_NAME)
|
|||||||
|
|
||||||
# ifdef PIC
|
# ifdef PIC
|
||||||
mflr r8
|
mflr r8
|
||||||
|
# define got_label GENERATE_GOT_LABEL (__CONTEXT_FUNC_NAME)
|
||||||
SETUP_GOT_ACCESS(r7,got_label)
|
SETUP_GOT_ACCESS(r7,got_label)
|
||||||
addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
|
addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
|
||||||
addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
|
addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
|
||||||
|
Loading…
Reference in New Issue
Block a user