* config/tc-d10v.c (find_opcode): Fix a bug which could generate
the wrong opcode for cases like st2w where there are many forms
of the same instruction.
Ian Lance Taylor [Tue, 27 Aug 1996 17:56:47 +0000 (17:56 +0000)]
* expr.c (operand): If md_parse_name is defined, call it before
calling symbol_find_or_make.
* config/tc-ppc.h (md_parse_name): Define.
(ppc_parse_name): Declare.
* config/tc-ppc.c (reg_name_search): Add regs and regcount
parameters.
(register_name): Update call to reg_name_search.
(cr_operand): New static variable.
(cr_names): New static const array.
(ppc_parse_name): New function.
(md_assemble): If PPC_OPERAND_CR is set in the operand flags, set
cr_operand before calling expression.
PR 10460.
* configure.in: work around host_alias configure bug.
AC_CANONICAL_HOST is called twice (first by AC_CHECK_TOOL
and second by AC_CANONICAL_SYSTEM). The second clobbers the
previous setting. Circumventing by moving the second check
to before the first.
* configure: regenerated
Ian Lance Taylor [Tue, 27 Aug 1996 04:14:13 +0000 (04:14 +0000)]
* elf32-mips.c (mips_elf_check_relocs): Set dynobj if needed for
R_MIPS_32 and R_MIPS_REL32. Set sgot and g as soon as possible.
(mips_elf_size_dynamic_sections): Don't require .got to exist.
(mips_elf_finish_dynamic_sections): Likewise.
* config/tc-d10v.c: Fixed ".word". Fixed problem with range checking
on addresses. Improved error messages.
* doc/c-d10v.texi: Added docs for register pairs.
Ian Lance Taylor [Mon, 26 Aug 1996 19:07:06 +0000 (19:07 +0000)]
* ecoff.c (init_file): Initialize fMerge to 1.
(add_file): Restore old file merging code, but only merge files if
fMerge is set.
(ecoff_directive_loc): Clear fMerge field of current file.
(ecoff_generate_asm_lineno): Likewise.
Jeff Law [Fri, 23 Aug 1996 20:58:13 +0000 (20:58 +0000)]
* config/tc-v850.c (md_assemble): Rough cut at demanding
"ep" or "r30" in sst and sld instructions.
(md_apply_fix3): Don't abort. Just warn that we don't
have relocs yet.
Jeff Law [Fri, 23 Aug 1996 19:35:05 +0000 (19:35 +0000)]
* gas/v850/basic.exp (mem_tests): Test instruction bit patterns.
xfail sst and sld tests.
(mov_tests): Remove bogus xfail.
* gas/v850/mem.s: sst and sld instructions can only index from
"ep" register.
Jeff Law [Fri, 23 Aug 1996 17:39:43 +0000 (17:39 +0000)]
* config/tc-v850.c (reg_name_search): Generalize to search
any given register table.
(register_name): Pass appropriate table and size to reg_name_search.
(system_register_name): New function.
(SYSREG_NAME_CNT): Define.
(md_assemble): Handle operands which are system registers.
Still working on the parser..
Jeff Law [Fri, 23 Aug 1996 17:35:11 +0000 (17:35 +0000)]
* v850-opc.c (v850_operands): Add "SR1" and "SR2" for system
register source and destination operands.
(v850_opcodes): Use SR1 and SR2 for "ldsr" and "stsr".
More parsing fixes.
Jeff Law [Fri, 23 Aug 1996 16:43:23 +0000 (16:43 +0000)]
* config/tc-v850.c (md_assemble): If we find a register, but the
opcode doesn't want a register, then we don't have a match.
(md_assemble): Get size of the instruction from the opcode table.
So we choose the right opcode and so that we get the sizes right.
Jeff Law [Fri, 23 Aug 1996 15:41:30 +0000 (15:41 +0000)]
* v850-opc.c (v850_operands): D6 -> DS7. References changed.
Add D8 for 8-bit unsigned field in short load/store insns.
(IF4A, IF4D): These both need two registers.
(IF4C, IF4D): Define. Use 8-bit unsigned field.
(v850_opcodes): For "sld.h", "sld.w", "sst.h", "sst.w", use
IF4C & IF4D. For "trap" use I5U, not I5. Add IF1 operand
for "ldsr" and "stsr".
* v850-opc.c (v850_operands): 3-bit immediate for bit insns
is unsigned.
Fixing up the parser again.
Ian Lance Taylor [Fri, 23 Aug 1996 04:00:43 +0000 (04:00 +0000)]
* wrstabs.c (struct string_hash_entry): Add next field.
(struct stab_write_handle): Change strings to a pointer to
string_hash_entry. Add last_strings field. Remove strings_alloc
field.
(string_hash_newfunc): Initialize next field.
(stab_write_symbol): Copy string into hash table rather than into
buffer. Keep a list of hash table entries.
(write_stabs_in_sections_debugging_info): Initialize last_string.
Copy strings from list of hash table entries in memory.
(stab_modify_type): If the entry on the stack is a definition,
make a new definition rather than failing an assert.
(stab_array_type): The size is only zero if high is strictly less
than low.
PR 10377.
Fred Fish [Fri, 23 Aug 1996 00:47:10 +0000 (00:47 +0000)]
* valprint.c (print_longest): Test for CC_HAS_LONG_LONG as well as
PRINTF_HAS_LONG_LONG.
* expprint.c (dump_expression): Ditto.
* configure.in: Fix check for long long support in compiler to
use a function body, not a nested function.
* configure: Rebuild with autoconf.
Ian Lance Taylor [Fri, 23 Aug 1996 00:02:55 +0000 (00:02 +0000)]
* libieee.h (NSECTIONS): Don't define.
(ieee_data_struct): Change section_table to asection **. Add
section_table_size.
* ieee.c (get_section_entry): If the table isn't big enough, make
it bigger.
(ieee_slurp_sections): Remove assertion about number of sections.
(ieee_object_p): Adjust initialization of ieee to match changes to
the structure.
PR 10377.
Jeff Law [Thu, 22 Aug 1996 23:15:36 +0000 (23:15 +0000)]
* configure.in: Remove ld, target-libio, target-libg++, and
target-libstdc++ from noconfigdirs.
Now that libg++, libio, libstdc++ and newlib all build...
Jeff Law [Thu, 22 Aug 1996 22:32:21 +0000 (22:32 +0000)]
* Makefile.in (ev850.c): New target.
* configure.tgt (v850-*-*): New target.
* emulparams/v850.sh: New file.
No, it doesn't work (gas doesn't even emit relocs yet), but having
a "ld" that at least creates an executable image greatly helps the
gcc testsuite.
Ian Lance Taylor [Thu, 22 Aug 1996 22:06:21 +0000 (22:06 +0000)]
* Makefile.in (gencode): Depend upon gencode.o, getopt.o, and
getopt1.o, rather than on gencode.c. Link objects together.
Don't link against -liberty.
(gencode.o, getopt.o, getopt1.o): New targets.
* gencode.c: Include <ctype.h> and "ansidecl.h".
(AND): Undefine after including "ansidecl.h".
(ULONG_MAX): Define if not defined.
(OP_*): Don't define macros; now defined in opcode/mips.h.
(main): Call my_strtoul rather than strtoul.
(my_strtoul): New static function.