s390/exceptions: switch to relative exception table entries

This is the s390 port of 70627654 "x86, extable: Switch to relative
exception table entries".
Reduces the size of our exception tables by 50% on 64 bit builds.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Heiko Carstens 2012-09-05 13:26:11 +02:00 committed by Martin Schwidefsky
parent 24996edce5
commit eb608fb366
10 changed files with 132 additions and 33 deletions

View file

@ -161,7 +161,7 @@ typedef void (*table_sort_t)(char *, int);
#define SORTEXTABLE_64
#include "sortextable.h"
static int compare_x86_table(const void *a, const void *b)
static int compare_relative_table(const void *a, const void *b)
{
int32_t av = (int32_t)r(a);
int32_t bv = (int32_t)r(b);
@ -173,7 +173,7 @@ static int compare_x86_table(const void *a, const void *b)
return 0;
}
static void sort_x86_table(char *extab_image, int image_size)
static void sort_relative_table(char *extab_image, int image_size)
{
int i;
@ -188,7 +188,7 @@ static void sort_x86_table(char *extab_image, int image_size)
i += 4;
}
qsort(extab_image, image_size / 8, 8, compare_x86_table);
qsort(extab_image, image_size / 8, 8, compare_relative_table);
/* Now denormalize. */
i = 0;
@ -245,9 +245,9 @@ do_file(char const *const fname)
break;
case EM_386:
case EM_X86_64:
custom_sort = sort_x86_table;
break;
case EM_S390:
custom_sort = sort_relative_table;
break;
case EM_MIPS:
break;
} /* end switch */