17133 Commits

Author SHA1 Message Date
9b86c7e2e2 Second pass at canadian cross 1996-09-04 19:11:53 +00:00
1eaaf3050e First cut at dealing with canadian crosses; make -t in debugger set d10v_debug if DEBUG 1996-09-04 18:50:13 +00:00
7eebfc6296 More debug support; Enable -t/-v to work correctly; Add --enable-sim-cflags configure switch 1996-09-04 17:42:51 +00:00
10d183a0f0 * terminal.h: Don't use #elif. 1996-09-04 17:09:43 +00:00
87178dbdf7 Enhance debug support 1996-09-04 15:41:43 +00:00
9811b59602 * gch1272.{ch,exp}, gch1280.{ch,exp}, pr-9946.{ch,exp}:
New test cases.
1996-09-04 14:34:15 +00:00
b5865bb263 * ch-exp.c (parse_tuple_element): Allow (*): for array tuples
if we have a type.

        * eval.c (evaluate_subexp_standard): In case of OP_ARRAY:
        check number of args against bounds of array to avoid
        memory corruption.

        * value.h (COERCE_REF): Do a CHECK_TYPEDEF in case we get
        a TYPE_CODE_TYPEDEF.
1996-09-04 14:29:37 +00:00
711254da6c * config/tc-mips.c (load_register): Remove unused variable tmp. 1996-09-04 14:26:20 +00:00
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
8719be26c4 * simops.c: Include correct syscall.h for d10v, not host's.
Fix #ifdef SYS_stat.
1996-09-04 11:51:06 +00:00
e73b6ae634 * elf32-v850.c (bfd_elf32_v850_reloc): Fix handling of
low order sign bit propogationfor R_V850_HI16_S.
Fixes c-torture execute/950221-1.c, maybe others.
1996-09-04 03:03:53 +00:00
0cd98b92ab * Makefile.in (aout-sparcle.o): New target.
* aoutf1.h (TARGET_IS_BIG_ENDIAN_P): Don't define if little endian.
	* config.bfd (sparclet-*-aout*): Add case.
	* configure.in (sparcle_aout_vec): Add case.
	* configure: Regenerated.
	* libaout.h (machine_type): Add M_SPARCLET_LE.
	* targets.c (sparcle_aout_vec): Declare.
	(bfd_target_vector): Add sparcle_aout_vec.
	* aout-sparcle.c: New file.
1996-09-03 19:52:15 +00:00
9fca2fd3c6 * gencode.c: Fix various indention & style problems.
Remove test code.  Remove #if 0 code.
        * interp.c: Provide prototypes for all static functions.
        Fix minor indention problems.
        (sim_open, sim_resume): Remove unused variables.
        (sim_read): Return type is "int".
        * simops.c: Remove unused variables.
        (divh): Make result of divide-by-zero zero.
        (setf): Initialize result to keep compiler quiet.
        (sar instructions): These just clear the overflow bit.
        * v850_sim.h: Provide prototypes for put_byte, put_half
        and put_word.
Cleaning up.
1996-09-03 18:31:48 +00:00
eb5c28e173 * v850-dis.c (disassemble): Make static. Provide prototype. 1996-09-03 18:05:25 +00:00
63a91cfb9d Portability fixes; re-add printf/putchar traps 1996-09-03 18:01:03 +00:00
05fd83edd4 * config/tc-v850.c: Remove commented out and #if 0'd code.
(v850_reloc_prefix): Provide prototype.
        (postfix, get_reloc, build_insn): Remove prototypes for nonexistant
        functions.
        (md_begin, md_assemble, md_apply_fix3): Remove unused variables.
        (md_assemble): Add default to case statement.
Minor cleanups.
1996-09-03 17:59:16 +00:00
2b6b2c6d8e Fix typpppo 1996-09-03 17:15:16 +00:00
d81352b8b8 * interp.c: OP should be an array of 32bit operands!
(v850_callback): Declare.
        (do_format_5): Fix extraction of OP[0].
        (sim_size): Remove debugging printf.
        (sim_set_callbacks): Do something useful.
        (sim_stop_reason): Gross hacks to get c-torture running.
        * simops.c: Simplify code for computing targets of bCC
        insns.   Invert 's' bit if 'ov' bit is set for some
        instructions.  Fix 'cy' bit handling for numerous
        instructions.  Make the simulator stop when a halt
        instruction is encountered.  Very crude support for
        emulated syscalls (trap 0).
        * v850_sim.h: Include "callback.h" and declare
        v850_callback.  Items in the operand array are 32bits.
