aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-h8500.c
AgeCommit message (Collapse)AuthorFilesLines
1995-07-19 * config/tc-sh.c (sh_relax): Rename from relax, and make global.Ian Lance Taylor1-2/+2
Renamed all uses. (insert): Pass a size of 2, not 4. (build_relax): Remove unused len variable. (md_show_usage): Mention -little option. (md_convert_frag): Add segT argument. Rewrite to generate relocs rather than to generate complete instructions here. (md_apply_fix): Adjust and clarify R_SH_PCRELIMM8BY4 case for changes in insert and md_pcrel_from. Add cases for R_SH_PCDISP and R_SH_PCDISP8BY2. (md_pcrel_from): Don't subtract 1, add 2. (tc_coff_fix2rtype): Remove. (sh_coff_reloc_mangle): New function. * config/tc-sh.h (TC_COFF_FIX2RTYPE): Just return fx_r_type. (sh_relax): Declare. (TC_COUNT_RELOC): If relaxing, count PC relative relocs. (TC_RELOC_MANGLE): Define. (sh_coff_reloc_mangle): Declare. (tc_coff_sizemachdep): Declare. * tc.h (md_convert_frag): Add segT parameter to non BFD_ASSEMBLER declaration. * write.c (cvt_frag_to_fill): Add sec argument to non BFD_ASSEMBLER version. Pass it to md_convert_frag. (write_object_file): Pass SEG_TEXT to cvs_frag_to_fill. * config/obj-coff.c (do_relocs_for): Pass segment info to TC_RELOC_MANGLE. (fixup_mdeps): Pass segment type to md_convert_frag. * config/tc-a29k.c (md_convert_frag): Add segT argument. * config/tc-h8300.c (md_convert_frag): Likewise. * config/tc-h8500.c (md_convert_frag): Likewise. * config/tc-i386.c (md_convert_frag): Likewise. * config/tc-i860.c (md_convert_frag): Likewise. * config/tc-i960.c (md_convert_frag): Likewise. * config/tc-m68k.c (md_convert_frag): Likewise. * config/tc-m88k.h (md_convert_frag): Likewise. * config/tc-ns32k.c (md_convert_frag): Likewise. * config/tc-rce.c (md_convert_frag): Likewise. * config/tc-tahoe.c (md_convert_frag): Likewise. * config/tc-vax.c (md_convert_frag): Likewise. * config/tc-w65.c (md_convert_frag): Likewise. * config/tc-z8k.c (md_convert_frag): Likewise. * config/tc-h8300.h (TC_RELOC_MANGLE): Add segment argument. * config/tc-h8500.h (TC_RELOC_MANGLE): Likewise. * config/tc-rce.h (TC_RELOC_MANGLE): Likewise. * config/tc-w65.h (TC_RELOC_MANGLE): Likewise. * config/tc-z8k.h (TC_RELOC_MANGLE): Likewise.
1995-07-06fsf address updateKen Raeburn1-1/+1
1995-04-11write.c: Complain about .space or .org moving backwards.Ken Raeburn1-1/+1
Do generic rs_machine_dependent relaxation only if TC_GENERIC_RELAX_TABLE is defined. Use its value as the base of the table, so the actual declaration can be cpu-specific (and const or not as appropriate). For other cpus where this isn't done (the majority), delete md_relax_table altogether. For machines with WORKING_DOT_WORD, delete md_{short,long}_jump_size.
1995-02-28(md_operand): Replaced empty function in .c file with empty macro in .h file.Ken Raeburn1-5/+0
1995-02-15Wed Feb 15 16:08:47 1995 Jason Molenda <crash@cygnus.com>Ian Lance Taylor1-1/+3
* config/tc-h8500.c (tc_coff_symbol_emit_hook): Add ignored parameter, to match prototype.
1994-12-20* config/obj-aout.h, config/obj-coff.c, config/obj-elf.h, config/obj-som.h,Ken Raeburn1-1/+1
config/tc-h8500.c, config/tc-hppa.c, config/tc-hppa.h, config/tc-sh.c, config/tc-z8k.c: Don't rely on use of ".." when including header files. * config/tc-rce.c: Ditto. * config/obj-coff.c (fixup_segment): Reformat condition in an `if' statement.
1994-06-03 * as.c (show_usage): Remove target specific messages;David MacKenzie1-5/+15
instead, call md_show_usage. (parse_args): Use getopt_long_only. Take pointers to argc and argv. (main): Pass parse_args pointers. * as.h: Remove 3 variables that are redundant with flagseen. * as.c, messages.c: Change their users to use flagseen. Define getopt stuff. * tc.h: Update md_parse_option decl. Add md_show_usage decl. * config/tc-*.c: Add md_shortopts, md_longopts, md_longopts_size, md_show_usage. Change calling convention for md_parse_option. Remove md_parse_long_option. * config/tc-ns32k.c: Rename `struct option' to `struct ns32k_option'. * config/tc-i386.h: Don't define md_parse_option.
1993-12-20* as.c (main): Only invoke md_end if it's defined as a macro.Ken Raeburn1-5/+0
* tc.h (md_end): Don't declare it. * config/tc-*.[ch] (md_end): Deleted, in cases where it doesn't do anything. * config/tc-vax.c (vip_end): Deleted null function. * config/tc-mips.c (md_mips_end): Renamed from md_end. * config/tc-mips.h (md_mips_end): Declare. (md_end): New macro, calls md_mips_end. * write.c (write_object_file): Don't close output file. * as.c (main): Close output file (if needed) after calling listing_print, which should be after calling write_object_file, which sets the frag addresses.
1993-12-11 * config/tc-h8500.c (build_bytes): Get reloc type right for aSteve Chamberlain1-4/+12
%page operation. (md_assemble): Don't modify input_line_pointer. (mdcoff_sizemachdep): New function. * config/tc-h8500.h (TC_COFF_SIZEMACHDEP): New macro. * config/tc-z8k.c (get_operand): Delete bogus check.
1993-12-03Lots of changes for:Ken Raeburn1-15/+2
- sparc[lite]-coff as well as sparc-lynx - producing coff (including debug info) under BFD_ASSEMBLER option - cleanup of cpu-specific code in non-cpu-specific files (especially write.c) - providing common code to avoid duplication in cpu-specific files (specifically, md_number_to_chars) - stylistic changes & misc cleanup ================ * config/tc-sparc.c (tc_gen_reloc): Make adjustment to addend be dependent on howto fields, not on format flavour. * struc-symbol.h (struct symbol): New fields sy_obj and sy_tc, defined as types OBJ_SYMFIELD_TYPE and TC_SYMFIELD_TYPE, if those macros are defined. * config/obj-coff.h (TC_SYMFIELD_TYPE, OBJ_SYMFIELD_TYPE): Define. (TARGET_SYMBOL_FIELDS, I960_SYM_FIELDS): Don't define. (sy_tc, sy_obj): Define so that the fields look like they used to, until all references get changed. * write.c (fixup_segment): Lots of variables no longer register. Reordered some code for easier reading. * config/obj-coff.c (obj_coff_dim): dim_index no longer register. Deleted superfluous return statement. (obj_coff_line, obj_coff_size, obj_coff_scl, obj_coff_type, obj_coff_val, tag_init, tag_insert): Deleted superfluous return statement. (align, obj_coff_section): Deleted debugging printfs. * config/tc-i386.c (md_assemble): Discard some register decls. Use assignment rather than memcpy to copy template. (op_hash, reg_hash, prefix_hash): Default C initialization of statics is sufficient. * config/tc-sparc.c (print_insn): Array Reloc is now const, and points to const. * config/obj-coff.h (TARGET_FORMAT): Only use coff-sparc-lynx if TE_LYNX; use coff-sparc otherwise. [USE_NATIVE_HEADERS]: Delete this code; it isn't used. * write.c (fixup_segment): Call TC_VALIDATE_FIX, if defined, before processing a fixup. Call TC_ADJUST_RELOC_COUNT just before returning. Remove some i960-coff-specific code. (TC_ADJUST_RELOC_COUNT): Default to doing nothing. * config/tc-i960.h (TC_ADJUST_RELOC_COUNT) [OBJ_COFF]: Define. (i960_validate_fix): Declare. (TC_VALIDATE_FIX): Define. * config/tc-i960.c (i960_validate_fix): New function. * write.c (number_to_chars_littleendian): New function. Write out bytes in little endian order, doing size and range checking. (number_to_chars_bigendian): New function, similar. * write.h: Declare them. * config/tc-*.c (md_number_to_chars): Use them. * config/tc-vax.c (md_apply_fix): Ditto. * config/tc-i386.c (md_apply_fix): Ditto. * config/obj-coff.c: Rearranged code for handling line number data. (line_fsym): Renamed from function_lineoff in BFD_ASSEMBLER case, since the usage is different from non-BFD_ASSEMBLER case. (in_function, clear_function, set_function): New macros, to combine some of the functionality implemented in differnet ways in BFD_ASSEMBLER and non-... code. Used in other functions that used to check function_lineoff &c. (obj_emit_lineno): Split into two copies, one for BFD_ASSEMBLER, one for not. Non-BFD_ASSEMBLER version now has temporary variable to contain char* pointer pointed to by char** argument. Always follow CROSS_COMPILE code; easier to read that way. (obj_coff_ln): Don't call add_lineno or c_line_new if appline is set. (obj_coff_endef) [BFD_ASSEMBLER]: Don't do anything special for ".bf", it's been done elsewhere. (coff_frob_symbol): If ilne number data is pending, call add_linesym to flush it. (coff_frob_file): Don't do that here. * config/obj-coff.h (coff_frob_file): Declare. (obj_frob_file): Define, to call it. * config/tc-sparc.h (md_create_short_jump, md_create_long_jump, md_estimate_size_before_relax: Define them as macros calling as_fatal. * config/tc-sparc.c: Don't define them as functions.
1993-10-12more null/empty string fixupsKen Raeburn1-1/+1
1993-10-06 Changes to let cons handle bignums like general expressions.Ian Lance Taylor1-0/+1
* expr.h (expressionS): New field X_unsigned. * expr.c (operand): Initialize X_unsigned to 1. Set it to 0 for unary minus case. (expr) Fix typo resultP to right if missing operand. Set X_unsigned to 1 when building new expression. * read.c (potable): Make "octa" and "quad" call cons, not big_cons. (cons): Handle bignums. If given an O_constant (small integer) to fill a big space, turn it into a bignum. (parse_bitfield_cons): Set X_unsigned field. (bignum_low, bignum_limit, bignum_high, grow_bignum, big_cons): Removed. * read.h (big_cons): Remove prototype. * symbols.c (resolve_symbol_value): Don't give a warning if a symbol in expr_section can not be resolved. (S_SET_VALUE): Clear X_unsigned. * write.c (write_object_file): If resolve_symbol_value failed on a symbol we are writing out, give a warning. * config/tc-h8500.c (parse_reglist): Set X_unsigned. * config/tc-hppa.c (md_pseudo_table): Change "octa" and "quad" to call pa_cons, not pa_big_cons. (pa_big_cons): Remove. * config/tc-hppa.h (pa_big_cons): Remove declaration. * config/tc-i960.c (md_pseudo_table): Change "quad" to call cons, not big_cons.
1993-07-23Fix stupid bugs inserted during expression conversion.Ian Lance Taylor1-1/+2
1993-07-22 * config/tc-h8500.c (md_begin): Use a local variable whenIan Lance Taylor1-31/+34
initializing md_relax_table to avoid warnings about modifying a supposedly const data structure.
1993-07-21 * Extensive changes to permit symbols to contain any expressionIan Lance Taylor1-33/+14
type and to delay the computation of the expression until the value is actually needed. This permits setting symbols to values calculated based on object code size. Expressions were changed to no longer be in a section, to stop the overloading of segment and expression type that previously occurred. * as.c (big_section, pass1_section, diff_section, absent_section): Removed. (expr_section): Added (used for dummy symbols which hold intermediate expression values). (perform_an_assembly_pass): Create expr_section, do not create the sections now removed. * as.h (segT): Removed SEG_ABSENT, SEG_PASS1, SEG_BIG, and SEG_DIFFERENCE. Added SEG_EXPR. (SEG_NORMAL): Corresponding changes. * subsegs.c (seg_name, subsegs_begin): Changed accordingly. * write.c (write_object_file): Ditto. * config/obj-aout.c (seg_N_TYPE): Ditto. * config/obj-bout.c (seg_N_TYPE): Ditto. * config/obj-coff.c (seg_N_TYPE): Ditto. * config/obj-coffbfd.c (seg_N_TYPE): Ditto. * config/obj-vms.c (seg_N_TYPE): Ditto. * expr.h (operatorT): Moved in from expr.c, added some values. (expressionS): Added X_op field, removed X_seg field; renamed X_subtract_symbol to X_op_symbol. * expr.c: Extensive changes to assign expression types rather than sections and to simplify the parsing. * write.c (fix_new_internal): New static function. (fix_new): Removed sub_symbol argument. (fix_new_exp): New function, takes expression argument. * write.h: Prototype changes for fix_new and fix_new_exp. * cond.c (s_if): Changed accordingly. * read.c (s_lsym, pseudo_set, emit_expr, parse_bitfield_cons, parse_repeat_cons, get_segmented_expression, get_known_segmented_expression, get_absolute_expression): Ditto. * symbols.c (resolve_symbol_value, S_GET_VALUE, S_SET_VALUE): Ditto. * write.c (write_object_file): Ditto. * config/obj-coff.c (obj_coff_def, obj_coff_val): Ditto. * config/obj-coffbfd.c (obj_coff_def, obj_coff_val, obj_coff_endef, yank_symbols): Ditto. * config/obj-elf.c (obj_elf_stab_generic, obj_elf_size): Ditto. * config/tc-a29k.c (md_assemble, parse_operand, machine_ip, print_insn, md_operand): Ditto. * config/tc-h8300.c (parse_exp, colonmod24, check_operand, do_a_fix_imm, build_bytes): Ditto. * config/tc-h8500.c (parse_exp, skip_colonthing, parse_reglist, get_specific, check, insert, md_convert_frag): Ditto. * config/tc-hppa.c (the_insn, fix_new_hppa, cons_fix_new_hppa, md_assemble, pa_ip, getExpression, getAbsoluteExpression, evaluateAbsolute, pa_build_unwind_subspace, pa_entry, process_exit): Ditto. * config/tc-hppa.h (STAB_FIXUP, is_DP_relative, is_PC_relative, is_complex): Ditto. * config/tc-i386.c (pe, md_assemble, i386_operand, md_estimate_size_before_relax, md_create_long_jump): Ditto. * config/tc-i860.c (md_assemble, getExpression, print_insn): Ditto. * config/tc-i960.c (parse_expr, subs, segs, md_convert_frag, get_cdisp, mem_fmt, parse_ldconst, relax_cobr, s_sysproc, i960_handle_align): Ditto. * config/tc-m68k.c (struct m68k_exp, struct m68k_it, seg, op, subs, add_fix, isvar, m68k_ip, md_assemble, md_convert_frag_1, md_estimate_size_before_relax, md_create_long_jump, get_num): Ditto. * config/tc-m88k.c (md_assemble, get_imm16, get_pcr, md_create_short_jump, md_create_long_jump): Ditto. * config/tc-mips.c (md_assemble, append_insn, gp_reference, macro_build, macro, my_getExpression): Ditto. Also removed get_optional_absolute_expression; just use get_absolute_expression instead. * config/tc-ns32k.c (get_addr_mode, evaluate_expr, convert_iif, fix_new_ns32k, fix_new_ns32k_exp, cons_fix_new_ns32k): Ditto. * config/tc-ns32k.h (fix_new_ns32k prototype): Ditto. * config/tc-sh.c (parse_exp, check, insert, md_convert_frag): Ditto. * config/tc-sparc.c (md_assemble, sparc_ip, getExpression, print_insn): Ditto. * config/tc-tahoe.c (struct top, md_estimate_size_before_relax, tip_op, md_assemble): Ditto. * config/tc-vax.c (seg_of_operand, md_assemble, md_estimate_size_before_relax, md_create_long_jump): Ditto. * config/tc-z8k.c (parse_exp, check_operand, newfix): Ditto.
1993-07-13 * config/tc-h8500.c (line_comment_chars): Add hash.Steve Chamberlain1-7/+35
(parse_exp, skip_colonthing, build_bytes): Add support for R_H8500_HIGH16 relocation type.
1993-07-12fix definitions of md_create_long_jump, md_create_short_jump,Mark Eichin1-6/+6
md_number_to_chars, and md_section_align to correctly use valueT and addressT
1993-07-02fix declsDavid D. Zuhn1-1/+1
1993-05-27read.c (s_align_bytes): Properly record alignment.Ken Raeburn1-1/+1
expr.c (__): Undefine before defining. as.c (got_sig): Don't return anything; return type might be void. Whitespace/comment cleanup in frags.c. Some patches for `-pedantic' or `-fno-common' compilation. (Some of these changes are from Michael Meissner; see change log.)
1993-05-19(build_bytes): Understand @rd mode and build relocations correctly.Steve Chamberlain1-4/+8
1993-04-04 * config/tc-h8500.c: Get relax size of branch instructions right,Steve Chamberlain1-2/+8
(get_operand): Parse @sp+ correctly.
1993-03-29Numerous bug fixesSteve Chamberlain1-257/+338
1993-02-04 * config/{h8500.mt, tc-h8500.c, tc-h8500.h, obj-coffbfd.c,Steve Chamberlain1-0/+1550
obj-coffbfd.h}: support for the H8/500