+ handle IX and IY-based references in tcgz80.normalize_ref

git-svn-id: branches/z80@44987 -
This commit is contained in:
nickysn 2020-04-22 02:27:07 +00:00
parent fe8b50fed3
commit 9ad3de966f

View File

@ -1262,7 +1262,17 @@ unit cgcpu;
end
else
list.concat(taicpu.op_reg_const(A_LD,NR_HL,ref.offset));
if ref.base<>NR_NO then
if (ref.base=NR_IX) or (ref.base=NR_IY) then
begin
getcpuregister(list,NR_D);
getcpuregister(list,NR_E);
list.concat(taicpu.op_reg(A_PUSH,ref.base));
list.concat(taicpu.op_reg(A_POP,NR_DE));
list.concat(taicpu.op_reg_reg(A_ADD,NR_HL,NR_DE));
ungetcpuregister(list,NR_E);
ungetcpuregister(list,NR_D);
end
else if ref.base<>NR_NO then
begin
getcpuregister(list,NR_A);
emit_mov(list,NR_A,NR_L);