diff options
author | Nick Clifton <nickc@redhat.com> | 2011-10-05 14:13:31 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2011-10-05 14:13:31 +0000 |
commit | d4cb0ea0caf03bea93ae6891017bb2301facb33f (patch) | |
tree | cf3cb39ee841888cd026e0063f36241cc514fefb /binutils | |
parent | b1c8db38fceb8464f02f1673b52c926c56203593 (diff) | |
download | gdb-d4cb0ea0caf03bea93ae6891017bb2301facb33f.zip gdb-d4cb0ea0caf03bea93ae6891017bb2301facb33f.tar.gz gdb-d4cb0ea0caf03bea93ae6891017bb2301facb33f.tar.bz2 |
* readelf.c (get_machine_dlags): Add support for RX's PID mode.
* ld-scripts/phdrs.exp: Expect to fail for the RX.
* elf32-rx.c: Add support for PID mode.
(rx_elf_relocate_section): Add checks for unsafe PID relocations.
Include addend in R_RX_SYM relocations.
* config/rx-defs.h (rx_pid_register): New.
(rx_gp_register): New.
* config/rx-parse.y (rx_lex): Add support for %gpreg and %pidreg.
(displacement): Add PID support.
* config/tc-rx.c (rx_pid_mode): New.
(rx_num_int_regs): New.
(rx_pid_register): New.
(rx_gp_register): New.
(options): Add -mpid and -mint-register= options.
(md_longopts): Likewise.
(md_parse_option): Likewise.
(md_show_usage): Likewise.
(rx_pid_symbol): New.
(rx_pidreg_symbol): New.
(rx_gpreg_symbol): New.
(md_begin): Support PID.
(rx_validate_fix_sub): Support PID.
(tc_gen_reloc): Support PID.
* doc/c-rx.texi: Document PID support.
* rx.h (E_FLAG_RX_PID): New.
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/ChangeLog | 7 | ||||
-rw-r--r-- | binutils/readelf.c | 5 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/objdump.exp | 40 |
3 files changed, 33 insertions, 19 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 9f10a2b..8d6e3c2 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,4 +1,9 @@ -2011-10-04 Paul Woegerer <paul_woegerer@mentor.com> +2011-10-05 DJ Delorie <dj@redhat.com> + Nick Clifton <nickc@redhat.com> + + * readelf.c (get_machine_dlags): Add support for RX's PID mode. + +2011-10-04 Paul Woegerer <paul_woegerer@mentor.com> Carlos O'Donell <carlos@codesourcery.com> * dwarf.c (display_debug_lines_decoded): Index directory_table with diff --git a/binutils/readelf.c b/binutils/readelf.c index 61064ca..d68cf27 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -2595,14 +2595,19 @@ get_machine_flags (unsigned e_flags, unsigned e_machine) strcat (buf, ", 64-bit doubles"); if (e_flags & E_FLAG_RX_DSP) strcat (buf, ", dsp"); + if (e_flags & E_FLAG_RX_PID) + strcat (buf, ", pid"); + break; case EM_S390: if (e_flags & EF_S390_HIGH_GPRS) strcat (buf, ", highgprs"); + break; case EM_TI_C6000: if ((e_flags & EF_C6000_REL)) strcat (buf, ", relocatable module"); + break; } } diff --git a/binutils/testsuite/binutils-all/objdump.exp b/binutils/testsuite/binutils-all/objdump.exp index ef5f246..3206a00 100644 --- a/binutils/testsuite/binutils-all/objdump.exp +++ b/binutils/testsuite/binutils-all/objdump.exp @@ -204,28 +204,32 @@ if { ![is_elf_format] } then { # Test objdump -WL on a file that contains line information for multiple files and search directories. -if { ![binutils_assemble $srcdir/$subdir/dw2-decodedline.S tmpdir/dw2-decodedline.o] } then { - fail "objdump decoded line" -} - -if [is_remote host] { - set decodedline_testfile [remote_download host tmpdir/dw2-decodedline.o] +if { ![is_elf_format] } then { + unsupported "objump decode line" } else { - set decodedline_testfile tmpdir/dw2-decodedline.o -} + if { ![binutils_assemble $srcdir/$subdir/dw2-decodedline.S tmpdir/dw2-decodedline.o] } then { + fail "objdump decoded line" + } + + if [is_remote host] { + set decodedline_testfile [remote_download host tmpdir/dw2-decodedline.o] + } else { + set decodedline_testfile tmpdir/dw2-decodedline.o + } -set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -WL $decodedline_testfile" "" "/dev/null" "objdump.out"] + set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -WL $decodedline_testfile" "" "/dev/null" "objdump.out"] -if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { - fail "objdump -WL (reason: unexpected output)" - send_log $got - send_log "\n" -} + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "objdump -WL (reason: unexpected output)" + send_log $got + send_log "\n" + } -if { [regexp_diff objdump.out $srcdir/$subdir/objdump.WL] } then { - fail "objdump -WL" -} else { - pass "objdump -WL" + if { [regexp_diff objdump.out $srcdir/$subdir/objdump.WL] } then { + fail "objdump -WL" + } else { + pass "objdump -WL" + } } # Options which are not tested: -a -d -D -R -T -x -l --stabs |