[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/12269] New: unknown-z80-coff: Incorrect assembly of indexed reg
From: |
chris.smith23 at googlemail dot com |
Subject: |
[Bug gas/12269] New: unknown-z80-coff: Incorrect assembly of indexed register offsets from equ declarations |
Date: |
Fri, 26 Nov 2010 12:42:09 +0000 |
http://sourceware.org/bugzilla/show_bug.cgi?id=12269
Summary: unknown-z80-coff: Incorrect assembly of indexed
register offsets from equ declarations
Product: binutils
Version: unspecified
Status: NEW
Severity: critical
Priority: P2
Component: gas
AssignedTo: address@hidden
ReportedBy: address@hidden
For the target unknown-z80-coff, Indexed register offsets are incorrectly
assembled as zero if they reference an equ declarations that has yet to be
made. Providing the equ declaration first in the file produces the correct
offset.
This produces incorrect executables from correct Z80 source.
Other uses of the equ value appear to assemble correctly (LD A, offsetAtEnd for
example below).
Example code and dump illustrating the problem:
-------------------------------------------------------------------------
begin:
offsetAtStart: equ 32
LD A, offsetAtStart
LD A, (IX + offsetAtStart)
LD A, offsetAtEnd
LD A, (IX + offsetAtEnd)
RET
offsetAtEnd: equ 64
END
This produces the following (note the 00 offset at line 10 - should be 0x40 as
in line 9)
1 begin:
2
3 offsetAtStart: equ 32
5
6 0000 3E20 LD A, offsetAtStart
7 0002 DD7E 20 LD A, (IX + offsetAtStart)
8
9 0005 3E40 LD A, offsetAtEnd
10 0007 DD7E 00 LD A, (IX + offsetAtEnd)
11
12 000a C9 RET
13
14 offsetAtEnd: equ 64
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
- [Bug gas/12269] New: unknown-z80-coff: Incorrect assembly of indexed register offsets from equ declarations,
chris.smith23 at googlemail dot com <=