Ron Unrau [Mon, 8 Jun 1998 22:10:37 +0000 (22:10 +0000)]
* objfiles.c (add_to_objfile_sections): All targets to define
TARGET_KEEP_SECTION to permit them to retain bfd sections that
GDB would otherwise have discarded.
Joyce Janczyn [Mon, 8 Jun 1998 17:46:25 +0000 (17:46 +0000)]
Add timer and serial devices (mn103tim and mn103ser), support
--board=am32 for runtime control of device simulation, and adjust
interrupt settings to support am32 instead of am30.
Joyce Janczyn [Mon, 8 Jun 1998 17:23:11 +0000 (17:23 +0000)]
* interp.c: (mn10300_option_handler): New function parses arguments
using sim-options.
start-sanitize-am30
* (board): Add --board option for specifying am32.
* (sim_open): Create new timer and serial devices and control
configuration of other am32 devices via board option.
end-sanitize-am30
* config/tc-i386.c: REPNE renamed to REPNE_PREFIX_OPCODE, and
likewise for REPE.
* config/tc-i386.c (reloc): Add braces.
* config/tc-i386.c (struct _i386_insn): Rename bi to sib to be
consistent with Intel naming.
* config/tc-i386.h (base_index_byte): Rename to sib_byte. Don't
use bitfields in sib_byte.
(modrm_byte): Don't use bitfields here either.
* config/tc-i386.c (current_templates): Add const.
(parse_register): Add const to return, param, and char *s.
(i386_operand): Add const to reg_entry *r.
* config/tc-i386.h (templates): Add const to start, end.
Inspired by code for 16 bit gas support from Martynas Kunigelis
<[email protected]>:
* config/tc-i386.c (md_assemble): Add full support for 16 bit
modrm, and Jump, JumpByte, JumpDword, JumpInterSegment insns.
(uses_mem_addrmode): Remove.
(md_estimate_size_before_relax): Add support here too.
(md_relax_table): Rewrite interface to md_relax for 16 bit
support.
(BYTE, WORD, DWORD, UNKNOWN_SIZE): Remove.
(opcode_suffix_to_type): Remove.
(CODE16, SMALL, SMALL16, BIG, BIG16): Define.
(SIZE_FROM_RELAX_STATE): Modify to suit above.
(md_convert_frag): Likewise.
(i386_operand): Add support for 16 bit base/index regs,
immediates, and displacements. Remove some unnecessary casts, and
localise end_of_operand_string, displacement_string_start,
displacement_string_end variables. Add GCC_ASM_O_HACK.
* config/tc-i386.h (NO_BASE_REGISTER_16): Define.
* config/tc-i386.c (prefix_hash): Remove.
(md_begin): Rewrite without obstacks. Remove prefix hash table
handling. Rewrite lexical table handling.
(i386_print_statistics): Don't print prefix statistics.
(md_assemble): Rewrite instruction parser so that line is not
converted to lower case. Don't do a hash_find for prefixes,
instead recognise them via opcode modifier.
(expecting_operand, paren_not_balanced): Localise variables.
* config/tc-i386.h (IsPrefix): Define.
(prefix_entry): Remove.
* config/tc-i386.h (PREFIX_SEPERATOR): Don't define.
* config/tc-i386.c (PREFIX_SEPARATOR): Define here instead, using
'\\' in case where comment_chars contains '/'.
* config/tc-i386.c (MATCH): Ensure given operand and template
match for JumpAbsolute. Makes e.g. `ljmp table(%ebx)' invalid;
you must write `ljmp *table(%ebx)'.
From H.J. Lu <[email protected]>:
* config/tc-i386.c (BFD_RELOC_16, BFD_RELOC_16_PCREL): Define
as 0 ifndef BFD_ASSEMBLER.
(md_assemble): Allow immediate operands without suffix or
other reg operand to default in size to the current code size.
* i386.h (REPNE): Rename to REPNE_PREFIX_OPCODE.
(REPE): Rename to REPE_PREFIX_OPCODE.
(i386_regtab_end): Remove.
(i386_prefixtab, i386_prefixtab_end): Remove.
(i386_optab): Use NULL as sentinel rather than "" to suit rewrite
of md_begin.
(MAX_OPCODE_SIZE): Define.
(i386_optab_end): Remove.
(sl_Suf): Define.
(sl_FP): Use sl_Suf.
* i386.h (i386_optab): Allow 16 bit displacement for `mov
mem,acc'. Combine 16 and 32 bit forms of various insns. Allow 16
bit form of ljmp. Add IsPrefix modifier to prefixes. Add addr32,
data32, dword, and adword prefixes.
(i386_regtab): Add BaseIndex modifier to valid 16 bit base/index
regs.
* i386-dis.c: Combine aflag and dflag into sizeflag. Change OP_*
functions to void.
(OP_DSreg): Rename from OP_DSSI.
(OP_ESreg): Rename from OP_ESDI.
(Xb, Xv, Yb, Yv): Use index reg code, not b_mode or v_mode.
(DSBX): Define.
(append_seg): Rename from append_prefix.
(ptr_reg): New function.
(dis386): Add S suffix to pushf, popf, ret, lret, enter, leave.
Add DSBX for xlat.
(PREFIX_ADDR): Rename from PREFIX_ADR.
(float_reg): Add non-broken opcodes for people who don't want
UNIXWARE_COMPAT.
* i386.h (i386_regtab): Remove BaseIndex modifier from esp.
* i386.h: Allow `l' suffix on fld, fst, fstp, fcom, fcomp with
register operands, because this is a common idiom. Flag them with
a warning. Allow illegal faddp, fsubp, fsubrp, fmulp, fdivp,
fdivrp because gcc erroneously generates them. Also flag with a
warning.
* i386.h: Add suffix modifiers to most insns, and tighter operand
checks in some cases. Fix a number of UnixWare compatibility
issues with float insns. Merge some floating point opcodes, using
new FloatMF modifier.
(WORD_PREFIX_OPCODE): Rename to DATA_PREFIX_OPCODE for
consistency.
* i386.h: Change occurence of ShortformW to W|ShortForm. Add
IgnoreDataSize where appropriate.
* config/tc-i386.c (md_assemble): Rewrite MATCH and
CONSISTENT_REGISTER_MATCH macros to check register types more
thoroughly. Check for illegal suffix/operand combinations
when matching insns with operands. Handle new `s' suffix, and
associated FloatMF opcode modifier for float insns with memory
operands.
* config/tc-i386.h (FloatMF): Define new opcode modifier.
(No_sSuf, No_bSuf, No_wSuf, No_lSuf): Likewise.
(SHORT_OPCODE_SUFFIX, LONG_OPCODE_SUFFIX): Define.
* config/tc-i386.c: Rename WORD_PREFIX_OPCODE to
DATA_PREFIX_OPCODE throughout.
* config/tc-i386.c (REGISTER_WARNINGS): Define.
(md_assemble): Rewrite suffix/register operand checking code to be
more thorough. Remove Abs8,16,32. Change occurrences of Mem to
AnyMem, the better to grep.
(pi): Remove Abs.
(i386_operand): Don't set Mem bits in i.types[this_operand] when
given a memory operand. Don't set Abs bits either.
(type_names): Remove Mem*, Abs*.
* config/tc-i386.h (Mem8, Mem16, Mem32, Abs8, Abs16, Abs32): Don't
define opcode_modifiers as these cases are handled by Disp8,
Disp16, Disp32 and suffix checks.
(COMES_IN_BOTH_DIRECTIONS): Remove.
(FloatR): Define. It's OK to share the bit with ReverseRegRegmem.
* config/tc-i386.c (md_assemble): Don't emit operand size prefix
if IgnoreDataSize modifier given. Remove ShortformW modifier
test. Add test for ShortForm in W base_opcode modification.
Merge Seg2ShortForm and Seg3ShortForm code.
* config/tc-i386.h (ShortFormW): Remove.
(IgnoreDataSize): Define.
* gas/m68k/operands.s: For all pc relative addresses change tstl
to pea since the former does not allow pcrel on m68000. Do not
make label foo global, so that references to it can be relaxed on
ELF targets.
* gas/m68k/operands.d, gas/m68k/op68000.d: Updated.
Stan Shebs [Fri, 5 Jun 1998 01:38:26 +0000 (01:38 +0000)]
* remote.c (init_extended_remote_ops): Make extended_remote_ops
by copying from remote_ops, move it and init_remote_ops to
usual place at end of file, remove "void" from arg lists.
Mark Alexander [Fri, 5 Jun 1998 00:57:00 +0000 (00:57 +0000)]
* sparc-tdep.c (sparc_fix_call_dummy): Byte-swap the call dummy
on bi-endian machines.
(sparc_extract_return_value): Handle values smaller than int on
machines with little-endian data.
(sparc_target_architecture_hook): Set bi_endian flag.
- Elena Zannoni <[email protected]>
(call_obj_wrapper): in case of error, copy the
error message from the result to the error_string.
(gdbtk_fputs): add comments.
(gdb_actions_command): call validate_actionline when installing the
tracepoint, to do the syntax checking of the actions for us.
- Elena Zannoni <[email protected]>
(gdb_get_trace_frame_num): new function to get the
trace frame number from gdb.
(gdbtk_init): added new command gdb_get_trace_frame_num.
- Jim Blandy <[email protected]>
(struct wrapped_call_objs): Change the `func' member to
be a Tcl_ObjCmdProc, not an Tcl_CmdProc, since it accepts a vector
of objects as arguments. Change the object vector to be const,
since that's what all the users of this structure seem to expect.
(call_obj_wrapper): Cast clientData properly before storing it in
the wrapped_args structure.
- Jim Blandy <[email protected]>
(print_packet, remote_packet_command): New functions.
(_initialize_remote): Register the remote-packet command.
- David Taylor <[email protected]>
(_initialize_remote): remote-compare is now
compare-sections.
- Elena Zannoni <[email protected]>
(remote_compare_command): added warning, issued in case
of mismatch only.
* remote.c (remote_compare_command): New function, new command.
Compare object file binary image with corresponding memory on
remote target. Report differences.
* Early check-in of tx3904 timer sim implementation for ECC.
It is not yet properly tested.
Thu Jun 4 15:37:33 1998 Frank Ch. Eigler <[email protected]>
* dv-tx3904tmr.c: New file - implements tx3904 timer.
* dv-tx3904{irc,cpu}.c: Mild reformatting.
* configure.in: Include tx3904tmr in hw_device list.
* configure: Rebuilt.
* interp.c (sim_open): Instantiate three timer instances.
Fix address typo of tx3904irc instance.
Andrew Cagney [Thu, 4 Jun 1998 08:46:56 +0000 (08:46 +0000)]
The r5900 doesn't have HI/LO DIV/MUL register problems. Hobble
checks on hi/lo usage but retain functions so that they can be used
for HI/LO stall counting code.
Andrew Cagney [Thu, 4 Jun 1998 06:33:02 +0000 (06:33 +0000)]
Memory corruption problems - hw-event list wasn't correct
unlinking/freeing events. Couldn't handle the removal of a hw-event
that just been scheduled.
* config/tc-i386.c (END_STRING_AND_SAVE): Protect arguments of
macros and enclose in do while(0).
(RESTORE_END_STRING): Likewise.
(md_assemble): Add one to printed operand number so we start
from 1 not 0. Add some more gettext invocations.
(i386_operand): Fix `%%s' -> `%%%s'. Inc printed operand
number here too.
* config/tc-i386.h (WAIT_PREFIX, LOCKREP_PREFIX, ADDR_PREFIX,
DATA_PREFIX, SEG_PREFIX): Define.
* config/tc-i386.c (struct _i386_insn): Remove wait_prefix field.
(check_prefix): Remove function.
(add_prefix): New function. Add prefix to i.prefix as well as
doing checks.
(md_assemble): Changes for add_prefix. Remove hack for wait
prefix, instead always output prefixes in fixed order. Test
for jcxz/loop when selecting between word & dword operations,
and add address size prefix rather than operand size prefix.
Remove operand -> address size hack when emitting jcxz/loop.
(i386_operand): Remove O_Absent check as it's done in expr.
Doug Evans [Wed, 3 Jun 1998 19:15:56 +0000 (19:15 +0000)]
* mips.h (Elf32_Dvp_Internal_Overlay,Elf32_Dvp_External_Overlay):
Rename from 64 bit versions, update members to be 32 bits.
(bfd_dvp_elf32_swap_overlay_in,bfd_dvp_elf32_swap_overlay_out):
Rename from 64 bit versions.
Mark Alexander [Tue, 2 Jun 1998 22:43:46 +0000 (22:43 +0000)]
* interf.c (sim_open): Use revamped memory_read, which makes
byte-swapping unnecessary. Add -sparclite-board option for
emulating RAM found on typical SPARClite boards. Print
error message for unrecognized option.
* erc32.c: Change RAM address and size from constants to variables,
to allow emulation of SPARClite board RAM.
(fetch_bytes, store_bytes): New helper functions for revamped
mememory_read and memory_write.
(memory_read, memory_write): Rewrite to store bytes in target
byte order instead of storing words in host byte order; this
greatly simplifies support of little-endian programs.
(get_mem_ptr): Remove unnecessary byte parameter.
(sis_memory_write, sis_memory_read): Store words in target
byte order instead of host byte order.
(byte_swap_words): Remove, no longer needed.
* sis.h ((byte_swap_words): Remove declaration, no longer needed.
(memory_read): Add new sz parameter.
* sis.c (run_sim): Use revamped memory_read, which makes
byte-swapping unnecessary.
* exec.c (dispatch_instruction): Use revamped memory_read, which
makes byte-swapping and double-word fetching unnecessary.
* func.c (sparclite_board): Declare new variable.
(get_regi): Handle little-endian data.
(bfd_load): Recognize little-endian SPARClite as having
little-endian data.
* elflink.h (elf_merge_symbol): Don't always set type_change_ok
and size_change_ok.
(elf_link_add_object_symbols): Set type_change_ok and
size_change_ok before calling elf_merge_symbol.
From Matt Semersky <[email protected]>:
* macro.c (macro_mri_mode): New function.
* macro.h (macro_mri_mode): Declare.
* read.c (s_mri): Call macro_mri_mode when switching in and out of
MRI mode.
* ppc-opc.c (powerpc_macros): Support shifts and rotates of size
0; produce error message for shifts of size 32 (or 64 for 64-bit
shifts), because the hardware doesn't support them.
* elf32-ppc.c (ppc_elf_relocate_section): The target of an
R_PPC_LOCAL24PC relocation should be local; if not, print an error
message instead of crashing.
* config/tc-vax.c (md_create_short_jump): Fix off by two bug in
offset calculation. Also, use VAX_BRW from vax-inst.h instead
of hardcoded magic number.
(md_create_long_jump): Use VAX_JMP and VAX_ABSOLUTE_MODE macros.
Mark Alexander [Tue, 2 Jun 1998 09:19:54 +0000 (09:19 +0000)]
* sparc-tdep.c (sparc_target_architecture_hook): New function to
set endianness based on machine type.
(_initialize_sparc_tdep): Initialize target_architecture_hook.
(sparc_print_register_hook): Print PSR and FPSR in fancy format
on 32-bit machines.
* config/sparc/tm-sparc.h (PRINT_REGISTER_HOOK): Redefine to
call sparc_print_register_hook instead of using inline code.
* config/sparc/tm-sp64.h (PRINT_REGISTER_HOOK): Remove.
* armos.c (ARMul_OSHandleSWI::SWI_Open): Handle special case
of ":tt" to catch stdin in addition to stdout.
(ARMul_OSHandleSWI::SWI_Seek): Return 0 or 1 to indicate failure
or success of lseek().
From PR 15839, modified a bit by me to appease my sense of style--but
not too much because I am lazy.
* archures.c (bfd_mach_cpu32): Define.
(bfd_default_scan): Add case for 68060. Fix 68332 case to use
bfd_mach_cpu32.
* cpu-m68k.c (arch_info_struct): Add m68k:cpu32.
* ieee.c: Include <ctype.h>.
(ieee_object_p): Parse out process ID string to make it more
likely to be acceptable for bfd_scan_arch.
* bfd-in2.h: Rebuild.
Doug Evans [Mon, 1 Jun 1998 22:11:21 +0000 (22:11 +0000)]
* gas/all/gas.exp: Don't run `align' test for dvp-*-*.
* gas/macros/macros.exp: Don't run `semi' test for dvp-*-*.
* gas/dvp/align.[sd]: New testcase.
* gas/dvp/semi.[sd]: New testcase.