Commit graph

4267 commits

Author SHA1 Message Date
Mike Frysinger
a2c28b80f1 gas: blackfin: clarify some errors with register usage in insns
Using "Register mismatch" everywhere can be a bit vague, so clarify
why exactly we're barfing on these unsupported insns.

Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-22 21:29:41 +00:00
Mike Frysinger
a01eda858f gas: blackfin: fix DBG/DBGCMPLX insn encoding
Some extended registers when given to the DBG/DBGCMPLX pseudo insns are
not encoded properly.  So fix them, fix the display of them when being
disassembled, and add testcases.

Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-22 21:26:13 +00:00
Mike Frysinger
efda024297 gas: blackfin: handle multibyte symbols
Accept any 8bit char with the high bit set so as to support multibyte
characters.  Also use the locale safe regular expressions to match
chars/digits.  This brings the Blackfin assembler inline with the
behavior of other assemblers.

Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-22 21:08:31 +00:00
Mike Frysinger
22215ae09b opcodes/gas: blackfin: handle more ASTAT flags
Support a few more ASTAT bits with the standard insns that operate on
ASTAT bits directly.

Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-22 21:05:03 +00:00
Mike Frysinger
73a63ccf2f opcodes/gas: blackfin: support OUTC debug insn
The disassembler has partial (but incomplete/broken) support already for
the pseudo debug insn OUTC, so let's fix it up and finish it.  And now
that the disassembler can handle it, make sure our assembler can output
it too.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-22 20:59:00 +00:00
Mike Frysinger
1b182c3c15 gas: blackfin: support ABORT debug insn
There is a pseudo debug insn named ABORT that is commonly used in
simulation, so support it in the assembler too.  The disassembler
already supports it.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-22 20:21:32 +00:00
Mike Frysinger
302080128a gas: blackfin: add support for BF51x-0.2 processors
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-22 20:19:53 +00:00
Mike Frysinger
6e38d38491 gas: blackfin: add support for BF592 processors
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-22 20:17:51 +00:00
Mike Frysinger
7286ec15a4 gas: blackfin: allow end-of-line comments via #
We don't use the # character in the Blackfin assembly language, so let it
start end-of-line comments like most other assemblers.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-22 19:17:19 +00:00
Matthew Gretton-Dann
4ff9b92471 * gas/config/tc-arm.c (arm_cpus): Correct canonical names for Cortex CPUs.
* gas/testsuite/gas/arm/attr-cpu-directive.d: Update test for change in canonical
	CPU name.
	* gas/testsuite/gas/arm/attr-mcpu.d: Likewise.
	* ld/testsuite/ld-arm/attr-merge-6.attr: Update tests for change in canonical
	CPU name.
	* ld/testsuite/ld-arm/attr-merge-7.attr: Likewise.
	* ld/testsuite/ld-arm/attr-merge-2.attr: Likewise.
	* ld/testsuite/ld-arm/attr-merge-arch-2.attr: Likewise.
2010-09-20 16:33:24 +00:00
Richard Henderson
bc1bc43fdc Use bfd_elf_generic_reloc for alpha-elf. 2010-09-20 16:09:03 +00:00
Matthew Gretton-Dann
eab4f823f7 2010-09-17 Tejas Belagod <tejas.belagod@arm.com>
* config/tc-arm.c (do_t_ldmstm): Add logic to handle single-register
	list for ldm/stm.

2010-09-17  Tejas Belagod  <tejas.belagod@arm.com>

	* gas/arm/thumb2_ldmstm.d: Change single-register stmia to use 16-bit
	str encoding instead of str.w.  Likewise for ldmia.
	* gas/arm/thumb2_ldmstm.s: Change stmia comment.  Add tests for T1
	ldmia-to-ldr.
2010-09-17 15:19:14 +00:00
Matthew Gretton-Dann
59b42a0df4 2010-09-17 Tejas Belagod <tejas.belagod@arm.com>
* config/tc-arm.c (parse_psr): Add condition for matching "APSR" on
	non-M-arch cpus.
	(psrs): Add entry for PSR flags, g, nzcvq, nzcvqg.

