Jeff Law
3723a1a9f1
* config/tc-v850.h (tc_fix_adjustable): Don't adjust TDA relocs.
...
Fixing more tda stuff.
1996-10-24 20:32:36 +00:00
Jeff Law
7e96935e77
* config/tc-v850.c (md_pseudo_table): Add .word; allocates
...
4 bytes of space.
Something off the todo list.
1996-10-23 22:23:38 +00:00
Jeff Law
8ea15b863f
* config/tc-v850.c (md_assemble): Handle TDAOFF relocs
...
differently for movea & sst/sld insns.
Working on tda for the v850.
1996-10-23 04:06:04 +00:00
Ian Lance Taylor
bf39474f15
* config/tc-mips.c (cons_fix_new_mips): Only treat 8 byte reloc
...
specially if not ELF.
(md_apply_fix): Handle BFD_RELOC_64.
(tc_gen_reloc): Handle BFD_RELOC_64.
1996-10-22 00:01:33 +00:00
Ian Lance Taylor
538034cfb5
* config/tc-mips.c (mips_ip): Accept an odd floating point
...
register with l.s or s.s.
1996-10-18 19:33:03 +00:00
Jeff Law
548ddc7174
* config/tc-v850.c (v850_reloc_prefix): Recognize zdaoff, tdaoff
...
and sdaoff expressions.
1996-10-17 04:48:07 +00:00
Jeff Law
0f8e50bb76
* write.c (fixup_segment): Don't add symbol value to addend if
...
TC_V850 and OBJ_ELF.
* config/tc-v850.h (tc_fix_adjustable): Don't adjust any
pc-relative fixups.
Fixing more failures in the g++ testsuite.
1996-10-16 17:32:39 +00:00
Jeff Law
f964b01d90
* config/tc-v850.c (md_pcrel_from): Delete unused function.
...
(md_pcrel_from_section): New function.
* config/tc-v850.h (MD_PCREL_FROM_SECTION): Define.
So we don't screw up pc-relative jumps/calls from one section
into another section within the same .o file.
Fixes global ctors/dtors to work with DECL_ONE_ONLY stuff.
1996-10-16 06:21:23 +00:00
Ian Lance Taylor
0267c6c9c2
* config/tc-mips.c (load_register): Add cast to offsetT when using
...
a constant with &~.
1996-10-14 18:00:19 +00:00
Ian Lance Taylor
5d0cd0b87e
Mon Oct 14 11:24:28 1996 Richard Henderson <rth@tamu.edu>
...
* config/obj-elf.c (elf_frob_file): Move ECOFF debug processing to ...
(elf_frob_file_after_relocs): ... here. New function.
* config/obj-elf.h (obj_from_file_after_relocs): New macro.
* write.c (write_object_file): Call *frob_after_relocs after the
call to write_relocs.
* config/tc-alpha.c: Use new BFD_RELOC_ALPHA_ELF_LITERAL reloc.
* config/tc-alpha.c (load_expression): Don't SET_VALUE on the section
symbol, as this messes up linking. Instead, expand the recursive call
inline and change up the appropriate bits to get the 0x8000 offset
in the reloc addend.
1996-10-14 15:40:15 +00:00
Michael Meissner
f8a011cfa5
Turn most warnings into errors
1996-10-10 21:26:59 +00:00
Jeff Law
778c521b85
* config/tc-mn10300.c (md_assemble): Use FMT_* macros for
...
formats rather than hard-coded constants.
Minor cleanup.
1996-10-10 20:33:47 +00:00
Jeff Law
1c3ae169f7
* config/tc-mn10300.c (md_assemble): Format D5 instructions
...
are 7 bytes long. Write out instructions in big-endian format.
Matsushita.
1996-10-10 18:07:37 +00:00
Jeff Law
a6be605a1a
* config/tc-mn10300.h (md_assemble): Tweak further so
...
that all instructions are parsed correctly.
1996-10-08 20:59:28 +00:00
Ian Lance Taylor
5e1e8f23cf
* as.h: Include libiberty.h.
...
(xmalloc, xrealloc): Don't declare.
* as.c: Don't include libiberty.h.
* expr.c, read.c, stabs.c, config/obj-coff.c: Likewise.
* config/tc-mips.c: Likewise.
* messages.c: Likewise.
(xstrerror): Don't declare.
* xmalloc.c: Remove.
1996-10-08 17:15:20 +00:00
Jeff Law
1217102f2c
* config/tc-mn10300.h (pre_defined_registers) Remove.
...
(system_registers, cc_names): Likewise.
(address_registers, data_registers, other_registers): New register
arrays.
(register_name, system_register_name, cc_name): Remove.
(mn10300_reloc_prefix): Likewise.
(data_register_name): New function.
(address_register_name, other_register_name): Likewise.
(md_assemble): Rough cut at parsing operands. Remove lots of
unwanted code.
(md_apply_fix3): Disable for now.
Checkpointing today's Matsushita work.
1996-10-07 22:59:04 +00:00
Ian Lance Taylor
0bd28bc4f4
* config/obj-elf.c (elf_begin): New function.
...
(obj_elf_section): Add the section symbol to the symbol table.
* config/obj-elf.h (obj_begin): Define.
(elf_begin): Declare.
* as.c (perform_an_assembly_pass): Call obj_begin if it is
defined.
1996-10-07 15:25:58 +00:00
Ian Lance Taylor
eb0dafdc04
* config/obj-coff.c (fixup_segment): Subtract the section address
...
from a PC relative reloc if TC_M68K.
1996-10-04 22:38:44 +00:00
Jeff Law
ae1b99e42d
Grrr. The mn10200 and mn10300 are _not_ similar enough to easily support
...
with a single generic configuration. So break them up into two different
configurations. See the individual ChangeLogs for additional detail.
1996-10-03 16:42:22 +00:00
Jeff Law
0f91d7632c
* config/tc-mn10x00.c, config/tc-mn10x00.h: New files
...
for Matsushita MN10x00 support.
* configure.in: Recognize mn10x00-*-*
* configure: Rebuilt.
More Matsushita stuff.
1996-10-03 06:19:06 +00:00
Ian Lance Taylor
7c328bc7ff
Wed Oct 2 15:54:03 1996 Klaus Kaempf <kkaempf@progis.de>
...
* obj-evax.h: move openvms definitions from here to tc-alpha.c.
* tc-alpha.c: add support for vms_case_hack like in vax/vms.
(load_expression): track clobbering of base reg before jmp/jsr.
(s_alpha_file): pass case_hack flags and source filename via
symbol table to bfd.
* tc-alpha.h (TC_CONS_FIX_NEW): define
1996-10-02 19:55:33 +00:00
Ian Lance Taylor
0b810a6ee0
* config/tc-m68k.c (init_table): Correct access control unit
...
register numbers. From Ken Rose <rose@netcom.com>.
1996-10-01 17:59:56 +00:00
Ian Lance Taylor
ffef69a368
* config/tc-alpha.c: Add some static function prototypes.
...
(alpha_macros): Move to top of file. Make static.
(alpha_num_macros): Move to top of file.
1996-10-01 16:41:19 +00:00
Stu Grossman
8940a5834f
* tc-v850.h: Define LOCAL_LABEL to recognise _.L_* symbols
...
generated by DWARF.
1996-10-01 16:38:44 +00:00
Martin Hunt
3547832c08
Tue Sep 24 12:22:18 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
...
* tc-d10v.c (md_operand): Created. Allows operands to
start with '#'.
* tc-d10v.h (md_operand): Undefined.
1996-09-24 19:24:38 +00:00
Ian Lance Taylor
ab2998440b
* config/obj-coff.c (obj_coff_endef): Both versions: Move C_STAT
...
symbols to the position of the debugging information.
PR 10668.
1996-09-18 16:14:29 +00:00
Ian Lance Taylor
ca296aab0e
Don't set interlocks for r5000. Rely on -mips4 settings.
1996-09-10 01:12:35 +00:00
Ian Lance Taylor
d31a3f5e76
* config/tc-mips.c (append_insn): Don't swap an instruction which
...
sets a condition code with an instruction which uses a condition
code.
(mips_ip): In cases 'N' and 'M', look for $fccN rather than an
immediate value.
1996-09-09 18:37:10 +00:00
Ian Lance Taylor
517078c1b3
* config/tc-mips.c (md_begin): Recognize r5000 for cpu. If
...
mips_cpu is 5000, set interlocks and cop_interlocks.
(mips_ip): Give a better error message if the ISA level is wrong.
(md_parse_option): Recognize -mcpu=[v][r]5000.
1996-09-09 15:04:59 +00:00
Jackie Smith Cashion
ff8716f58e
Sat Sep 7 13:25:55 1996 James G. Smith <jsmith@cygnus.co.uk>
...
* config/tc-mips.c (COUNT_TOP_ZEROES): Added macro to count
leading zeroes.
(load_register): Ensure hi32 bits are not lost during lo32bit
processing. Fix shift offset that was overflowing into the next
instruction field. Add code to generate shorter sequences for
constants with a single contiguous seqeuence of ones.
Fri Sep 6 18:23:54 1996 James G. Smith <jsmith@cygnus.co.uk>
* gas/mips/dli.{s,d}: More test cases added.
NOTE: The COUNT_TOP_ZEROES macro is a bit bulky, and the same result
can be achieved by using a "standard" ffs() routine:
count = ffs(~v);
count = count == 0 ? 0 : 33 - count;
However the following timings (VR4300 CPU clock ticks on a CMA101
board) show the performance gain.
Number of ffs() for loop if/then/else conditional
leading ?:
zeroes
-------------------------------------------------------------------------------
0 167 179 266 251
1 1718 283 263 259
2 1670 379 287 295
3 1622 475 311 311
4 1574 571 295 287
5 1534 667 311 319
6 1478 763 307 299
7 1430 859 323 323
8 1382 962 287 295
9 1334 1051 319 311
10 1286 1154 299 307
11 1238 1250 323 331
12 1183 1346 299 307
13 1135 1442 331 323
14 1087 1546 311 319
15 1039 1642 335 343
16 991 1730 295 287
17 950 1834 311 319
18 895 1922 307 299
19 847 2026 331 323
20 799 2122 307 299
21 751 2218 323 323
22 703 2314 311 311
23 655 2417 343 335
24 599 2506 307 299
25 559 2602 331 331
26 511 2705 311 319
27 463 2801 343 335
28 407 2897 311 319
29 367 2993 343 335
30 311 3097 323 331
31 271 3185 355 355
32 215 3233 379 371
1996-09-07 12:45:19 +00:00
David Edelsohn
df4021c176
* configure.in (sparc-*-aout): Set `em'.
...
* configure: Regenerated.
* config/te-sparcaout.h: New file.
* config/tc-sparc.h (TARGET_BYTES_BIG_ENDIAN): Define.
Ifdef TE_SPARCOUT define TARGET_FORMAT and SPARC_BIENDIAN.
* config/tc-sparc.c (INSN_BIG_ENDIAN): New macro.
(SPECIAL_CASE_{SETSW,SETX}): Define.
({NOP,OR,FMOVS,SETHI,SLLX,SRA}_INSN): Define.
(md_begin): Delete setting of `target_big_endian'.
(output_insn): New function.
(md_assemble): Rewrite. Add `setx' support.
(sparc_ip): Handle `0' operand char. Recognize setuw, setsw, setx
special cases.
(md_atof): Add little endian support.
(md_number_to_chars): Likewise.
(md_apply_fix): Likewise.
(md_longopts): Recognize -EL,-EB ifdef SPARC_BIENDIAN.
(md_parse_option): Likewise.
(md_show_usage): Print -EL, -EB ifdef SPARC_BIENDIAN.
1996-09-06 23:05:12 +00:00
Ian Lance Taylor
711254da6c
* config/tc-mips.c (load_register): Remove unused variable tmp.
1996-09-04 14:26:20 +00:00
Jackie Smith Cashion
1b68deb599
Wed Sep 4 11:24:29 1996 James G. Smith <jsmith@cygnus.co.uk>
...
* config/tc-mips.c (load_register): Remove unnecessary code that
was causing the high 32bits of 64bit constants to be lost.
Fixes PR10503. The compiler was producing the assembler code:
dli $3,0xfffffffffffff
when constructing the softfloat library. Unfortunately it was being
incorrectly assembled.
1996-09-04 13:15:28 +00:00
Jeff Law
2d56269edf
* config/tc-v850.c (md_apply_fix3): Do simple byte, short and
...
word fixups too.
Fixes "difference between forward references".
1996-08-31 18:36:19 +00:00
Jeff Law
74dd0c0786
* config/tc-v850.c (md_apply_fix3): Use little endian get/put
...
routines to fetch/store the updated instruction from/to memory.
(v850_insert_operand): If the operand has a specialized insert
routine, call it.
Getting fixups closer. At least br <target> works now.
1996-08-31 05:52:38 +00:00
J.T. Conklin
c84615bc23
* config/tc-v850.c (reg_name_search): Align calling convention to
...
be like identical function found in tc-ppc.c.
(get_reloc): Removed.
(v850_reloc_prefix): New function, parse lo(), hi() and hi0().
(md_assemble): emit fixups.
(md_pcrel_from): renamed from md_pcrel_from_section, emit proper
displacement.
(md_apply_fix3): handle fixups/relocs.
* config/tc-v850.h (MD_PCREL_FROM_SECTION): Removed definition.
1996-08-31 01:42:46 +00:00
Jeff Law
05631de266
* config/tc-850.c (md_assemble): Handle hi() correctly. Handle
...
hi0() too.
Bugfix.
1996-08-30 06:44:44 +00:00
Martin Hunt
67f0d0ea4c
Mon Aug 26 18:24:51 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
...
* tc-d10v.c: Fixed ".word". Fixed problem with range checking
on addresses. Improved error messages.
1996-08-27 01:28:29 +00:00
Martin Hunt
443dbf147e
Mon Aug 26 13:39:27 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
...
* tc-d10v.c (parallel_ok): Fix bug in parallel
checking code.
1996-08-26 20:42:37 +00:00
Jeff Law
88b47a8521
* 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.
1996-08-23 20:58:13 +00:00
Jeff Law
c9f1b2d9c7
* config/tc-v850.c (CC_NAME_CNT): Define.
...
(cc_name): New function.
(md_assemble): Handle V850_OPERAND_CC correctly.
setf stuff
1996-08-23 19:01:37 +00:00
Jeff Law
d5974c571c
* config/tc-v850.c (md_assemble): Don't forget to initialize
...
"insn"!
1996-08-23 18:19:08 +00:00
Jeff Law
0e8f9bd15e
* 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..
1996-08-23 17:39:43 +00:00
Jeff Law
c9a32d6ca7
* 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.
1996-08-23 16:43:23 +00:00
J.T. Conklin
1510cd39b6
rework operand parsing
1996-08-23 06:33:10 +00:00
J.T. Conklin
dcf5d11760
parse [reg], lo(exp), and hi(exp)
1996-08-22 05:30:14 +00:00
J.T. Conklin
c6aa56bca9
* config/tc-v850.c: New file.
...
* config/tc-v850.h: New file.
* configure (v850-*-elf): New target.
* configure.in (v850-*-elf): New target.
1996-08-21 23:37:04 +00:00
Martin Hunt
bb5638c637
Tue Aug 20 14:10:02 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
...
* tc-d10v.c: All references to defined symbols should
now use the optimal instruction. .float and .double now work.
1996-08-20 21:15:18 +00:00
Ian Lance Taylor
817e4f757f
* config/tc-mips.h (BYTE_ORDER): Don't define. No longer used.
1996-08-12 23:51:25 +00:00
Ian Lance Taylor
f649d525ed
Thu Aug 8 12:32:56 1996 Klaus Kaempf <kkaempf@progis.de>
...
Add support for openVMS/Alpha.
* as.h (PRINTF_LIKE): Don't define if VMS, for now.
* config/obj-evax.c: New file.
* config/obj-evax.h: New file.
* config/tc-alpha.c: Add support for EVAX format if OBJ_EVAX is
defined.
* config/tc-alpha.h: Add support for EVAX format if OBJ_EVAX is
defined. Add case for bfd_target_evax_flavour.
* config/vms-a-conf.h: New file.
* conf-a-gas.com: New file.
* configure.in: Add target alpha-*-*vms*.
* configure: Rebuild.
* makefile.vms: New file.
* read.c (s_lcomm): Align bss_seg on 8 byte boundary if OBJ_EVAX.
Don't call ffs on openVMS/Alpha.
1996-08-08 16:42:41 +00:00