aboutsummaryrefslogtreecommitdiff
path: root/gas/config
AgeCommit message (Collapse)AuthorFilesLines
1995-09-21add -mrelocatable-lib, -memb supportMichael Meissner1-10/+41
1995-09-19 * config/tc-m68k.c (m68k_ip): Reject immediate operands for '|'.Ian Lance Taylor1-6/+22
Replace 'P' with '0', '1', and '2'.
1995-09-19 * config/tc-m68k.c (parse_mri_control_operand): Change leftstopIan Lance Taylor1-45/+112
and rightstop to not be const. (parse_mri_control_expression): Likewise. (build_mri_control_operand): Likewise. Use m68k_ip_op to examine the operand, not m68k_reg_parse. (s_mri_if): In MRI mode, stop at the first '*'. (s_mri_while): Likewise. (s_mri_else): In MRI mode, ignore trailing characters. (s_mri_endi, s_mri_break, s_mri_next, s_mri_for): Likewise. (s_mri_endf, s_mri_repeat, s_mri_until, s_mri_endw): Likewise. * config/m68k-parse.y: Revert yesterday's change. * config/m68k-parse.h: Revert yesterday's change.
1995-09-18 * config/tc-m68k.c (parse_mri_control_operand): Change leftstartIan Lance Taylor3-31/+48
and rightstart to not be const. (parse_mri_control_expression): Likewise. (build_mri_control_operand): Likewise. If the left side of the comparison is a register, and the right side is not, swap the two sides. * config/m68k-parse.y (m68k_reg_parse): Make globally visible. * config/m68k-parse.h (m68k_reg_parse): Declare.
1995-09-18 * read.c (mri_comment_field): New function.Ian Lance Taylor1-5/+13
(mri_comment_end): New function. (s_align_bytes): Use mri_comment_field. (s_align_ptwo, s_comm, s_mri_common, s_fail, s_globl): Likewise. (s_float_space, s_struct): Likewise. (s_space): Use mri_comment_field rather than doing it by hand. (cons_worker, equals): Likewise. (s_end): Ignore comments starting with '*' or '!'. * read.h (mri_comment_field): Declare. (mri_comment_end): Declare. * cond.c (s_if): Use mri_comment_field. * config/tc-m68k.c (s_chip, s_reg): Likewise.
1995-09-18 * write.c (fixup_segment): Handle ABS-sym in -sym case rather thanIan Lance Taylor1-0/+13
sym-sym case. * config/obj-coff.c (fixup_segment): Likewise. Permit negative symbols if TC_M68K. * config/tc-m68k.c (tc_coff_fix2rtype): If fx_tcbit is set, return R_RELLONG_NEG. (tc_gen_reloc): If fx_tcbit is set, abort. (md_apply_fix_2): For a negative reloc, move fx_subsy to fx_addsy, and set fx_tcbit. Permits generating negative relocs for m68k COFF.
1995-09-18 * config/tc-m68k.c (s_reg): Ignore comment field in MRI mode.Ian Lance Taylor1-0/+7
1995-09-18in verbose mode add newline after files are processedKen Raeburn1-0/+6
1995-09-16 * config/tc-m68k.c: Change some "CONST" references to "const".Jeff Law1-5/+5
Just changed those which caused redefinition errors on a system where CONST != const. Many more remain.
1995-09-15vms updatesKen Raeburn1-122/+138
1995-09-13 * write.c (relax_and_size_seg): Change to the segment we areIan Lance Taylor1-17/+1
relaxing, in case md_convert_frag, called by cvt_frag_to_fill, wants to call fix_new. * config/tc-m68k.c (m68k_ip): Permit PC relative code if the segment of the symbol is the current segment, not just in text_section. (md_convert_frag_1): Don't call subseg_change. (md_estimate_size_before_relax): Likewise.
1995-09-08 * app.c (do_scrub_chars): In MRI mode, keep a space before aIan Lance Taylor1-4/+18
possible comment character. * config/tc-m68k.c (m68k_ip): In MRI mode, ignore anything after an instruction which takes no operands.
1995-08-31Thu Aug 31 16:41:06 1995 steve chamberlain <sac@slash.cygnus.com>Steve Chamberlain1-0/+106
* write.c (fixup_segment): Remove change of 29th. * config/tc-{i386,arm}.h (TC_FORCE_RELOCATION): Keep RVA relocs.
1995-08-29 * config/tc-sparc.c (sparc_ip): Clean up ASI support.David Edelsohn1-14/+10
1995-08-28 * config/tc-arm.c (do_swi): Allow optional leading '#'.David Edelsohn1-0/+4206
1995-08-27 * config/te-delta.h: Include obj-format.h.Ian Lance Taylor3-0/+7
* config/te-sco386.h: Likewise. * config/te-sysv32.h: Likewise.
1995-08-22vms changesKen Raeburn2-566/+353
1995-08-21 * read.c (read_a_source_file): In MRI mode, don't end theIan Lance Taylor1-9/+71
statement inside a quotation. (s_space): Don't warn about a zero repeat count in MRI mode. * config/tc-m68k.c (crack_operand): In MRI mode, don't count parentheses inside quotes. (md_assemble): In MRI mode, anything after the operands field is a comment. (parse_mri_control_operand): Adjust start and stop to remove spaces. (s_mri_for): Likewise.
1995-08-21 Add support for macros.Ian Lance Taylor1-4/+23
* as.c: Include sb.h and macro.h. (max_macro_next): New global variable. (main): Call macro_init. (macro_expr): New static function. * as.h (max_macro_nest): Declare. * read.c (line_label): Rename from mri_line_label. Change all uses. (potable): Add exitm, irp, irpc, macro, mexit, rept. (read_a_source_file): Always clear line_label at the start of a line, not just when flag_mri or LABELS_WITHOUT_COLONS. Fixup MRI/LABELS_WITHOUT_COLONS handling. In MRI mode, permit label: equ val. Set line_label when calling colon. In MRI mode, a leading '.' does not imply a pseudo-op. Check for macro expansion before calling md_assemble. (s_irp): New function. (get_line_sb): New static function. (s_macro): New function. (s_mexit): New function. (s_rept): New function. * read.h (line_label): Rename from mri_line_label. (s_irp, s_rept): Declare. (s_macro, s_mexit): Declare. * input-scrub.c: Include sb.h. (sb_index, from_sb): New static variables. (macro_nest): New static variable. (struct input_save): Add sb_index and from_sb fields. Change next_saved_file field to be struct input_save *. (next_saved_file): Changed to be struct input_save *. (input_scrub_push): Change to return type struct input_save *. Save sb_index and from_sb. (input_scrub_pop): Change parameter type to struct input_save *. Restore sb_index and from_sb. (input_scrub_include_sb): New function. (input_scrub_next_buffer): Handle reading from from_sb. (bump_line_counters): Only increment lines if not using from_sb. * config/tc-m68k.c (opt_table): Add nest. (opt_nest): New static function. * gasp.c: Include sb.h and macro.h. Move all sb related functions and definitions to sb.h and sb.c. Move all macro related functions and definitions to macro.h and macro.c. * sb.h, sb.c: New files, extracted from gasp.c. * macro.h, macro.c: Likewise. * Makefile.in (OBJS): Add sb.o and macro.o (GASPOBJS): Define. (gasp.new): Depend upon $(GASPOBJS). Use $(GASPOBJS) to link. (TARG_CPU_DEP_m68k): Depend upon subsegs.h. (gasp.o): Depend upon sb.h and macro.h. (sb.o): New target. (macro.o): New target. (as.o): Depend upon sb.h and macro.h. (input-scrub.o): Depend upon sb.h. (read.o): Depend upon sb.h and macro.h.
1995-08-21Allow @HA, @L, and @H on constant expressions.Michael Meissner1-11/+70
1995-08-18 * config/tc-m68k.c: Include subsegs.h.Ian Lance Taylor1-2/+1085
(m68k_ip): Pass 64 rather than -1 to add_Fix in 'B' 'B' case. (md_pcrel_from): If fx_pcrel_adjust is 64, use -1 instead. You can't portably store negative numbers in a char.
1995-08-16 * config/tc-sparc.c (tc_gen_reloc): If PIC, only change PCREL_S2Ian Lance Taylor1-13/+97
to WPLT30 for an undefined or external symbol. Don't consider PC10 or PC22 to be a PC relative reloc when choosing between fx_addnumber and fx_offset.
1995-08-14 * config/tc-m68k.c (s_reg): Rename local op to rop to avoidIan Lance Taylor1-18/+18
confusion with macro op.
1995-08-14 * config/tc-m68k.c (s_opt): Reset *input_line_pointer even if weIan Lance Taylor1-0/+2
don't do anything with the option.
1995-08-13 * config/tc-hppa.c (md_pseudo_table): Add entries forJeff Law1-1/+29
"begin_brtab" and "end_brtab" pseudo-ops. (pa_brtab): New function. (tc_gen_reloc, SOM version): Handle R_BEGIN_BRTAB and R_END_BRTAB. (hppa_force_relocation): Force relocations for BRTAB fixups when OBJ_SOM is defined. More infrastructure for PA optimziations.
1995-08-10 * config/tc-m68k.c (m68k_ip): When recognizing '#', use isbyte andIan Lance Taylor1-5/+8
iword rather than expr8 and expr16. When recognizing 'M', use issbyte rather than expr8. When recognizing 'Q' and 't', just check for O_constant rather than using expr8. * config/m68k-parse.h (expr8, expr16): Don't define. * Makefile.in (m68k-parse.o): Depend upon m68k-parse.h, not m68k-parse.y.
1995-08-10 * read.c (potable): Add spc, ttl, xcom, xref.Ian Lance Taylor1-0/+83
(s_mri_sect): New function. * read.h (s_mri_sect): Declare. * config/obj-coff.c (obj_coff_section) (both versions): In MRI mode, call s_mri_sect. (obj_pseudo_table): Add sect.s and section.s. Move sect outside of ifndef BFD_ASSEMBLER. * config/obj-elf.c (elf_pseudo_table): Add section.s, sect, sect.s. (obj_elf_section): In MRI mode, call s_mri_sect. * config/tc-m68k.c (md_pseudo_table): Add restore, save. (struct save_opts): Define. (save_stack): New static variable. (s_save, s_restore): New static functions.
1995-08-10 * read.c (s_set): Remove unused local ptr.Ian Lance Taylor4-0/+9
(hex_float): Check target_big_endian. (equals): Remove unused local p. * config/tc-a29k.h (TARGET_BYTES_BIG_ENDIAN): Define. * config/tc-h8500.h (TARGET_BYTES_BIG_ENDIAN): Define. * config/tc-hppa.h (TARGET_BYTES_BIG_ENDIAN): Define. * config/tc-i860.h (TARGET_BYTES_BIG_ENDIAN): Define. * config/tc-m68k.h (TARGET_BYTES_BIG_ENDIAN): Define. * config/tc-m88k.h (TARGET_BYTES_BIG_ENDIAN): Define. * config/tc-tahoe.h (TARGET_BYTES_BIG_ENDIAN): Define. * config/tc-sh.c (little): Set target_big_endian. (md_begin): Likewise. (md_parse_option): Likewise. (build_relax): Check target_big_endian rather than shl. (build_Mytes, md_atof): Likewise. (md_convert_frag, md_apply_fix): Likewise. (md_number_to_chars): Likewise.
1995-08-09 * config/tc-m68k.c (m68k_abspcadd): New static variable.Ian Lance Taylor1-5/+370
(m68k_quick): New static variable. (m68k_rel32): New static variable. (md_pseudo_table): Add opt and reg. (m68k_ip): Permit absolute symbols in 'l'/'L' recognition. Check m68k_quick in 'M' and 'Q' recognition. Check m68k_abspcadd in DISP handling. Check m68k_rel32 in BASE/POST/PRE handling. (md_begin): In MRI mode, initialize m68k_abspcadd and m68k_rel32. In MRI mode, change unsized branch aliases to be variable sized. (struct opt_action): Define. (opt_table): Define. (s_opt): New static function. (skip_to_comma): New static function. (opt_chip): New static function. (opt_list): New static function. (opt_list_symbols): New static function. (s_reg): New static function. * as.h (flag_keep_locals): Change from unsigned char to int. (flag_no_warnings): Likewise.
1995-08-09 * write.c (adjust_reloc_syms): Check that symbol is not NULLIan Lance Taylor1-1/+2
before checking sy_mri_common. (fixup_segment): Likewise. * config/obj-coff.c (fixup_segment): Likewise.
1995-08-09 * config/tc-m68k.c (m68k_float_copnum): New static variable.Ian Lance Taylor2-11/+40
(md_pseudo_table): Add fopt and mask2. (m68k_ip): Use m68k_float_copnum, not COPNUM, when setting coprocessor register to use. In case 'I' when checking operands, correct coprocessor register numbers. In case 'I' when setting operands, don't add 1. (s_fopt): New static function. * config/m68k-parse.h (COPNUM): Don't define.
1995-08-09yet more vms work from pat rankinKen Raeburn1-153/+109
1995-08-08 * config/tc-m68k.c (archs): Add 68ec000, 68hc000, 68hc001,Ian Lance Taylor1-2/+67
68ec020, 68ec030, 68ec040, and 68330. (md_pseudo_table): Add chip and comline. (m68k_init_after_args): Use strcasecmp when comparing default_cpu against architectures. (mri_chip, s_chip): New static functions.
1995-08-08 * struc-symbol.h (struct symbol): Add sy_mri_common bit.Ian Lance Taylor1-1/+22
* read.h (mri_comon_symbol): Declare. (s_mri_common): Declare. * read.c (mri_line_label): New static variable. (mri_common_symbol): New global variable. (potable): Add "common" and "common.s". (read_a_source_file): In MRI mode, set mri_line_label for a label at the start of a line. (s_mri_common): New function. (s_space): Handle mri_common_symbol. * symbols.c (colon): Change return value from void to symbolS *, and return new symbol. If mri_common_symbol is set, attach the new symbol to it. (resolve_symbol_value): Handle an sy_mri_common symbol. * symbols.h (colon): Change return value in declaration. * subsegs.c (subseg_set_rest): Clear mri_common_symbol. (subseg_set (both versions)): Likewise. * frags.c (frag_more): Warn if mri_common_symbol is not NULL. * write.c (adjust_reloc_syms): Skip sy_mri_common symbols. (write_object_file): Discard sy_mri_common symbols. (fixup_segment): Change relocations against sy_mri_common symbols to be against the common symbol itself. * config/obj-coff.c (yank_symbols): Discard sy_mri_common symbols. (fixup_segment): Change relocations against sy_mri_common symbols to be against the common symbol itself. * config/obj-aout.c (obj_crawl_symbol_chain): Discard sy_mri_common symbols.
1995-08-08 * config/m68k-parse.y: New file: bison grammar for m68k operands,Ian Lance Taylor4-1702/+1865
including support for Motorola syntax. * config/m68k-parse.h: New file; definitions shared between m68k-parse.y and tc-m68k.c. * config/tc-m68k.c: Include m68k-parse.h. (enum operand_type): Move to m68k-parse.h, where it is named m68k_operand_type. Rename all uses. Rearrange somewhat. Add FPREG. Rename AOFF to DISP. Rename AINDX to BASE. Rename APODX to POST. Rename APRDX to PRE. Remove AMIND. Rename MSCR to CONTROL. Remove DINDR. (struct m68k_exp): Move to m68k-parse.h. Remove e_beg, e_end and e_seg fields. Rename e_exp to exp. Rename e_siz to size, and change type to enum m68k_size. Change all uses. (enum _register): Move to m68k-parse.h, where it is named m68k_register. Rename all uses. Add ZDATA0-7 and ZADDR0-7. (struct m68k_op): Move to m68k-parse.h. Change all fields. (seg): Don't define. (add_exp): Remove. (FAIL, OK): Remove. (m68k_reg_parse): Move to m68k-parse.y, and rewrite. (SKIP_WHITE, SKIP_W): Remove. (try_moto_index, try_index): Remove. (m68k_ip_op): Move to m68k-parse.y, and rewrite to use grammar. (main): Remove obsolete test function. (m68k_ip): Extensive changes to use new grammar. (get_regs): Remove. (crack_operand): m68k_ip_op now returns 0 on success. (init_table): Add ssp, zd0-7 and za0-7. (md_assemble): Make er const. Correct loop over operands when looking for error message. (md_begin): Set alt_notend_table for '(' and '@'. (get_num): Expression is already parsed. Don't set seg. * configure.in: If cpu_type is m68k, put m68k-parse.o in extra-objects. * configure: Rebuild. * Makefile.in (DISTSTUFF): Add m68k-parse.c. (BISON): Use ../bison/bison if it exists. (BISONFLAGS): Define as empty. (TARG_CPU_DEP_m68k): Depend upon $(srcdir)/config/m68k-parse.h. (m68k-parse.c, m68k-parse.o): New targets.
1995-08-07 * config/tc-sh.c (parse_reg): Handle new FP registers.Jeff Law2-210/+577
(get_specific): Handle new operand types. Sanitized away for now.
1995-08-01 * config/tc-m68k.c (init_table): Add "control", "status", "iaddr",Ian Lance Taylor1-7/+14
"sfcr", and "dfcr" as synonyms for existing entries. (md_begin): In MRI mode, force flag_reg_prefix_optional to 1. (md_parse_option): Removed unused locals i and arch. Change type of arch (another one) to unsigned long. (tc_coff_sizemachdep): Add return after abort to avoid warning.
1995-08-01yet more vms workKen Raeburn1-80/+78
1995-07-28more vms changesKen Raeburn2-63/+52
1995-07-25more vms work from patKen Raeburn1-786/+716
1995-07-24 * config/tc-sh.c (md_pseudo_table): Add "uses".Ian Lance Taylor1-16/+78
(s_uses): New static function. (sh_coff_frob_file): New function. (md_convert_frag): Call subseg_change before calling fix_new. (sh_handle_align): New function. (SWITCH_TABLE): Define. (sh_force_relocation): New function. (md_apply_fix): Handle R_SH_USES, R_SH_COUNT and R_SH_ALIGN. (sh_coff_reloc_mangle): Likewise. Also handle switch table entries. * config/tc-sh.h (HANDLE_ALIGN): Define. (sh_handle_align): Declare. (TC_FORCE_RELOCATION): Define. (sh_force_relocation): Declare. (TC_COUNT_RELOC): Simplify; rely on TC_FORCE_RELOCATION instead. (tc_frob_file): Define. (sh_coff_frob_file): Declare. * config/obj-coff.c (write_object_file): Call tc_frob_file if it is defined. (fixup_mdeps): Call HANDLE_ALIGN if it is defined. (TC_FORCE_RELOCATION): Define if not defined. (fixup_segment): Use TC_FORCE_RELOCATION to decide whether to clear the symbol fields of fixP.
1995-07-19 * config/tc-sh.c (sh_relax): Rename from relax, and make global.Ian Lance Taylor10-135/+179
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-18vms fixes from pat rankinKen Raeburn1-110/+84
1995-07-14* config/tc-arc.c (byte_order): Provide explicit initial value.David Edelsohn1-39/+83
1995-07-11Tue Jul 11 14:28:55 1995 Jeff Spiegel <jeffs@lsil.com>Ian Lance Taylor1-12/+57
* config/tc-mips.c (mips_4010): New static variable. (interlocks): New static variable. (md_begin): Check for a cpu of "r4010". Set mips_4010 correctly. If mips_4650 or mips_4010, set interlocks. (append_insn): Check interlocks, not mips_4650. (mips_emit_delays): Likewise. (mips_ip): Only permit INSN_4010 instructions if mips_4010. (md_longopts): Add "m4010" and "no-m4010". (md_parse_option): Accept -mcpu=r4010. Handle -m4010 and -no-m4010. (md_show_usage): Document -m4010 and -no-m4010.
1995-07-07 * app.c (do_scrub_next_char): Always accept \v. Don't make itIan Lance Taylor1-3/+0
conditional on BACKSLASH_V. * read.c (next_char_of_string): Likewise. * config/obj-bout.h (BACKSLASH_V): Don't define. * config/tc-mips.h (BACKSLASH_V): Don't define. PR 5604.
1995-07-07 Add SPARC ELF PIC support.Ian Lance Taylor1-5/+5
* write.c (fixup_segment): Pass fixP to TC_RELOC_RTSYM_LOC_FIXUP, not fixP->fx_r_type. * config/tc-sparc.c (sparc_pic_code): New global variable. (md_apply_fix): If generating PIC, adjust fx_addnumber for any non PC relative reloc. (tc_gen_reloc): If generating PIC, adjust various reloc types. Remove fx_pcrel assert, since it is no longer true. (md_parse_option): Handle -K PIC. * config/tc-sparc.h (sparc_pic_code): Declare if OBJ_ELF. (TC_RELOC_RTSYM_LOC_FIXUP): Define if OBJ_ELF. (tc_fix_adjustable): Don't adjust PC relative relocs if PIC. * config/tc-i386.h (TC_RELOC_RTSYM_LOC_FIXUP): Take a fixp, not a reloc type. PR 7131.
1995-07-06fsf address updateKen Raeburn33-39/+91
1995-07-06 * config/tc-sparc.c (s_reserve): Don't permit redefinition, evenIan Lance Taylor1-3/+3
if the symbol was already in bss_section. Fix warning message. PR 6797.
1995-07-06 * config/tc-alpha.h (alpha_do_align): Don't declare.Ian Lance Taylor2-35/+222
(md_do_align): Don't define. (tc_frob_label): Define. (alpha_define_label): Declare. (md_flush_pending_output): Define. (alpha_flush_pending_output): Declare. * config/tc-alpha.c (insn_label): New static variable. (auto_align): New static variable. (md_pseudo_table): Add cases for .text, .data, .align, .byte, .hword, .int, .long, .octa, .quad, .short, .word, .double, .float, and .single. Change .t_floating, .s_floating, .f_floating, .g_floating, and .d_floating to use s_alpha_float_cons rather than float_cons. (s_alpha_text, s_alpha_data): New static functions. (s_rdata, s_sdata): Clear insn_label and set auto_align. (s_gprel32): If auto_align, align. Clear insn_label. (emit_insn): Clear insn_label. (s_alpha_align): New static function. (alpha_align): Make static. Take label argument. (alpha_flush_pending_output): New static function. (s_alpha_cons, s_alpha_float_cons): New static functions. (alpha_define_label): New function. PR 7148.