2010-09-17  Tejas Belagod  <tejas.belagod@arm.com>

	* gas/arm/msr-reg.s: New file.
	* gas/arm/msr-reg.d: Likewise.
	* gas/arm/msr-imm.s: Likewise.
	* gas/arm/msr-imm.d: Likewise.
	* gas/arm/msr-imm-bad.d: Likewise.
	* gas/arm/msr-imm-bad.l: Likewise.
	* gas/arm/msr-reg-bad.d: Likewise.
	* gas/arm/msr-imm-bad.d: Likewise.
	* gas/arm/msr-reg-thumb.d: Likewise.
	* gas/arm/arch7.s: Add tests for xpsr.
	* gas/arm/arch7.d: Likewise.
2010-09-17 10:42:04 +00:00
Matthew Gretton-Dann
db472d6ff0 2010-09-17 Tejas Belagod <tejas.belagod@arm.com>
* config/tc-arm.c (insns): Change MRC entry to accept APSR_RR instead
	of just RR.

2010-09-17  Tejas Belagod  <tejas.belagod@arm.com>

	* gas/arm/copro.s: Add test for APSR_nzcv as a MRC operand.
	* gas/arm/copro.d: Change pc in MRC to disassemble as APSR_nzcv.  Also
	add disassembly for test added in copro.s

2010-09-17  Tejas Belagod  <tejas.belagod@arm.com>

	* arm_dis.c (coprocessor_opcodes): Add MRC entry for APSR_nzcv.
2010-09-17 10:13:41 +00:00
Alan Modra
8f3bae4520 PR gas/12011
* config/obj-elf.c (obj_elf_parse_section_letters): Correct test
	for error return from md_elf_section_letter.
	* config/tc-alpha.c (alpha_elf_section_letter): Correct error message.
	* config/tc-i386.c (x86_64_section_letter): Likewise.
	* config/tc-ia64.c (ia64_elf_section_letter): Likewise.
	* config/tc-mep.c (mep_elf_section_letter): Likewise.
	* gas/elf/bad-section-flag.d, * gas/elf/bad-section-flag.err,
	* gas/elf/bad-section-flag.s: New test.
	* gas/elf/elf.exp: Run it.
2010-09-16 23:55:10 +00:00
Kai Tietz
bea2c1d72c ChangeLog gas
2010-09-15  Kai Tietz  <kai.tietz@onevision.com>

	* config/obj-coff-seh.c (seh_validate_seg): New funtion.
	(obj_coff_seh_endproc): Add check for segment.
	(obj_coff_seh_endprologue): Likewise.
	(obj_coff_seh_pushreg): Likewise.
	(obj_coff_seh_pushframe): Likewise.
	(obj_coff_seh_save): Likewise.
	(obj_coff_seh_setframe): Likewise.

ChangeLog gas/testsuite

2010-09-15  Kai Tietz  <kai.tietz@onevision.com>

	* gas/pe/pe.exp: Add new test.
	* gas/pe/seh-x64-err-1.l: New.
	* gas/pe/seh-x64-err-1.s: New.
2010-09-15 19:48:52 +00:00
Kai Tietz
2d7f492901 ChangeLog gas
2010-09-15  Kai Tietz  <kai.tietz@onevision.com>

       * config/obj-coff-seh.h (seh_context): New member code_seg.
       * config/obj-coff-seh.c: Implementing xdata/pdata section cloning
       for link-once code-segment.

ChangeLog ld

2010-09-15  Kai Tietz  <kai.tietz@onevision.com>

       * scripttempl/pep.sc: Add .xdata segment and
       put into .pdata all segments beginning with .pdata.

ChangeLog gas/testsuite
2010-09-15  Kai Tietz  <kai.tietz@onevision.com>

       * gas/pe/pe.exp: Add peseh-x64-4,5,6 tests.
       * gas/pe/peseh-x64-4.s: New.
       * gas/pe/peseh-x64-4.d: New.
       * gas/pe/peseh-x64-5.d: New.
       * gas/pe/peseh-x64-6.d: New.
2010-09-15 19:43:56 +00:00
Jie Zhang
7ef07ba077 * doc/c-arm.texi: Document -mcpu=cortex-m4. 2010-09-14 09:16:21 +00:00
H.J. Lu
04251de095 Check VEXW1 for 2-byte VEX prefix.
2010-09-09  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (build_vex_prefix): Check VEXW1 for 2-byte
	VEX prefix.
