Revert 22814. While this revision might fix compiler linking for Coldfire it breaks running any Coldfire up during OpenStdIO... I prefer running apps instead of a linking compiler.

Seems that I need to think this "fixref" stuff for symbols through a bit more...

git-svn-id: trunk@22826 -
This commit is contained in:
svenbarth 2012-10-23 05:14:17 +00:00
parent eeef57a2a1
commit 65a4d8baa2

View File

@ -416,7 +416,7 @@ unit cgcpu;
function tcg68k.fixref(list: TAsmList; var ref: treference): boolean;
var
hreg,idxreg,hreg2 : tregister;
hreg,idxreg : tregister;
href : treference;
instr : taicpu;
begin
@ -518,24 +518,25 @@ unit cgcpu;
begin
if (ref.base<>NR_NO) then
begin
{ base + symbol is not good }
if assigned(ref.symbol) then
if assigned(ref.symbol) and (ref.index=NR_NO) then
begin
hreg:=cg.getaddressregister(list);
reference_reset_symbol(href,ref.symbol,0,ref.alignment);
list.concat(taicpu.op_ref_reg(A_LEA,S_L,href,hreg));
if ref.index=NR_NO then
ref.index:=ref.base
else
begin
hreg2:=getaddressregister(list);
list.concat(taicpu.op_reg_reg(A_MOVE,S_L,ref.base,hreg2));
list.concat(taicpu.op_reg_reg(A_ADD,S_L,hreg,ref.index));
ref.index:=hreg2;
end;
ref.index:=ref.base;
ref.base:=hreg;
ref.symbol:=nil;
end;
if (ref.index<>NR_NO) and assigned(ref.symbol) then
begin
hreg:=getaddressregister(list);
list.concat(taicpu.op_reg_reg(A_MOVE,S_L,ref.base,hreg));
list.concat(taicpu.op_reg_reg(A_ADD,S_L,hreg,ref.index));
ref.base:=hreg;
ref.index:=NR_NO;
end;
{if (ref.index <> NR_NO) and assigned(ref.symbol) then
internalerror(2002081403);}
{ base + reg }
if ref.index <> NR_NO then
begin