Closed Awuwunya closed 3 years ago
I have actually been working on that one: see fb7feb374d and 59b7c4ee82 for example. The version that will be generated tonight will have these in.
As far as I can tell by my tests, this one is fixed. I tried all of the following:
.tmp: set ((MainLbl.sublbl)-MainLbl)
lea (MainLbl.sublbl)-MainLbl(a0),a0
lea ((MainLbl.sublbl)-MainLbl)(a0),a0
lea MainLbl.sublbl-MainLbl(a0),a0
lea .tmp(a0),a0
lea $0016(a0),a0
; somewhere else
MainLbl
dc.l 0, 0, 0, 0
.sublbl:
They all generate the correct code. I also tested a LOT of variants of 68k addressing modes, including later models. If anyone finds a broken addressing mode, please file a new issue.
AS has a big issue when it comes to expression parsing as a part of addressing modes such as xxx(pc/An, Xn) and I believe xxx(pc/Xn) as well, where expressions confuse the assembler. Here are a few examples of me recreating issues (DO NOTE, that using a temporary variable makes these codes work!)