Fixes & syscall stuff.
1996-09-03 16:25:51 +00:00
7b0af209eb * elf32-v850.c (bfd_elf3_v850_reloc): New function for
handling V850 specific relocs.
        (elf_v850_howto_table): Use the new function for some
        relocations.  Twiddle masks & shifts for some relocs.
        Set partial_inplace where needed.
Fixing more stuff.
1996-09-03 08:14:53 +00:00
71bcbd25c8 Remove reloc.c from v850_files. 1996-09-02 23:23:11 +00:00
44789bee66 whoops--typo 1996-09-02 16:41:29 +00:00
01d34e4be3 file was really removed a long time ago 1996-09-02 16:41:28 +00:00
b5ef63c4fc * .Sanitize: Remove reloc.c from v850_files. 1996-09-01 22:25:50 +00:00
bde9d87544 * rs6000-core.c (rs6000coff_core_file_matches_executable_p):
Rewrite to use BFD file read routines and to avoid using a fixed
	length for the file name.
1996-09-01 19:44:40 +00:00
270fd2adc3 * config/tc-v850.c (md_assemble): Compute size of the instrction
from the opcode.
1996-08-31 22:04:08 +00:00
09478dc331 * v850-dis.c (disassemble): Handle insertion of ',', '[' and
']' characters into the output stream.
        * v850-opc.c (v850_opcodes: Remove size field from all opcodes.
        Add "memop" field to all opcodes (for the disassembler).
        Reorder opcodes so that "nop" comes before "mov" and "jr"
        comes before "jarl".
Should give us a functional disassembler.
1996-08-31 22:00:45 +00:00
e05cae190b * v850-dis.c (print_insn_v850): Properly handle disassembling
a two byte insn at the end of a memory region when the memory
        region's size is only two byte aligned.
1996-08-31 21:21:27 +00:00
a5f2a4e50e * v850-dis.c (v850_cc_names): Fix stupid thinkos. 1996-08-31 21:10:43 +00:00
502535cff7 * v850-dis.c (v850_reg_names): Define.
(v850_sreg_names, v850_cc_names): Likewise.
        (disassemble): Very rough cut at printing operands (unformatted).
One step at a time.

        * v850-opc.c (BOP_MASK): Fix.
        (v850_opcodes): Fix mask for jarl and jr.
Bugs exposed by disassembler testing.
1996-08-31 20:56:05 +00:00
a0a36aa085 * dis-asm.h (print_insn_v850): Declare. 1996-08-31 19:26:47 +00:00
529418ddc4 * v850-dis.c: New file. Skeleton for disassembler support.
* Makefile.in Remove v850 references, they're not needed here
        and they weren't being sanitized away.
        * configure.in: Add v850-dis.o when building v850 toolchains.
        * configure: Rebuilt.
        * disassemble.c (disassembler): Call v850 disassembler.
1996-08-31 19:22:11 +00:00
ba39d3dde1 * v850-dis.c: New file. Skeleton for disassembler support.
* Makefile.in Remove v850 references, they're not needed here
        and they weren't being sanitized away.
        * configure.in: Add v850-dis.o when building v850 toolchains.
        * configure: Rebuilt.
        * disassemble.c (disassembler): Call v850 disassembler.
Skeleton support for V850 disassembler.
1996-08-31 19:20:28 +00:00
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
b219416478 * v850-opc.c (insert_d8_7, extract_d8_7): New functions.
(insert_d8_6, extract_d8_6): New functions.
        (v850_operands): Rename D7S to D7; operand for D7 is unsigned.
        Rename D8 to D8_7, use {insert,extract}_d8_7 routines.
        Add D8_6.
        (IF4A, IF4B): Use "D7" instead of "D7S".
        (IF4C, IF4D): Use "D8_7" instead of "D8".
        (IF4E, IF4F): New.  Use "D8_6".
        (v850_opcodes): Use IF4A/IF4B for sld.b/sst.b.  Use IF4C/IF4D for
        sld.h/sst.h.  Use IF4E/IF4F for sld.w/sst.w.
So we can assemble sst/sld instructions correctly.
1996-08-31 18:23:02 +00:00
c6b9c13532 * v850-opc.c (insert_d16_15, extract_d16_15): New functions.
(v850_operands): Change D16 to D16_15, use special insert/extract
        routines.  New new D16 that uses the generic insert/extract code.
        (IF7A, IF7B): Use D16_15.
        (IF7C, IF7D): New.  Use D16.
        (v850_opcodes): Use IF7C and IF7D for ld.b and st.b.
1996-08-31 17:43:28 +00:00
fb8c25a3e4 * v850-opc.c (insert_d9, insert_d22): Slightly improve error
message.  Issue an error if the branch offset is odd.
1996-08-31 17:23:49 +00:00
237b5c4c9a * elf32-v850.c (enum reloc_type): Add R_V850_{32,16,8}.
(elf_v850_howto_table): Add support for R_V850_{32,16,8}.
        (v850_reloc_map): Add translation from BFD_RELOC_{32,16,8}
        to R_V850_{32,16,8}.
So we don't get "reloc XXX not supported" messages anymore.
1996-08-31 16:24:18 +00:00
69ae4b82dc * v850-opc.c: Add notes about needing special insert/extract
for all the load/store insns, except "ld.b" and "st.b".
So we don't forget!
1996-08-31 07:32:01 +00:00
574b9cb3d3 * v850-opc.c (insert_d22, extract_d22): New functions.
(v850_operands): Use insert_d22 and extract_d22 for
        D22 operands.
        (insert_d9): Fix range check.
1996-08-31 07:28:22 +00:00
6cff464b3a * gas/v850/basic.exp (do_branch): Check offsets in branch insns.
(do_jumps): Likewise.
Now that we can resolve known branch targets.
1996-08-31 07:26:35 +00:00
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
7ab4a84a3a * emulparms/v850.sh: Entry symbol is "_start", tweak
ctor/dtor support.
1996-08-31 04:31:18 +00:00
82feb39ed1 Opps. Forgot to commit this a few days ago. 1996-08-31 02:49:05 +00:00
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
01b49cb35b * elf32-v850.c (reloc_type): Add R_V850_HI16_S.
(elf_v850_howto_table): Add info for HI16_S reloc.
(v850_reloc_map): Add HI_16_S reloc.
* reloc.c: Define BFD_RELOC_V850_* relocs.
1996-08-31 01:32:13 +00:00
d44b697b78 * v850-opc.c (v850_operands): Add V850_OPERAND_SIGNED flag
and set bits field to D9 and D22 operands.
1996-08-31 01:04:39 +00:00
efd48a6a97 * configure.tgt (sh-*-elf*): New target.
* emulparams/shelf.sh: New file.
	* emulparams/shlelf.sh: New file.
	* Makefile.in (ALL_EMULATIONS): Add eshelf.o and eshlelf.o.
	(eshelf.c, eshlelf.c): New targets.
	* scripttempl/elf.sc: If EMBEDDED is defined, then don't add
	SIZEOF_HEADERS to TEXT_START_ADDR.  Expand CTOR_START and CTOR_END
	around .ctors, and DTOR_START and DTOR_END around .dtors.  Expand
	OTHER_RELOCATING_SECTIONS if RELOCATING.
1996-08-30 22:36:45 +00:00
0f616818c0 Add SH ELF support.
* configure.in (sh-*-elf*): New target.
	* config/tc-sh.h (TARGET_ARCH): Define.
	(WORKING_DOT_WORD): Define.
 	(TC_COFF_FIX2RTYPE): Only define if OBJ_COFF.
	(BFD_ARCH, COFF_MAGIC, TC_COUNT_RELOC): Likewise.
	(TC_RELOC_MANGLE, tc_coff_symbol_emit_hook): Likewise.
	(DO_NOT_STRIP, NEED_FX_R_TYPE, TC_KEEP_FX_OFFSET): Likewise.
	(TC_COFF_SIZEMACHDEP, tc_frob_file): Likewise.
	(SUB_SEGMENT_ALIGN): Likewise.
	(RELOC_32): Don't define.
	(tc_frob_file_before_adjust): Define if BFD_ASSEMBLER.
	(target_big_endian): Declare if OBJ_ELF.
	(TARGET_FORMAT): Define if OBJ_ELF.
	* config/tc-sh.c: Use BFD reloc codes instead of SH COFF reloc
	numbers throughout.
	(tc_crawl_symbol_chain): Only define if OBJ_COFF.
	(tc_headers_hook, tc_coff_sizemachdep): Likewise.
	(struct sh_count_relocs): Define.
	(sh_count_relocs): New static function, broken out of
	sh_frob_file.  Add BFD_ASSEMBLER code.
	(sh_frob_section): Likewise.
	(sh_frob_file): Call sh_frob_section.
	(md_convert_frag): If BFD_ASSEMBLER, change type of headers, and
	call section_symbol rather than seg_info (seg)->dot.
	(md_section_align): Add OBJ_ELF version.
	(SWITCH_TABLE_CONS): Define.
	(SWITCH_TABLE): Use SWITCH_TABLE_CONS.
	(md_apply_fix): Change parameter types if BFD_ASSEMBLER.  Only
	handle fx_r_type == 0 if not BFD_ASSEMBLER.  Return 0 if
	BFD_ASSEMBLER.
	(struct reloc_map): Define if not BFD_ASSEMBLER.
	(coff_reloc_map): Likewise.
	(sh_coff_reloc_mangle): Use coff_reloc_map to convert fx_r_type.
	(tc_gen_reloc): New function if BFD_ASSEMBLER.
	* write.c (write_relocs): Ifdef out fx_where test which triggers
	inappropriately for SH ELF.
	(write_object_file): Call tc_frob_file_before_adjust and
	obj_frob_file_before_adjust if they are defined.

	* write.c (write_object_file): Use BFD_RELOC_16, not
	BFD_RELOC_NONE, when calling fix_new_exp for a broken word.
1996-08-30 22:29:42 +00:00
c86158e591 Add SH ELF support.
* elf32-sh.c: New file.
	* elf.c (prep_headers): Handle bfd_arch_sh.
	* elfcode.h (write_relocs): Handle absolute symbol.
	* elf-bfd.h (_bfd_elf32_link_read_relocs): Declare.
	(_bfd_elf64_link_read_relocs): Declare.
	* elflink.h (NAME(_bfd_elf,link_read_relocs)): Rename from
	elf_link_read_relocs.  Make globally visible.  Change all
	callers.
	(elf_link_input_bfd): Get external symbols from cache in
	symtab_hdr->contents.  Get contents from cache in
	elf_section_data.
	* elfxx-target.h (bfD_elfNN_bfd_relax_section): Only define if not
	already defined.
	* reloc.c: Define BFD_RELOC_SH_* relocs.
	* libbfd-in.h (_bfd_sh_align_load_span): Declare.
	* coff-sh.c (sh_insns_conflict): Fix a return value.
	(_bfd_sh_align_load_span): New globally visible function, broken
	out of sh_align_load.
	(sh_align_load): Call _bfd_sh_align_load_span.
	(sh_swap_insns): Change relocs parameter to PTR.
	* bfd-in2.h, libbfd.h: Rebuild.
	* targets.c (bfd_elf32_sh_vec): Declare.
	(bfd_elf32_shl_vec): Declare.
	* config.bfd (sh-*-elf*): New target.
	* configure.in (bfd_elf32_sh_vec): New target vector.
	(bfd_elf32_shl_vec): New target vector.
	* configure: Rebuild.
	* Makefile.in: Rebuild dependencies.
 	(BFD32_BACKENDS): Add elf32-sh.o.
	(BFD32_BACKENDS_CFILES): Add elf32-sh.c.

	* elf.c (map_sections_to_segments): Check that LMA does not skip a
	page before checking D_PAGED.
1996-08-30 22:09:51 +00:00
787d66bb4d * simops.c: Fix "not1" and "set1". 1996-08-30 21:55:26 +00:00