2010-09-09 21:12:37 +00:00
Joseph Myers
8a0344f66a * doc/c-tic6x.texi (.c6xabi_attribute): Document directive. 2010-09-09 20:56:15 +00:00
Matthew Gretton-Dann
dbb1f80440 * gas/config/tc-arm.c (arm_cpus): Add cortex-a15 entry.
* gas/doc/c-arm.texi: Document -mcpu=cortex-a15.
2010-09-09 12:08:13 +00:00
Nick Clifton
33f0727fc3 * gas/config/tc-m68k.c (tc_gen_reloc): Handle references to defined
weak symbols first if generating an a.out object.
2010-09-09 10:48:17 +00:00
Nick Clifton
40f246e36c * config/tc-arm.c (md_apply_fix): Check if widened add, sub are
flag-setting and handle accordingly.

        * gas/arm/addsw-bad.s: New file.
        * gas/arm/addsw-bad.l: New file.
        * gas/arm/addsw-bad.d: New file.
2010-09-09 09:09:43 +00:00
Nick Clifton
95b75c0115 PR gas/11972
* config/tc-arm.c (parse_big_immediate): Allow for bignums being
        extended to the size of a .octa.
2010-09-09 07:40:11 +00:00
Nathan Sidwell
15735687c6 * config/tc-arm.c (create_neon_reg_alias): Deal with case
sensitivity.
2010-09-08 17:49:21 +00:00
Nick Clifton
ab3e2b4a1c PR gas/11973
* config/tc-mn10300.c (md_convert_frag): Zero out top two bytes of
        long call instruction's displacement.
2010-09-08 11:07:39 +00:00
H.J. Lu
13f864aed8 Check flag_code instead of use_rela_relocations for 64bit.
gas/

2010-09-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/11974
	* config/tc-i386.c (i386_finalize_immediate): Check flag_code
	instead of use_rela_relocations for 64bit.

gas/testsuite/

2010-09-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/11974
	* gas/i386/immed64.s: Add more movabs tests.
	* gas/i386/immed64.d: Updated.
2010-09-03 17:38:38 +00:00
Richard Henderson
3251495bd7 * dw2gencfi.c (TC_DWARF2_EMIT_OFFSET): Provide default.
(output_fde): Use it.  Make sure to fully init exp before using it.
testsuite/
	* gas/cfi/cfi-common-1.d: Use objdump instead of readelf to dump.
	* gas/cfi/cfi-common-2.d, gas/cfi/cfi-common-3.d,
	gas/cfi/cfi-common-4.d, gas/cfi/cfi-common-6.d,
	gas/cfi/cfi-common-7.d, gas/cfi/cfi-x86_64.d: Likewise.
	* gas/cfi/cfi-x86_64.s: Remove .type directives.
	* gas/cfi/cfi.exp: Run for pecoff objects too.
	* gas/cfi/reloc-pe-i386.d, gas/cfi/reloc-pe-i386.s: New test.
2010-09-02 22:43:46 +00:00
Kai Tietz
6e0973c0aa 2010-08-31 Kai Tietz <kai.tietz@onevision.com>
* config/obj-coff-seh.c (obj_coff_seh_save): Correct comparison.
        (obj_coff_seh_stackalloc): Likewise.
