mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
Simplify code for accessing powerpc GOT
This commit is contained in:
committed by
Ulrich Drepper
parent
a1267ba1c6
commit
91d2a8453f
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2009 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2009, 2011 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -29,10 +29,9 @@
|
||||
|
||||
#ifdef PIC
|
||||
# define LOAD_ARG \
|
||||
bcl 20,31,1f; \
|
||||
1: mflr r3; \
|
||||
addis r3,r3,_GLOBAL_OFFSET_TABLE_-1b@ha; \
|
||||
addi r3,r3,_GLOBAL_OFFSET_TABLE_-1b@l; \
|
||||
SETUP_GOT_ACCESS(r3,got_label2); \
|
||||
addis r3,r3,_GLOBAL_OFFSET_TABLE_-got_label2@ha; \
|
||||
addi r3,r3,_GLOBAL_OFFSET_TABLE_-got_label2@l; \
|
||||
lwz r3,.LC0@got(r3)
|
||||
#else
|
||||
# define LOAD_ARG \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* brk system call for Linux/ppc.
|
||||
Copyright (C) 1995-97, 1999, 2000, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995-97, 1999, 2000, 2006, 2011 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -36,10 +36,9 @@ ENTRY (BP_SYM (__brk))
|
||||
DO_CALL(SYS_ify(brk))
|
||||
lwz r6,8(r1)
|
||||
#ifdef PIC
|
||||
bcl 20,31,1f
|
||||
1: mflr r5
|
||||
addis r5,r5,__curbrk-1b@ha
|
||||
stw r3,__curbrk-1b@l(r5)
|
||||
SETUP_GOT_ACCESS(r5,got_label)
|
||||
addis r5,r5,__curbrk-got_label@ha
|
||||
stw r3,__curbrk-got_label@l(r5)
|
||||
#else
|
||||
lis r4,__curbrk@ha
|
||||
stw r3,__curbrk@l(r4)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Save current context, powerpc32 common.
|
||||
Copyright (C) 2005, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2006, 2011 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -145,10 +145,9 @@ ENTRY(__CONTEXT_FUNC_NAME)
|
||||
# ifdef __CONTEXT_ENABLE_VRS
|
||||
# ifdef PIC
|
||||
mflr r8
|
||||
bcl 20,31,1f
|
||||
1: mflr r7
|
||||
addis r7,r7,_GLOBAL_OFFSET_TABLE_-1b@ha
|
||||
addi r7,r7,_GLOBAL_OFFSET_TABLE_-1b@l
|
||||
SETUP_GOT_ACCESS(r7,got_label)
|
||||
addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
|
||||
addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
|
||||
# ifdef SHARED
|
||||
lwz r7,_rtld_global_ro@got(r7)
|
||||
mtlr r8
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Jump to a new context powerpc32 common.
|
||||
Copyright (C) 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2006, 2008, 2009, 2011 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -73,10 +73,9 @@ ENTRY(__CONTEXT_FUNC_NAME)
|
||||
|
||||
#ifdef PIC
|
||||
mflr r8
|
||||
bcl 20,31,1f
|
||||
1: mflr r7
|
||||
addis r7,r7,_GLOBAL_OFFSET_TABLE_-1b@ha
|
||||
addi r7,r7,_GLOBAL_OFFSET_TABLE_-1b@l
|
||||
SETUP_GOT_ACCESS(r7,got_label)
|
||||
addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
|
||||
addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
|
||||
# ifdef SHARED
|
||||
lwz r7,_rtld_global_ro@got(r7)
|
||||
mtlr r8
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Save current context and jump to a new context.
|
||||
Copyright (C) 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2006, 2008, 2009, 2011 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -146,10 +146,9 @@ ENTRY(__CONTEXT_FUNC_NAME)
|
||||
|
||||
# ifdef PIC
|
||||
mflr r8
|
||||
bcl 20,31,1f
|
||||
1: mflr r7
|
||||
addis r7,r7,_GLOBAL_OFFSET_TABLE_-1b@ha
|
||||
addi r7,r7,_GLOBAL_OFFSET_TABLE_-1b@l
|
||||
SETUP_GOT_ACCESS(r7,got_label)
|
||||
addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
|
||||
addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
|
||||
# ifdef SHARED
|
||||
lwz r7,_rtld_global_ro@got(r7)
|
||||
mtlr r8
|
||||
@@ -299,10 +298,9 @@ ENTRY(__CONTEXT_FUNC_NAME)
|
||||
# ifdef PIC
|
||||
mflr r8
|
||||
# ifdef HAVE_ASM_PPC_REL16
|
||||
bcl 20,31,5f
|
||||
5: mflr r7
|
||||
addis r7,r7,_GLOBAL_OFFSET_TABLE_-5b@ha
|
||||
addi r7,r7,_GLOBAL_OFFSET_TABLE_-5b@l
|
||||
SETUP_GOT_ACCESS(r7,got_label)
|
||||
addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
|
||||
addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
|
||||
# else
|
||||
bl _GLOBAL_OFFSET_TABLE_@local-4
|
||||
mflr r7
|
||||
|
||||
Reference in New Issue
Block a user