* readelf.c (decode_location_expression): Sign extend value for
DW_OP_const1s, DW_OP_const2s, DW_OP_const4s, DW_OP_bra, DW_OP_skip.
This commit is contained in:
parent
747a5874e5
commit
74013231d1
2 changed files with 16 additions and 10 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2004-09-12 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* readelf.c (decode_location_expression): Sign extend value for
|
||||||
|
DW_OP_const1s, DW_OP_const2s, DW_OP_const4s, DW_OP_bra, DW_OP_skip.
|
||||||
|
|
||||||
2004-09-09 Nick Clifton <nickc@redhat.com>
|
2004-09-09 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
PR 363
|
PR 363
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
/* readelf.c -- display contents of an ELF format file
|
/* readelf.c -- display contents of an ELF format file
|
||||||
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
Originally developed by Eric Youngdale <eric@andante.jic.com>
|
Originally developed by Eric Youngdale <eric@andante.jic.com>
|
||||||
Modifications by Nick Clifton <nickc@redhat.com>
|
Modifications by Nick Clifton <nickc@redhat.com>
|
||||||
|
@ -23,7 +24,7 @@
|
||||||
|
|
||||||
/* The difference between readelf and objdump:
|
/* The difference between readelf and objdump:
|
||||||
|
|
||||||
Both programs are capabale of displaying the contents of ELF format files,
|
Both programs are capable of displaying the contents of ELF format files,
|
||||||
so why does the binutils project have two file dumpers ?
|
so why does the binutils project have two file dumpers ?
|
||||||
|
|
||||||
The reason is that objdump sees an ELF file through a BFD filter of the
|
The reason is that objdump sees an ELF file through a BFD filter of the
|
||||||
|
@ -7670,14 +7671,14 @@ decode_location_expression (unsigned char * data,
|
||||||
printf ("DW_OP_const1u: %lu", (unsigned long) byte_get (data++, 1));
|
printf ("DW_OP_const1u: %lu", (unsigned long) byte_get (data++, 1));
|
||||||
break;
|
break;
|
||||||
case DW_OP_const1s:
|
case DW_OP_const1s:
|
||||||
printf ("DW_OP_const1s: %ld", (long) byte_get (data++, 1));
|
printf ("DW_OP_const1s: %ld", (long) byte_get_signed (data++, 1));
|
||||||
break;
|
break;
|
||||||
case DW_OP_const2u:
|
case DW_OP_const2u:
|
||||||
printf ("DW_OP_const2u: %lu", (unsigned long) byte_get (data, 2));
|
printf ("DW_OP_const2u: %lu", (unsigned long) byte_get (data, 2));
|
||||||
data += 2;
|
data += 2;
|
||||||
break;
|
break;
|
||||||
case DW_OP_const2s:
|
case DW_OP_const2s:
|
||||||
printf ("DW_OP_const2s: %ld", (long) byte_get (data, 2));
|
printf ("DW_OP_const2s: %ld", (long) byte_get_signed (data, 2));
|
||||||
data += 2;
|
data += 2;
|
||||||
break;
|
break;
|
||||||
case DW_OP_const4u:
|
case DW_OP_const4u:
|
||||||
|
@ -7685,7 +7686,7 @@ decode_location_expression (unsigned char * data,
|
||||||
data += 4;
|
data += 4;
|
||||||
break;
|
break;
|
||||||
case DW_OP_const4s:
|
case DW_OP_const4s:
|
||||||
printf ("DW_OP_const4s: %ld", (long) byte_get (data, 4));
|
printf ("DW_OP_const4s: %ld", (long) byte_get_signed (data, 4));
|
||||||
data += 4;
|
data += 4;
|
||||||
break;
|
break;
|
||||||
case DW_OP_const8u:
|
case DW_OP_const8u:
|
||||||
|
@ -7775,7 +7776,7 @@ decode_location_expression (unsigned char * data,
|
||||||
printf ("DW_OP_xor");
|
printf ("DW_OP_xor");
|
||||||
break;
|
break;
|
||||||
case DW_OP_bra:
|
case DW_OP_bra:
|
||||||
printf ("DW_OP_bra: %ld", (long) byte_get (data, 2));
|
printf ("DW_OP_bra: %ld", (long) byte_get_signed (data, 2));
|
||||||
data += 2;
|
data += 2;
|
||||||
break;
|
break;
|
||||||
case DW_OP_eq:
|
case DW_OP_eq:
|
||||||
|
@ -7797,7 +7798,7 @@ decode_location_expression (unsigned char * data,
|
||||||
printf ("DW_OP_ne");
|
printf ("DW_OP_ne");
|
||||||
break;
|
break;
|
||||||
case DW_OP_skip:
|
case DW_OP_skip:
|
||||||
printf ("DW_OP_skip: %ld", (long) byte_get (data, 2));
|
printf ("DW_OP_skip: %ld", (long) byte_get_signed (data, 2));
|
||||||
data += 2;
|
data += 2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue