mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 21:09:27 +02:00
+ handle IX and IY-based references in tcgz80.normalize_ref
git-svn-id: branches/z80@44987 -
This commit is contained in:
parent
fe8b50fed3
commit
9ad3de966f
@ -1262,7 +1262,17 @@ unit cgcpu;
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
list.concat(taicpu.op_reg_const(A_LD,NR_HL,ref.offset));
|
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
|
begin
|
||||||
getcpuregister(list,NR_A);
|
getcpuregister(list,NR_A);
|
||||||
emit_mov(list,NR_A,NR_L);
|
emit_mov(list,NR_A,NR_L);
|
||||||
|
Loading…
Reference in New Issue
Block a user