https://sourceware.org/bugzilla/show_bug.cgi?id=25848
Bug ID: 25848 Summary: cmpi to local label produces wrong code on 68000 Product: binutils Version: unspecified Status: UNCONFIRMED Severity: normal Priority: P2 Component: gas Assignee: unassigned at sourceware dot org Reporter: vincent.riviere at freesbee dot fr Target Milestone: --- Target: m68k-elf Tested with gas 2.34.50.20200418 freshly compiled fom Git. Basically, cmpi to local label is optimized by gas to PC-relative label. But this addressing mode is actually only supported on 68020+. $ cat bug.s lab: cmpi.w #1,lab $ m68k-elf-as -m68000 bug.s -o bug.o && m68k-elf-objdump -d bug.o bug.o: file format elf32-m68k Disassembly of section .text: 00000000 <lab>: 0: 0c7a 0001 fffc cmpiw #1,%pc@(0 <lab>) We have specifically asked for 68000 compilation. We can see that the reference to the absolute "lab" label has been silently replaced by a PC-relative label. But on plain 68000, that addressing mode is unsupported. See M68000PRM.pdf, instruction CMPI "Compare Immediate". gas should not blindly convert absolute to PC-relative addressing with cmpi when compiling for 68000. -- You are receiving this mail because: You are on the CC list for the bug.