Mike Frysinger [Sun, 27 Mar 2011 04:03:05 +0000 (04:03 +0000)]
sim: bfin: handle saturation with RND12 sub insns
The current handling of the subtraction insn with the RND12 modifier
works when saturation isn't involved. So add handling for this edge
case to match the hardware.
Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Nick Clifton [Fri, 25 Mar 2011 18:01:58 +0000 (18:01 +0000)]
* dwarf.c (decode_location_expression): Use dwarf_vmatoa
function to display DW_OP_addr OP.
(process_debug_info): Use dwarf_vma type for local variables
length and type_offset.
Tristan Gingold [Fri, 25 Mar 2011 15:31:27 +0000 (15:31 +0000)]
2011-03-25 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (evax_section_flags): Make $CODE$ section read-only.
Minor reordering.
(alpha_vms_create_eisd_for_section): Make code sections read-only.
Nick Clifton [Fri, 25 Mar 2011 15:15:52 +0000 (15:15 +0000)]
Replace bfd_vma type and analog types by dwarf_vma and analogs.
Use dwarf specific print functions to display these type values.
* dwarf.h (dwarf_signed_vma): New type;
(DWARF2_External_LineInfo): Replace bfd_vma by dwarf_vma.
(DWARF2_External_PubNames): Likewise.
(DWARF2_External_CompUnit): Likewise.
(DWARF2_External_ARange): Likewise.
(read_leb128): Change return type to dwarf_vma.
* dwarf.c (print_dwarf_vma): Use __MINGW32__ conditional and
check byte_size values.
(dwarf_vmatoa): Change parameter type to dwarf_vma.
(dwarf_svmatoa): New static function.
(read_leb128): Change return type to dwarf_vma.
(read_sleb128): New static function.
(struct State_Machine_Registers): Change address field type to
dwarf_vma.
(process_extended_line_op): Adapt to type changes.
(fetch_indirect_string): Likewise.
(idisplay_block): Likewise.
(decode_location_expression): Likewise.
(read_and_display_attr_value): Likewise.
(process_debug_info): Likewise.
(display_debug_lines_raw): Likewise.
(display_debug_lines_decoded): Likewise.
(SLEB macro): Use new read_sleb128 function.
Andrew Burgess [Fri, 25 Mar 2011 13:08:11 +0000 (13:08 +0000)]
Move environment modifications into gdb_init so it's done just once per
test, and clear the GREP_OPTIONS environment variable. See,
http://sourceware.org/ml/gdb-patches/2011-03/msg00886.html
Mike Frysinger [Fri, 25 Mar 2011 00:13:23 +0000 (00:13 +0000)]
sim: bfin: fix GPIO logic bugs when processing events
We need the DIR bit cleared, not set, in order for the pin to be treated
as an input.
When looking up the data value, we need to shift the "level" value over by
"my_port" rather than "bit" as the latter has already been shifted over.
We also should normalize the "level" coming in from the outside worlds to
the set of {0,1} since those are the only values that matter to GPIOs.
We need the BOTH bit set, not cleared, in order for the pin to trigger
on both edges.
Mike Frysinger [Fri, 25 Mar 2011 00:12:47 +0000 (00:12 +0000)]
sim: bfin: fix clear/set/toggle GPIO handling
The clear/set/toggle MMRs aren't backed by "real" data; they implicitly
perform bit operations on the associated data register. So when we go
to process writes to them, we need to adjust the pointer accordingly so
that the actual backing data is modified.
* Makefile.def: Add dependency from termcap to gdb.
* Makefile.in: Regenerate.
2011-03-24 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Remove all mentions of mh-sysv4 and mh-solaris.
* configure: Regenerate.
* Makefile.def: Remove all mentions of X11_FLAGS_TO_PASS.
* Makefile.tpl: Likewise.
* Makefile.in: Regenerate.
2011-03-24 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Remove all mentions of tentative_cc.
* configure: Regenerate.
2011-03-16 Jack Howarth <howarth@bromo.med.uc.edu>
Mike Frysinger [Thu, 24 Mar 2011 05:27:39 +0000 (05:27 +0000)]
opcodes: blackfin: ignore (M) on MAC0-only dsp mac funcs
If the MAC1 part of the insn is disabled, then the (M) flag is ignored.
Rather than include it in the decode, move the MM clearing to the MAC0
portion of the code.
Mike Frysinger [Thu, 24 Mar 2011 04:34:33 +0000 (04:34 +0000)]
gas: blackfin: test all 16bit insns
The current 16bit insn test doesn't actually cover all illegal insns
since it stops at 0xa000 instead of 0xc000. But rather than address
that, replace it with a test that covers all 16bit insns.
Mike Frysinger [Thu, 24 Mar 2011 04:25:25 +0000 (04:25 +0000)]
gas: blackfin: catch invalid dest dregs in dsp mult insns
While we were catching a few mismatches in vectorized dsp mult insns,
the error we displayed was misleading. Once we fix that up, we can
convert previously dead code into proper checking for destination
dreg matching.
Mike Frysinger [Thu, 24 Mar 2011 03:17:14 +0000 (03:17 +0000)]
sim: bfin: fix inverted W1C logic
When I originally wrote the w1c helper funcs, I used it in a few places.
Then I forgot how it worked and when I later documented it, I described
the 3rd arg in the exact opposite way it is actually used. This error
propagated to a bunch of devices registers that were not explicitly
tested (a bunch of the devices are stubs which merely exist to say "no
device is connected" to make device drivers happy).
So once the documentation is unscrewed, fix all of the broken call sites.
Mike Frysinger [Thu, 24 Mar 2011 03:14:20 +0000 (03:14 +0000)]
sim: bfin: update VIT_MAX behavior to match hardware when Acc.X bits are set
The Blackfin PRM says that the top 8 bits of the accumulator must be
cleared when using the VIT_MAX insn, so the sim has followed this spec.
Matching the hardware behavior though when the high bits are not cleared
is easy to do and doesn't break existing behavior, so go for it.
Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Thu, 24 Mar 2011 03:13:32 +0000 (03:13 +0000)]
sim: bfin: always do 16bit sign extension with the SEARCH insn
The Blackfin PRM does not cover this case, but the hardware is clear: even
if the search criteria is not met (and thus a new 16bit value is loaded up
into the accumulator), the accumulator undergoes 16bit sign extension. So
simply reload the low signed 16bits in that case.
Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Thu, 24 Mar 2011 03:12:16 +0000 (03:12 +0000)]
sim: bfin: update AV and AC ASTAT bits with acc negation
The Acc=-Acc insn can overflow or carry with edge values, so make sure
we update the ASTAT bits accordingly to match the hardware. Also fix
a thinko where we always updated AC0 even when working with A1 regs.
Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Thu, 24 Mar 2011 03:11:08 +0000 (03:11 +0000)]
sim: bfin: fix thinko in SIC pin encoding
When encoding the SIC/pin info into unique input port ids, I used bases
of 100 when I meant to use 0x100. Rather than simply fix the decoding
math in the different functions, create a few helper macros to simplify
the SIC/pin encoding and decoding steps. This makes the resulting tables
nice & clear.
And now that pins are clear, the 533 and 537 port_event handlers may
easily be merged into one.
Mike Frysinger [Thu, 24 Mar 2011 03:07:33 +0000 (03:07 +0000)]
sim: bfin: fix thinko in bfin_gpio bus addresses
The bus addresses have to be valid numbers, so 'g' and 'h' won't work.
Oddly, the common code silently ignored this which is why I didn't notice
in the first place.
/gas:
2011-03-22 Eric B. Weddington <eric.weddington@atmel.com>
* config/tc-avr.c (struct avr_opcodes_s): Add opcode field.
(AVR_INSN): Change definition to match.
(avr_opcodes): Likewise, change to match.
(mcu_types): Add XMEGA architecture names and new XMEGA device names.
(md_show_usage): Add XMEGA architecture names.
(avr_operand): Add 'E' constraint for DES instruction of XMEGA devices.
Add support for SPM Z+ instruction.
* doc/c-avr.texi: Add documentation for XMEGA architectures and
devices.
/include/opcode:
2011-03-22 Eric B. Weddington <eric.weddington@atmel.com>
* avr.h (AVR_ISA_SPMX,AVR_ISA_DES,AVR_ISA_M256,AVR_ISA_XMEGA):
New instruction set flags.
(AVR_INSN): Add new instructions for SPM Z+, DES for XMEGA.
/ld:
2011-03-22 Eric B. Weddington <eric.weddington@atmel.com>
* Makefile.am (ALL_EMULATION_SOURCES): Add AVR XMEGA architectures.
(eavrxmega?.c): Likewise.
* configure.tgt (targ_extra_emuls): Likewise.
* emulparams/avrxmega1.sh: New file.
* emulparams/avrxmega2.sh: Likewise.
* emulparams/avrxmega3.sh: Likewise.
* emulparams/avrxmega4.sh: Likewise.
* emulparams/avrxmega5.sh: Likewise.
* emulparams/avrxmega6.sh: Likewise.
* emulparams/avrxmega7.sh: Likewise.
* emultempl/avrelf.em (avr_elf_${EMULATION_NAME}_before_allocation):
Add avrxmega6, avrxmega7 to list of architectures for no stubs.
/opcodes:
2011-03-22 Eric B. Weddington <eric.weddington@atmel.com>
* avr-dis.c (avr_operand): Add opcode_str parameter. Check for
post-increment to support LPM Z+ instruction. Add support for 'E'
constraint for DES instruction.
(print_insn_avr): Adjust calls to avr_operand. Rename variable.
Jan Kratochvil [Tue, 22 Mar 2011 17:35:22 +0000 (17:35 +0000)]
gdb/
Code cleanup.
* c-typeprint.c (c_type_print_args): Change parameter show_artificial
to linkage_name. Invert its value. Update the function comment.
(c_type_print_varspec_suffix): Invert it at the caller.
* dwarf2read.c (dwarf2_compute_name): Invert it at the caller.
Pedro Alves [Tue, 22 Mar 2011 14:39:40 +0000 (14:39 +0000)]
* infcmd.c (post_create_inferior): Ignore NOT_AVAILABLE_ERROR
errors when reading the `stop_pc'.
* printcmd.c (pc_prefix): Use get_frame_pc_if_available instead of
get_frame_pc.
Jan Kratochvil [Tue, 22 Mar 2011 09:50:42 +0000 (09:50 +0000)]
gdb/
Revert:
2011-03-21 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarf2read.c (producer_is_gxx_lt_4_6): New function.
(dwarf2_add_field): Fix new_field->accessibility for
cu->header.version >= 3 while verifying also producer_is_gxx_lt_4_6.
Kevin Buettner [Mon, 21 Mar 2011 22:05:56 +0000 (22:05 +0000)]
* simops (OP_10007E0): Update errno handling as most traps
do not invoke the host's functionality directly. Invoke
sim_io_stat() instead of stat() for implementing TARGET_SYS_stat.
Implement TARGET_SYS_fstat, TARGET_SYS_rename, and TARGET_SYS_unlink.