Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
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).
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
* m68k-opc.c (m68k_opcodes): Allow the STLDSR instruction on the
Coldfire ISA A+.
|
|
* m68k-opc.c (m68k_opcodes): Correct mask for macl and msacl.
|
|
|
|
* 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.
|
|
* m68k-opc.c (m68k_opcodes): Fix coldfire msac.w instructions with parallel loads.
|
|
* 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.
|
|
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
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.
|
|
* m68k-opc.c (m68k_opcodes): Add missing ColdFire fdsqrtd entry.
|
|
* m68k-opc.c: Formatting fixes.
|
|
|
|
|
|
|
|
variants.
|
|
* m68k-opc.c (m68k_opcodes): Reorder "fmovel".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* 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'.
|
|
|