Commit Graph

50 Commits

Author SHA1 Message Date
Andreas Schwab bb2a145347 Disallow PC relative for CMPI on MC68000/10
The MC68000/10 decodes the second operand of CMPI strictly as destination
operand, which disallows PC relative addressing, even though the insn
doesn't write to the operand.  This restriction has only been lifted for
the MC68020+ and CPU32.

opcodes:
	PR 25848
	* m68k-opc.c (m68k_opcodes): Allow pc-rel for second operand of
	cmpi only on m68020up and cpu32.

gas:
	PR 25848
	* testsuite/gas/m68k/operands.s: Add tests for cmpi.
	* testsuite/gas/m68k/operands.d: Update.
	* testsuite/gas/m68k/op68000.d: Update for new error messages.
2020-04-21 16:53:36 +02:00
Alan Modra b3adc24a07 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
Miod Vallat 8063ab7e37 Use the correct alias for the M68K tdiv instruction.
PR 24982
	* m68k-opc.c: Correct aliases for tdivsl and tdivul.
2019-09-10 17:17:01 +01:00
Alan Modra 827041555a Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
Alan Modra 219d1afa89 Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
Nick Clifton 58a0b82744 Allow the macw and macl instructions to be used on CPUs that have emacs support.
From PR 22123:

  The common opcodes of emac and mac seem to be only implemented for mac.

  To reproduce:

    echo "macw %d3l,%a0l" > /tmp/dummy.S
    m68k-unknown-elf-as -m5208  /tmp/dummy.S

  Outputs something like:
    /tmp/dummy.S: Assembler messages:
    /tmp/dummy.S:1: Error: operands mismatch -- statement `macw %d3l,%a0l' ignored

  This behavior occurs only if the CPU supports only emac but not explicitly mac (but emac is a superset of mac).
2017-09-26 10:36:23 +01:00
Alan Modra 2571583aed Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
Andreas Schwab 83c3256ef5 m68k: fix constraints of move.[bw] for ISA_B/C
For ISA_B/C only the combination #,d(An) is allowed in addition to the
ISA_A combinations for move.b and move.w (and pc-relative is never
allowed as destination).

opcodes/
	PR gas/13050
	* m68k-opc.c (moveb, movew): For ISA_B/C only allow #,d(An) in
	addition to ISA_A.

gas/
	PR gas/13050
	* testsuite/gas/m68k/all.exp: Add tests p13050-1 and p13050-2.
	* testsuite/gas/m68k/p13050-1.s: New file.
	* testsuite/gas/m68k/p13050-2.d: New file.
	* testsuite/gas/m68k/p13050-2.s: New file.
2016-01-08 11:42:10 +01:00
Alan Modra 6f2750feaf Copyright update for binutils 2016-01-01 23:00:01 +10:30
H.J. Lu 43e65147c0 Remove trailing spaces in opcodes 2015-08-12 04:45:07 -07:00
Alan Modra b90efa5b79 ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
Alan Modra 4b95cf5c0c Update copyright years 2014-03-05 22:16:15 +10:30
Andreas Schwab e143d25c73 * gas/testsuite/gas/m68k/pmove.s, gas/testsuite/gas/m68k/pmove.d: New test.
* gas/testsuite/gas/m68k/all.exp: Run it.

* opcodes/m68k-opc.c (m68k_opcodes): Fix entries for pmove with BADx/BACx
register and move them after pmove with PSR/PCSR register.
2012-01-16 23:19:20 +00:00
Julian Brown c373271616 opcodes/
* m68k-opc.c (m68k_opcodes): Fix entries for ColdFire moveml.

    gas/testsuite/
    * gas/m68k/all.exp (movem-offset): Add test.
    * gas/m68k/movem-offset.s: New test.
    * gas/m68k/movem-offset.d: New.
2011-10-24 16:36:51 +00:00
Andreas Schwab 96e67898bc * gas/testsuite/gas/m68k/all.exp: Run "mode5" test also with -mcpu=5200.
* gas/testsuite/gas/m68k/mode5.s: Add moveml testcases.
* gas/testsuite/gas/m68k/mode5.d: Update.

* opcodes/m68k-opc.c: Use "y" in moveml pattern for mcfisa_a.
2011-09-07 20:56:09 +00:00
Andreas Schwab 1a2dab1fbb binutils/:
* binutils-all/m68k/objdump.exp: Add fnop test.
	* binutils-all/m68k/fnop.s: New file.

opcodes/:
	* m68k-opc.c (m68k_opcodes): Move fnop before fbf.
2010-10-11 22:18:42 +00:00
Nick Clifton 6ffe3d995f PR gas/11673
* m68k-opc.c (m68k_opcodes): Remove move.l for isab and later.

        * gas/m68k/p11673.s: New test.
        * gas/m68k/all.exp: Run the new test.
2010-06-16 16:27:37 +00:00
Nick Clifton ee9fd255b7 PR gas/11030
* m68k-opc.c (m68k_opcodes): Allow the STLDSR instruction on the
        Coldfire ISA A+.
2009-11-30 14:45:30 +00:00
Alan Modra 6a327e170e PR 969
* m68k-opc.c (m68k_opcodes): Correct mask for macl and msacl.
2009-10-14 11:30:20 +00:00
Alan Modra aa820537ea update copyright dates 2009-09-02 07:25:43 +00:00
Nathan Sidwell 872989673f gas/
* config/tc-m68k.c (mcf51qe_ctrl): Add CPUCR.
	(mcf52259_ctrl, mcf52277_ctrl, mcf53017_ctrl): New.
	(mcf5307_ctrl): Add VBR.
	(no_mac): New variable.
	(m68k_extensions): Refer to no_mac mask.
	(m68k_cpus): Add 51, 51ac, 51cn, 51em, 51jm, 52274, 52277,
	52252..52259, 53011..53017.
	(m68k_ip): Process CPUCR.
	(init_table): Add cpucr entry.
	(m68k_set_extension): Allow negated mask to refer to a variable.
	(md_show_usage): Use '%s' to silence fprintf warning.
	* config/m68k-parse.h (CPUCR): New control register.

	gas/testsuite/
	* m68k/br-isac.d, m68k/br-isac.s: Add stldsr test.

	opcodes/
	* m68k-opc.c (m68k_opcodes): Add stldsr instruction.
2009-02-12 08:31:03 +00:00
Nick Clifton 57d85092b1 PR gas/5228
* m68k-opc.c (m68k_opcodes): Fix coldfire msac.w instructions with parallel loads.
2007-11-07 16:37:44 +00:00
Nathan Sidwell 25b07cd9c4 opcodes/
* m68k-opc.c (m68k_opcodes): Correct move sr and ccr masks for
	coldfire.

	gas/testsuite/
	* gas/m68k/mcf-movsr.s: New.
	* gas/m68k/mcf-movsr.d: New.
	* gas/m68k/all.exp: Add mcf-movsr test.
2007-10-17 13:44:09 +00:00
Nick Clifton 9b201bb5e5 Change source files over to GPLv3. 2007-07-05 09:49:03 +00:00
Nathan Sidwell afa2158f09 gas/testsuite/
* gas/m68k/mcf-coproc.d: New.
	* gas/m68k/mcf-coproc.s: New.
	* gas/m68k/all.exp: Add it.

	gas/
	* config/tc-m68k.c (m68k_ip): Add j & K operand types.
	(install_operand): Add E encoding.
	(md_begin): Check and skip initial '.' arg character.
	(get_num): Add 0..511 case.

	include/
	* opcode/m68k.h: Document j K & E.

	opcodes/
	* m68k-dis.c (fetch_arg): Add E.  Replace length switch with
	direct masking.
	(print_ins_arg): Add j & K operand types.
	(match_insn_m68k): Check and skip initial '.' arg character.
	(m68k_scan_mask): Likewise.
	* m68k-opc.c (m68k_opcodes): Add coprocessor instructions.
2007-07-03 07:54:19 +00:00
Kazu Hirata ddefa7f508 opcodes/
* m68k-opc.c (m68k_opcodes): Add wdebugl variants.

gas/testsuite/
	* gas/m68k/all.exp: Run mcf-wdebug.
	* gas/testsuite/gas/m68k/mcf-wdebug.d,
	gas/testsuite/gas/m68k/mcf-wdebug.s: New.
2007-06-18 16:10:27 +00:00
Nathan Sidwell 9a2e615a9f gas/testsuite/
* gas/m68k/br-isaa.s: New.
	* gas/m68k/br-isaa.d: New.
	* gas/m68k/br-isab.s: New.
	* gas/m68k/br-isab.d: New.
	* gas/m68k/br-isac.s: New.
	* gas/m68k/br-isac.d: New.
	* gas/m68k/all.exp: Adjust.

	gas/
	* config/tc-m68k.c (mcf54455_ctrl): New.
	(HAVE_LONG_DISP, HAVE_LONG_CALL, HAVE_LONG_COND): New.
	(m68k_archs): Add isac.
	(m68k_cpus): Add 54455 family.
	(m68k_ip): Split Bg into Bb, Bs, Bg.
	(m68k_elf_final_processing): Add ISA_C.
	* doc/c-m68k.texi (M680x0 Options): Add isac.

	include/opcode/
	* m68k.h (mcfisa_c): New.
	(mcfusp, mcf_mask): Adjust.

	bfd/
	* archures.c (bfd_mach_mcf_isa_c, bfd_mach_mcf_isa_c_mac,
	bfd_mach_mcf_isa_c_emac): New.
	* elf32-m68k.c (ISAC_PLT_ENTRY_SIZE, elf_isac_plt0_entry,
	elf_isac_plt_entry, elf_isac_plt_info): New.
	(elf32_m68k_object_p): Add ISA_C.
	(elf32_m68k_print_private_bfd_data): Print ISA_C.
	(elf32_m68k_get_plt_info): Detect ISA_C.
	* cpu-m68k.c (arch_info): Add ISAC.
	(m68k_arch_features): Likewise,
	(bfd_m68k_compatible): ISAs B & C are not compatible.

	opcodes/
	* m68k-opc.c: Mark mcfisa_c instructions.
2007-04-23 07:51:33 +00:00
Kazu Hirata 3bdcfdf41f bfd/
* archures.c (bfd_mach_cpu32_fido): Rename to bfd_mach_fido.
	* bfd-in2.h: Regenerate.
	* cpu-m68k.c (arch_info_struct): Use bfd_mach_fido instead of
	bfd_mach_cpu32_fido.
	(m68k_arch_features): Use fido_a instead of cpu32.
	(bfd_m68k_compatible): Reject the combination of Fido and
	ColdFire.  Accept the combination of CPU32 and Fido with a
	warning.
	* elf32-m68k.c (elf32_m68k_object_p,
	elf32_m68k_merge_private_bfd_data,
	elf32_m68k_print_private_bfd_data): Treat Fido as an
	architecture by itself.

binutils/
	* readelf.c (get_machine_flags): Treat Fido as an architecture
	by itself.

gas/
	* config/tc-m68k.c (m68k_archs, m68k_cpus): Treat Fido as an
	architecture by itself.
	(m68k_ip): Don't issue a warning for tbl instructions on fido.
	(m68k_elf_final_processing): Treat Fido as an architecture by
	itself.

include/elf/
	* m68k.h (EF_M68K_FIDO): New.
	(EF_M68K_ARCH_MASK): OR EF_M68K_FIDO.
	(EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): Remove.

include/opcode/
	* m68k.h (m68010up): OR fido_a.

opcodes/
	* m68k-opc.c (m68k_opcodes): Replace cpu32 with
	cpu32 | fido_a except on tbl instructions.
2007-01-08 18:42:37 +00:00
Andreas Schwab baee4c9eb0 gas/testsuite/:
* gas/m68k/cpu32.[sd]: New test.
	* gas/m68k/all.exp: Run it.

opcodes/:
	* m68k-opc.c: Fix encoding of signed bit in the cpu32 tbls insns.
2007-01-04 17:14:50 +00:00
Kazu Hirata 6bd025df59 * m68k-opc.c (m68k_opcodes): Add sleep and trapx. 2006-12-27 07:10:10 +00:00
Nathan Sidwell 869ddf2a18 gas/
* config/tc-m68k.c (m68k_ip):  Correct output of cpu aliases.
gas/testsuite/
	* gas/m68k/all.exp: Add mcf-trap.
	* gas/m68k/mcf-trap.[sd]: New.
opcodes/
	* m68k-opc.c (m68k_opcodes): Place trap instructions before set
	conditionals.  Add tpf coldfire instruction as alias for trapf.
2006-11-16 07:22:25 +00:00
Richard Sandiford 777b13b958 opcodes/
* m68k-opc.c (m68k_opcodes): Fix operand specificer in the Coldfire
	"fdaddl" entry.

gas/testsuite/
	* gas/m68k/mcf-fpu.s: Add tests for all addressing modes.
	* gas/m68k/mcf-fpu.d: Update accordingly.
2006-07-29 08:55:38 +00:00
Richard Sandiford a596001ece include/opcodes/
* m68k.h (mcf_mask): Define.

opcodes/
	* m68k-opc.c (m68k_opcodes): Fix the masks of the Coldfire fmovemd
	and fmovem entries.  Put register list entries before immediate
	mask entries.  Use "l" rather than "L" in the fmovem entries.
	* m68k-dis.c (match_insn_m68k): Remove the PRIV argument and work it
	out from INFO.
	(m68k_scan_mask): New function, split out from...
	(print_insn_m68k): ...here.  If no architecture has been set,
	first try printing an m680x0 instruction, then try a Coldfire one.

gas/testsuite/
	* gas/m68k/mcf-fpu.s: Add fmovemd and fmovem instructions.
	* gas/m68k/mcf-fpu.d: Adjust accordingly.
2006-05-25 08:09:03 +00:00
Paul Brook c2fe93275a 2006-01-16 Paul Brook <paul@codesourcery.com>
opcodes/
	* m68k-opc.c(m68k_opcodes): Fix opcodes for ColdFire f?abss,
	f?add?, and f?sub? instructions.

gas/testsuite/
	* gas/m68k/all.exp: Add mcf-fpu.
	* gas/m68k/mcf-fpu.d: New file.
	* gas/m68k/mcf-fpu.s: New file.
2006-01-16 16:23:30 +00:00
Paul Brook 1b3a26b59c 2006-01-05 Paul Brook <paul@codesourcery.com>
* m68k-opc.c (m68k_opcodes): Add missing ColdFire fdsqrtd entry.
2006-01-15 16:35:21 +00:00
Ben Elliston cc16ba8c4f * m68k-dis.c: Use ISC C90.
* m68k-opc.c: Formatting fixes.
2005-06-23 11:18:26 +00:00
Nick Clifton f432110413 Update the address and phone number of the FSF 2005-05-07 07:34:31 +00:00
Nick Clifton be8c092bb0 Reorganise m68k instruction decoding and improve handling of MAC/EMAC 2004-05-24 14:33:22 +00:00
Nick Clifton 6b6e92f432 Add support for 521x,5249,547x,548x. 2004-05-05 14:33:14 +00:00
Nick Clifton fd99574ba5 Add support for ColdFire MAC instructions and tidy up support for other m68k
variants.
2004-04-22 10:33:16 +00:00
H.J. Lu f4fa50da5d 2003-11-05 H.J. Lu <hongjiu.lu@intel.com>
* m68k-opc.c (m68k_opcodes): Reorder "fmovel".
2003-11-06 04:32:07 +00:00
Nick Clifton 3e60263266 Add ColfFire v4 support 2003-10-21 13:28:59 +00:00
Nick Clifton 6c93a8fabc Fix definitions of wddata[bwl]. 2001-11-12 16:36:06 +00:00
Nick Clifton 80febfb656 Add wdebug instruction 2001-06-22 08:21:14 +00:00
Nick Clifton 98b3248268 correct some 68k/ColdFire problems 2001-06-06 14:28:00 +00:00
Nick Clifton 060d22b0d0 Fix typos in ChangeLogs; fix dates in copyright notices 2001-03-13 22:58:38 +00:00
Nick Clifton 80a523c2e1 new defines for Coldfire V4. 2001-02-28 23:47:10 +00:00
Alan Modra 0d8dfecfe9 More portability patches. Include sysdep.h everywhere. 2000-04-14 04:16:58 +00:00
Ian Lance Taylor 461d5ddde0 1999-05-28 Linus Nordberg <linus.nordberg@canit.se>
* m68k-opc.c: Rename MACL/MSACL to MAC/MSAC.  Add MACM/MSACM.  Add
	MOVE MACSR,CCR.
	* m68k-dis.c (fetch_arg): Add places `n', `o'.
	* m68k-opc.c: Add MSAC, MACL, MOVE to/from ACC, MACSR, MASK.
	Add mcf5206e to appropriate instructions.
	Add alias for MAC, MSAC.
	* m68k-dis.c (print_insn_arg): Add formats `E', `G', `H' and place
	`N'.
	* m68k-opc.c (m68k_opcodes): Add divsw, divsl, divuw, divul, macl,
	macw, remsl, remul for mcf5307.  Change mcf5200 --> mcf.
	* m68k-dis.c: Add format `u' and places `h', `m', `M'.
1999-05-27 22:33:14 +00:00
Richard Henderson 252b5132c7 19990502 sourceware import 1999-05-03 07:29:11 +00:00