diff options
author | Alan Modra <amodra@bigpond.net.au> | 2009-09-08 10:34:27 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2009-09-08 10:34:27 +0000 |
commit | 77a447c5a5aeeead37e933816199634b1bb42c1c (patch) | |
tree | 1d47bc78604b380fa02677fde13423e75dd16d21 /binutils/dwarf.c | |
parent | 7df79a29919e268692ed4f12ef63391d4df1d7d0 (diff) | |
download | binutils-redhat-77a447c5a5aeeead37e933816199634b1bb42c1c.tar.gz |
* dwarf.c (byte_get_little_endian): Handle size of 3.
(byte_get_big_endian): Likewise.
* readelf.c (byte_put_little_endian): Likewise.
(byte_put_big_endian): Likewise.
(is_24bit_abs_reloc): New function.
(is_none_reloc): Formatting.
(apply_relocations): Use is_24bit_abs_reloc. Handle pj and xtensa
reloc peculiarity.
Diffstat (limited to 'binutils/dwarf.c')
-rw-r--r-- | binutils/dwarf.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 46b6929a01..6c9a1a6fa7 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -72,6 +72,11 @@ byte_get_little_endian (unsigned char *field, int size) return ((unsigned int) (field[0])) | (((unsigned int) (field[1])) << 8); + case 3: + return ((unsigned long) (field[0])) + | (((unsigned long) (field[1])) << 8) + | (((unsigned long) (field[2])) << 16); + case 4: return ((unsigned long) (field[0])) | (((unsigned long) (field[1])) << 8) @@ -114,6 +119,11 @@ byte_get_big_endian (unsigned char *field, int size) case 2: return ((unsigned int) (field[1])) | (((int) (field[0])) << 8); + case 3: + return ((unsigned long) (field[2])) + | (((unsigned long) (field[1])) << 8) + | (((unsigned long) (field[0])) << 16); + case 4: return ((unsigned long) (field[3])) | (((unsigned long) (field[2])) << 8) |