* fixed sparc compilation after addr_lo/hi changes

git-svn-id: trunk@8107 -
This commit is contained in:
Jonas Maebe 2007-07-20 12:30:16 +00:00
parent 4c5d8a9c79
commit 20dbda751a
6 changed files with 20 additions and 20 deletions

View File

@ -65,7 +65,7 @@ interface
addr_no, addr_no,
addr_full, addr_full,
addr_pic addr_pic
{$IF defined(POWERPC) or defined(POWERPC64)} {$IF defined(POWERPC) or defined(POWERPC64) or defined(SPARC)}
, ,
addr_low, // bits 48-63 addr_low, // bits 48-63
addr_high, // bits 32-47 addr_high, // bits 32-47

View File

@ -185,7 +185,7 @@ implementation
begin begin
inherited create(op); inherited create(op);
{ only allowed to load the address } { only allowed to load the address }
if not(_op2.refaddr in [addr_lo,addr_hi]) then if not(_op2.refaddr in [addr_low,addr_high]) then
internalerror(200305311); internalerror(200305311);
ops:=3; ops:=3;
loadreg(0,_op1); loadreg(0,_op1);

View File

@ -187,17 +187,17 @@ implementation
reference_reset(tmpref); reference_reset(tmpref);
tmpref.symbol:=ref.symbol; tmpref.symbol:=ref.symbol;
tmpref.offset:=ref.offset; tmpref.offset:=ref.offset;
tmpref.refaddr:=addr_hi; tmpref.refaddr:=addr_high;
list.concat(taicpu.op_ref_reg(A_SETHI,tmpref,tmpreg)); list.concat(taicpu.op_ref_reg(A_SETHI,tmpref,tmpreg));
if (ref.offset=0) and (ref.index=NR_NO) and if (ref.offset=0) and (ref.index=NR_NO) and
(ref.base=NR_NO) then (ref.base=NR_NO) then
begin begin
ref.refaddr:=addr_lo; ref.refaddr:=addr_low;
end end
else else
begin begin
{ Load the low part is left } { Load the low part is left }
tmpref.refaddr:=addr_lo; tmpref.refaddr:=addr_low;
list.concat(taicpu.op_reg_ref_reg(A_OR,tmpreg,tmpref,tmpreg)); list.concat(taicpu.op_reg_ref_reg(A_OR,tmpreg,tmpref,tmpreg));
ref.offset:=0; ref.offset:=0;
{ symbol is loaded } { symbol is loaded }
@ -636,10 +636,10 @@ implementation
reference_reset(tmpref); reference_reset(tmpref);
tmpref.symbol := href.symbol; tmpref.symbol := href.symbol;
tmpref.offset := href.offset; tmpref.offset := href.offset;
tmpref.refaddr := addr_hi; tmpref.refaddr := addr_high;
list.concat(taicpu.op_ref_reg(A_SETHI,tmpref,hreg)); list.concat(taicpu.op_ref_reg(A_SETHI,tmpref,hreg));
{ Only the low part is left } { Only the low part is left }
tmpref.refaddr:=addr_lo; tmpref.refaddr:=addr_low;
list.concat(taicpu.op_reg_ref_reg(A_OR,hreg,tmpref,hreg)); list.concat(taicpu.op_reg_ref_reg(A_OR,hreg,tmpref,hreg));
if href.base<>NR_NO then if href.base<>NR_NO then
begin begin

View File

