* 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.
This commit is contained in:
Alan Modra
2009-09-08 10:34:27 +00:00
parent 8a7e4aa012
commit 4dc3c23df4
3 changed files with 61 additions and 7 deletions

View File

@@ -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)