From b6bceb11f33751ad935ec57819936cd2657d0d54 Mon Sep 17 00:00:00 2001 From: jakub Date: Tue, 1 Oct 2013 09:17:51 +0000 Subject: [PATCH] * testsuite/ifunc.h (IFUNC_ASM): Add s390x and s390 version. git-svn-id: http://sourceware.org/svn/prelink@208 94c539fb-cf18-0410-b60f-edeeb537fa16 --- trunk/ChangeLog | 4 ++++ trunk/testsuite/ifunc.h | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/trunk/ChangeLog b/trunk/ChangeLog index 16f49fa..10de6f3 100644 --- a/trunk/ChangeLog +++ b/trunk/ChangeLog @@ -1,3 +1,7 @@ +2013-10-01 Jakub Jelinek + + * testsuite/ifunc.h (IFUNC_ASM): Add s390x and s390 version. + 2013-09-30 Richard Sandiford * src/arch-s390.c (s390_prelink_conflict_rela): Fix handling of diff --git a/trunk/testsuite/ifunc.h b/trunk/testsuite/ifunc.h index a1894b3..44aaba3 100644 --- a/trunk/testsuite/ifunc.h +++ b/trunk/testsuite/ifunc.h @@ -35,6 +35,22 @@ asm (".text\n" \ IFUNC_ASM (PICK (fn1, fn2)) \ "\t.size " #name ", .-.L" #name "\n") # endif +#elif defined __s390x__ +# define IFUNC_ASM(fn) "\tlarl %r2," fn "\n" \ + "\tbr %r14\n" +#elif defined __s390__ +# define IFUNC_ASM(fn) "\t" \ + "\tst %r12,48(%r15)\n" \ + "\tbasr %r5,0\n" \ + "1:\tl %r12,3f-1b(%r5)\n" \ + "\tl %r1,2f-1b(%r5)\n" \ + "\tla %r12,0(%r12,%r5)\n" \ + "\tla %r2,0(%r1,%r12)\n" \ + "\tl %r12,48(%r15)\n" \ + "\tbr %r14\n" \ + "\t.align 4\n" \ + "2:\t.long " fn "@GOTOFF\n" \ + "3:\t.long _GLOBAL_OFFSET_TABLE_-1b\n" #else # error Architecture not supported #endif