summaryrefslogtreecommitdiff
path: root/binutils/dwarf.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2009-09-08 10:34:27 +0000
committerAlan Modra <amodra@bigpond.net.au>2009-09-08 10:34:27 +0000
commit77a447c5a5aeeead37e933816199634b1bb42c1c (patch)
tree1d47bc78604b380fa02677fde13423e75dd16d21 /binutils/dwarf.c
parent7df79a29919e268692ed4f12ef63391d4df1d7d0 (diff)
downloadbinutils-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.c10
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)