mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-21 00:19:44 +01:00
* fixed a lot of int64 const bugs on 16/8-bit CPUs by changing typecasts from aint to tcgint
git-svn-id: branches/i8086@24019 -
This commit is contained in:
parent
f1a974f3c9
commit
5cda24a0b6
@ -219,10 +219,10 @@ unit cg64f32;
|
||||
begin
|
||||
if target_info.endian = endian_big then
|
||||
swap64(value);
|
||||
cg.a_load_const_ref(list,OS_32,aint(lo(value)),ref);
|
||||
cg.a_load_const_ref(list,OS_32,tcgint(lo(value)),ref);
|
||||
tmpref := ref;
|
||||
inc(tmpref.offset,4);
|
||||
cg.a_load_const_ref(list,OS_32,aint(hi(value)),tmpref);
|
||||
cg.a_load_const_ref(list,OS_32,tcgint(hi(value)),tmpref);
|
||||
end;
|
||||
|
||||
|
||||
@ -271,8 +271,8 @@ unit cg64f32;
|
||||
procedure tcg64f32.a_load64_const_reg(list : TAsmList;value : int64;reg : tregister64);
|
||||
|
||||
begin
|
||||
cg.a_load_const_reg(list,OS_32,aint(lo(value)),reg.reglo);
|
||||
cg.a_load_const_reg(list,OS_32,aint(hi(value)),reg.reghi);
|
||||
cg.a_load_const_reg(list,OS_32,tcgint(lo(value)),reg.reglo);
|
||||
cg.a_load_const_reg(list,OS_32,tcgint(hi(value)),reg.reghi);
|
||||
end;
|
||||
|
||||
|
||||
@ -359,9 +359,9 @@ unit cg64f32;
|
||||
swap64(a);
|
||||
tmpsref := sref;
|
||||
tmpsref.bitlen := 32;
|
||||
hlcg.a_load_const_subsetref(list,u32inttype,aint(lo(a)),tmpsref);
|
||||
hlcg.a_load_const_subsetref(list,u32inttype,tcgint(lo(a)),tmpsref);
|
||||
inc(tmpsref.ref.offset,4);
|
||||
hlcg.a_load_const_subsetref(list,u32inttype,aint(hi(a)),tmpsref);
|
||||
hlcg.a_load_const_subsetref(list,u32inttype,tcgint(hi(a)),tmpsref);
|
||||
end;
|
||||
|
||||
|
||||
@ -537,7 +537,7 @@ unit cg64f32;
|
||||
LOC_CREGISTER :
|
||||
cg.a_load_reg_reg(list,OS_32,OS_32,l.register64.reglo,reg);
|
||||
LOC_CONSTANT :
|
||||
cg.a_load_const_reg(list,OS_32,aint(lo(l.value64)),reg);
|
||||
cg.a_load_const_reg(list,OS_32,tcgint(lo(l.value64)),reg);
|
||||
else
|
||||
internalerror(200203244);
|
||||
end;
|
||||
@ -554,7 +554,7 @@ unit cg64f32;
|
||||
LOC_CREGISTER :
|
||||
cg.a_load_reg_reg(list,OS_32,OS_32,l.register64.reghi,reg);
|
||||
LOC_CONSTANT :
|
||||
cg.a_load_const_reg(list,OS_32,aint(hi(l.value64)),reg);
|
||||
cg.a_load_const_reg(list,OS_32,tcgint(hi(l.value64)),reg);
|
||||
else
|
||||
internalerror(200203244);
|
||||
end;
|
||||
@ -675,15 +675,15 @@ unit cg64f32;
|
||||
begin
|
||||
{ Keep this order of first lo before hi to have
|
||||
the correct push order for m68k }
|
||||
cg.a_load_const_cgpara(list,OS_32,aint(lo(value)),tmploclo);
|
||||
cg.a_load_const_cgpara(list,OS_32,aint(hi(value)),tmplochi);
|
||||
cg.a_load_const_cgpara(list,OS_32,tcgint(lo(value)),tmploclo);
|
||||
cg.a_load_const_cgpara(list,OS_32,tcgint(hi(value)),tmplochi);
|
||||
end
|
||||
else
|
||||
begin
|
||||
{ Keep this order of first hi before lo to have
|
||||
the correct push order for i386 }
|
||||
cg.a_load_const_cgpara(list,OS_32,aint(hi(value)),tmplochi);
|
||||
cg.a_load_const_cgpara(list,OS_32,aint(lo(value)),tmploclo);
|
||||
cg.a_load_const_cgpara(list,OS_32,tcgint(hi(value)),tmplochi);
|
||||
cg.a_load_const_cgpara(list,OS_32,tcgint(lo(value)),tmploclo);
|
||||
end;
|
||||
tmploclo.done;
|
||||
tmplochi.done;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user