* handle pc relative offsets in ldf/stf correctly

git-svn-id: trunk@6115 -
This commit is contained in:
florian 2007-01-21 22:55:12 +00:00
parent bb0bd621d4
commit c16c124562
2 changed files with 9 additions and 3 deletions

View File

@ -683,6 +683,12 @@ unit cgcpu;
tmpref.symbol:=l; tmpref.symbol:=l;
tmpref.base:=NR_R15; tmpref.base:=NR_R15;
list.concat(taicpu.op_reg_ref(A_LDR,tmpreg,tmpref)); list.concat(taicpu.op_reg_ref(A_LDR,tmpreg,tmpref));
{ in case of LDF/STF, we got rid of the NR_R15 }
if is_pc(ref.base) then
ref.base:=NR_NO;
if is_pc(ref.index) then
ref.index:=NR_NO;
end end
else else
a_load_const_reg(list,OS_ADDR,ref.offset,tmpreg); a_load_const_reg(list,OS_ADDR,ref.offset,tmpreg);

View File

@ -134,7 +134,7 @@ unit cpubase;
const const
cgsize2fpuoppostfix : array[OS_NO..OS_F128] of toppostfix = ( cgsize2fpuoppostfix : array[OS_NO..OS_F128] of toppostfix = (
PF_E, PF_None,
PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None, PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,
PF_S,PF_D,PF_E,PF_None,PF_None); PF_S,PF_D,PF_E,PF_None,PF_None);