From 3338603bb885dc1db170f102c605323a7f1c0939 Mon Sep 17 00:00:00 2001 From: nickysn Date: Sun, 26 Apr 2020 20:58:52 +0000 Subject: [PATCH] * generate better code in tcgz80.a_loadaddr_ref_reg git-svn-id: branches/z80@45125 - --- compiler/z80/cgcpu.pas | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/compiler/z80/cgcpu.pas b/compiler/z80/cgcpu.pas index 12d1f34f36..70b4781a3e 100644 --- a/compiler/z80/cgcpu.pas +++ b/compiler/z80/cgcpu.pas @@ -2287,14 +2287,16 @@ unit cgcpu; if (ref.index<>NR_NO) then a_op_reg_reg(list,OP_ADD,OS_16,ref.index,r); end - else + else if ref.base<>NR_NO then begin - a_load_const_reg(list,OS_16,ref.offset,r); - if (ref.base<>NR_NO) then - a_op_reg_reg(list,OP_ADD,OS_16,ref.base,r); + a_op_const_reg_reg(list,OP_ADD,OS_16,ref.offset,ref.base,r); if (ref.index<>NR_NO) then a_op_reg_reg(list,OP_ADD,OS_16,ref.index,r); - end; + end + else if ref.index<>NR_NO then + a_op_const_reg_reg(list,OP_ADD,OS_16,ref.offset,ref.index,r) + else + a_load_const_reg(list,OS_16,ref.offset,r); end;