2010-08-31 14:45:35 +00:00
Alan Modra
91952a0680 * config/obj-elf.c (obj_elf_init_stab_section): Fix assertion. 2010-08-31 05:34:46 +00:00
Richard Henderson
681418c21c * config/obj-coff-seh.c: Rewrite the entire file.
(symtab, symptr, reltab, relcount, relsize): Remove.
	(seh_ctx_root, seh_ctx): Remove.
	(xdata_seg, xdata_subseg, pdata_seg): New.
	(switch_xdata, switch_pdata): New.
	(verify_context, verify_context_and_target, skip_whitespace_and_comma):
	New parsing functions.  Rewrite all parsing functions to use them.
	(obj_coff_seh_32): Fix != arm thinko.
	(obj_coff_seh_handler): For x64, don't accept handler pointer here,
	only flags.
	(obj_coff_seh_handlerdata): New.
	(do_seh_endproc): Split out of ...
	(obj_coff_seh_endproc): ... here.
	(obj_coff_seh_proc): Use it, if needed.
	(seh_x64_make_prologue_element): Use XRESIZEVEC, symbol_temp_new_now.
	(seh_x64_read_reg): Remove mm_regs alternative.  Tidy integer reg
	alternatives.  Don't slurp commas.
	(seh_read_offset): Remove.
	(obj_coff_seh_pushframe): Split out from obj_coff_seh_push.
	(obj_coff_seh_scope): Remove.
	(obj_coff_seh_save): Decide UWOP_SAVE_* vs _FAR immediately.
	(obj_coff_seh_stackalloc): Decide _SMALL vs _LARGE immediately.
	(out_one, out_two, out_four): New.
	(seh_x64_write_prologue_data, seh_x64_size_prologue_data,
	seh_x64_write_function_xdata, write_function_xdata): Rewrite
	from seh_x64_write_xdata, seh_needed_unwind_info, seh_store_elm_data,
	seh_getelm_data_size, seh_getsize_of_unwind_entry,
	seh_make_unwind_entry, seh_getsize_unwind_data, and
	seh_create_unwind_data.
	(seh_arm_write_function_pdata): Rewrite from seh_arm_create_pdata.
	(write_function_pdata): Rewrite from make_function_entry_pdata.
	(seh_write_text_eh_data, make_function_entry_pdata,
	seh_arm_create_pdata, seh_arm_write_pdata, seh_reloc, save_relocs,
	seh_symbol_init, seh_symbol, quick_section, seh_emit_rva,
	seh_emit_long, seh_make_globl, seh_make_section2, seh_make_section,
	seh_make_xlbl_name, make_seh_text_label, seh_fill_pcsyms,
	seh_needed_unwind_info, seh_store_elm_data, seh_getelm_data_size,
	seh_getsize_of_unwind_entry, seh_make_unwind_entry,
	seh_getsize_unwind_data, seh_create_unwind_data,
	seh_make_function_entry_xdata, seh_x64_makescope_elem): Remove.
	* config/obj-coff-seh.h (SEH_CMDS): Remove seh_savemm, seh_scope.
	Add seh_handlerdata.  Adjust function/what arguments for
	seh_savereg, seh_pushframe, seh_stackalloc.
	(struct seh_prologue_element): Adjust members to closer match
	the elements of the UNWIND_CODE structure.
	(struct seh_scope_elem): Remove.
	(struct seh_context): Replace char* members with symbolS or
	expressionS as appropriate.  Sort members by ARM/x64 applicability.
	Remove obsolete stuff wrt direct symbol and reloc manipulation.
2010-08-30 21:51:28 +00:00
H.J. Lu
5fec85997f Move gas/ld NEWS from binutils to gas/ld. 2010-08-25 16:03:58 +00:00
Alan Modra
6f0341784b * configure.tgt (m68k-*-aout): Change to bfd_gas=yes. 2010-08-25 12:03:30 +00:00
Alan Modra
4ad7ac30ca * config/tc-d10v.c (do_assemble): Correctly detect overflow of
"name" buffer.
	* config/tc-m68hc11.c (md_assemble): Likewise.
	* config/tc-microblaze.c (md_assemble): Likewise.  Correct cast
	of is_end_of_line index.