@ -70,9 +70,9 @@ implementation
else if offset<0 then else if offset<0 then
GetReferenceString:=GetReferenceString+ToStr(offset); GetReferenceString:=GetReferenceString+ToStr(offset);
case refaddr of case refaddr of
addr_hi: addr_high:
GetReferenceString:='%hi('+GetReferenceString+')'; GetReferenceString:='%hi('+GetReferenceString+')';
addr_lo: addr_low:
GetReferenceString:='%lo('+GetReferenceString+')'; GetReferenceString:='%lo('+GetReferenceString+')';
end; end;
end end
@ -80,7 +80,7 @@ implementation
begin begin
{$ifdef extdebug} {$ifdef extdebug}
if assigned(symbol) and if assigned(symbol) and
not(refaddr in [addr_pic,addr_lo]) then not(refaddr in [addr_pic,addr_low]) then
internalerror(2003052601); internalerror(2003052601);
{$endif extdebug} {$endif extdebug}
if base<>NR_NO then if base<>NR_NO then
@ -99,7 +99,7 @@ implementation
} }
if assigned(symbol) then if assigned(symbol) then
begin begin
if refaddr=addr_lo then if refaddr=addr_low then
GetReferenceString:='%lo('+symbol.name+')+'+GetReferenceString GetReferenceString:='%lo('+symbol.name+')+'+GetReferenceString
else else
GetReferenceString:=symbol.name+'+'+GetReferenceString; GetReferenceString:=symbol.name+'+'+GetReferenceString;
@ -127,7 +127,7 @@ implementation
top_const: top_const:
getopstr:=tostr(longint(val)); getopstr:=tostr(longint(val));
top_ref: top_ref:
if (oper.ref^.refaddr in [addr_no,addr_pic]) or ((oper.ref^.refaddr=addr_lo) and ((oper.ref^.base<>NR_NO) or if (oper.ref^.refaddr in [addr_no,addr_pic]) or ((oper.ref^.refaddr=addr_low) and ((oper.ref^.base<>NR_NO) or
(oper.ref^.index<>NR_NO))) then (oper.ref^.index<>NR_NO))) then
getopstr:='['+getreferencestring(ref^)+']' getopstr:='['+getreferencestring(ref^)+']'
else else

View File

@ -105,9 +105,9 @@ Interface
if actasmtoken=AS_ID then if actasmtoken=AS_ID then
begin begin
if upper(actasmpattern)='LO' then if upper(actasmpattern)='LO' then
oper.opr.ref.refaddr:=addr_lo oper.opr.ref.refaddr:=addr_low
else if upper(actasmpattern)='HI' then else if upper(actasmpattern)='HI' then
oper.opr.ref.refaddr:=addr_hi oper.opr.ref.refaddr:=addr_high
else else
Message(asmr_e_invalid_reference_syntax); Message(asmr_e_invalid_reference_syntax);
Consume(AS_ID); Consume(AS_ID);
@ -352,9 +352,9 @@ Interface
memory location) } memory location) }
oper.InitRef; oper.InitRef;
if actasmtoken=AS_LO then if actasmtoken=AS_LO then
oper.opr.ref.refaddr:=addr_lo oper.opr.ref.refaddr:=addr_low
else else
oper.opr.ref.refaddr:=addr_hi; oper.opr.ref.refaddr:=addr_high;
Consume(actasmtoken); Consume(actasmtoken);
Consume(AS_LPAREN); Consume(AS_LPAREN);
BuildConstSymbolExpression(false, true,false,l,tempstr,tempsymtyp); BuildConstSymbolExpression(false, true,false,l,tempstr,tempsymtyp);

View File

@ -104,10 +104,10 @@ implementation
reference_reset(tmpref); reference_reset(tmpref);
tmpref.offset:=spilltemp.offset; tmpref.offset:=spilltemp.offset;
tmpref.refaddr:=addr_hi; tmpref.refaddr:=addr_high;
helplist.concat(taicpu.op_ref_reg(A_SETHI,tmpref,hreg)); helplist.concat(taicpu.op_ref_reg(A_SETHI,tmpref,hreg));
tmpref.refaddr:=addr_lo; tmpref.refaddr:=addr_low;
helplist.concat(taicpu.op_reg_ref_reg(A_OR,hreg,tmpref,hreg)); helplist.concat(taicpu.op_reg_ref_reg(A_OR,hreg,tmpref,hreg));
reference_reset_base(tmpref,hreg,0); reference_reset_base(tmpref,hreg,0);
@ -140,10 +140,10 @@ implementation
reference_reset(tmpref); reference_reset(tmpref);
tmpref.offset:=spilltemp.offset; tmpref.offset:=spilltemp.offset;
tmpref.refaddr:=addr_hi; tmpref.refaddr:=addr_high;
helplist.concat(taicpu.op_ref_reg(A_SETHI,tmpref,hreg)); helplist.concat(taicpu.op_ref_reg(A_SETHI,tmpref,hreg));
tmpref.refaddr:=addr_lo; tmpref.refaddr:=addr_low;
helplist.concat(taicpu.op_reg_ref_reg(A_OR,hreg,tmpref,hreg)); helplist.concat(taicpu.op_reg_ref_reg(A_OR,hreg,tmpref,hreg));
reference_reset_base(tmpref,hreg,0); reference_reset_base(tmpref,hreg,0);