2010-08-25 11:51:07 +00:00
Jie Zhang
dc5ec521f1 * config/tc-arm.c (encode_arm_addr_mode_2): Fix comment. 2010-08-25 05:59:13 +00:00
Jie Zhang
23a10334b2 * config/tc-arm.c (encode_arm_addr_mode_2): Fix
BAD_PC_ADDRESSING condition.

	testsuite/
	* gas/arm/ldst-pc.d: New test.
	* gas/arm/ldst-pc.s: New test.
	* gas/arm/sp-pc-validations-bad.s: `str r0,[pc,#4]' is valid.
	* gas/arm/sp-pc-validations-bad.l: Adjust accordingly.
2010-08-25 05:25:09 +00:00
Maciej W. Rozycki
f0cd06677b * doc/c-arm.texi (ARM Options): Document -mfpu=fp4-sp-d16. 2010-08-20 20:53:28 +00:00
H.J. Lu
43f3e2ee94 Fix a typo in comments.
2010-08-19  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (VEX_check_operands): Fix a typo in comments.
2010-08-19 21:04:36 +00:00
H.J. Lu
9f2670f27b Check i.imm_operands VEXXDS.
2010-08-18  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (build_modrm_byte): Check i.imm_operands
	instead of VEXXDS.
2010-08-18 19:36:41 +00:00
Alan Modra
d1f52f54d5 * macro.c (sub_actual): Add back ampersand suffix when no
substitution.
	(macro_expand_body): Correct comment.
2010-08-18 05:56:41 +00:00
Roland McGrath
01642c122a Add "?" pseudo-flag to ELF .section/.pushsection directives. 2010-08-17 20:03:41 +00:00
Cary Coutant
955974c6c5 * as.c (show_usage): Don't list --compress-debug-sections if zlib not
installed.
	(main): Warn if --compress-debug-sections requested and zlib not
	installed.
	* doc/as.texinfo: Add --compress-debug-sections,
	--nocompress-debug-sections.
2010-08-09 18:08:18 +00:00
H.J. Lu
49021df25c Re-indent config/tc-i386.c.
2010-08-06  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (set_cpu_arch): Re-indent.
	(md_parse_option): Likewise.
2010-08-06 19:47:00 +00:00
H.J. Lu
2210942396 Don't generate multi-byte NOPs for i686.
gas/

2010-08-06  Quentin Neill <quentin.neill@amd.com>

	* config/tc-i386.c (arch_entry): Add negated bit to
	  disambiguate flag names starting with "no".
	  (cpu_arch): Add negated bit definitions.  Add
	  ".nop" CPU extension.
	  (i386_align_code): Use new .cpunop bit to decide
	  when to generate alignment using nops.
	  (set_cpu_arch): Use negated bit instead to decide
	  when to use cpu_flags or vs. cpu_flags_and_not.
	  (md_parse_option): Likewise.

gas/testsuite/

2010-08-06  Quentin Neill <quentin.neill@amd.com>

	* gas/i386/arch-10-1.l: Add nopl instruction.
	* gas/i386/arch-10-2.l: Likewise.
	* gas/i386/arch-10-3.l: Likewise.
	* gas/i386/arch-10-4.l: Likewise.
	* gas/i386/arch-10.s: Likewise.
	* gas/i386/arch-10.d: Add nopl instruction, and +nopl extension
	flag to as flags.
	* gas/i386/nops-5-i686.d: Change alignment code generated for
	-mtune=i686.
	* gas/i386/nops-5.d: Change alignment code generated for
	.arch i686.
	* gas/i386/x86-64-nops-5-k8.d: Likewise.
	* gas/i386/x86-64-nops-5.d: Likewise.

opcodes/

2010-08-06  Quentin Neill <quentin.neill@amd.com>

	* i386-gen.c (cpu_flag_init): Define CpuNop extension flag, add
	to processor flags for PENTIUMPRO processors and later.
	* i386-opc.h (enum): Add CpuNop.
	(i386_cpu_flags): Add cpunop bit.
	* i386-opc.tbl: Change nop cpu_flags.
	* i386-init.h: Regenerated.
	* i386-tbl.h: Likewise.
2010-08-06 18:22:50 +00:00
H.J. Lu
01559eccf0 Move the first i.error out of the loop.
2010-08-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (match_template): Move the first i.error
	out of the loop.
2010-08-04 20:52:20 +00:00
Alan Modra
b96282be2d * configure.tgt (m32c): Set endian=little.
* config/tc-m32c.h (TARGET_BYTES_BIG_ENDIAN): Define as 0.
	* config/tc-m32c.c (md_number_to_chars): Revert last change.
2010-08-04 04:21:06 +00:00
Tristan Gingold
1222b29101 bfd/
2010-08-03  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms (OBJS): Update list.

gas/
Index: gas/ChangeLog
2010-08-03  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms (OBJS): Add Add compress-debug.c.
2010-08-03 14:29:00 +00:00
Alan Modra
e4d9f07834 * config/tc-d10v.h (TARGET_BYTES_BIG_ENDIAN): Define as 1.
* config/tc-m32c.c (md_number_to_chars): Call bigendian
	form of number_to_chars, not littleendian.
2010-08-03 10:53:10 +00:00
Alan Modra
69da848e6e * config/tc-d30v.c (d30v_cons_align): Don't align constants
in debug sections.
2010-08-02 13:53:29 +00:00
Alan Modra
93d90f466b PR gas/11867
* expr.c (operand <'-' and '~'>): Widen bignums.
	(operand <'!'>): Correct bignum result and convert to O_constant.
	* read.c (emit_expr): Don't assert on .byte bignum.  Don't display
	bignum truncated warning for sign extended bignums.
2010-08-02 13:19:44 +00:00