* ppu problems for m68k fixed (at least in cross compiling)

* one last memory leak for sysamiga fixed
  * the amiga RTL compiles now completely !!
This commit is contained in:
pierre 1998-10-14 10:45:05 +00:00
parent d55bb22c58
commit dac2986b7f
4 changed files with 34 additions and 7 deletions

View File

@ -740,6 +740,7 @@ implementation
+ if porddef(p^.left^.resulttype)^.typ=u32bit then + if porddef(p^.left^.resulttype)^.typ=u32bit then
+ exprasmlist^.concat(new(pai386,op_ref(A_FILD,S_IQ,r))) + exprasmlist^.concat(new(pai386,op_ref(A_FILD,S_IQ,r)))
+ else} + else}
clear_location(p^.location);
p^.location.loc := LOC_FPU; p^.location.loc := LOC_FPU;
{ get floating point register. } { get floating point register. }
if (cs_fp_emulation in aktmoduleswitches) then if (cs_fp_emulation in aktmoduleswitches) then
@ -812,6 +813,7 @@ implementation
case p^.left^.location.loc of case p^.left^.location.loc of
LOC_FPU : begin LOC_FPU : begin
{ reload } { reload }
clear_location(p^.location);
p^.location.loc := LOC_FPU; p^.location.loc := LOC_FPU;
p^.location.fpureg := p^.left^.location.fpureg; p^.location.fpureg := p^.left^.location.fpureg;
end; end;
@ -1394,7 +1396,12 @@ implementation
end. end.
{ {
$Log$ $Log$
Revision 1.7 1998-10-13 16:50:06 pierre Revision 1.8 1998-10-14 10:45:05 pierre
* ppu problems for m68k fixed (at least in cross compiling)
* one last memory leak for sysamiga fixed
* the amiga RTL compiles now completely !!
Revision 1.7 1998/10/13 16:50:06 pierre
* undid some changes of Peter that made the compiler wrong * undid some changes of Peter that made the compiler wrong
for m68k (I had to reinsert some ifdefs) for m68k (I had to reinsert some ifdefs)
* removed several memory leaks under m68k * removed several memory leaks under m68k

View File

@ -631,6 +631,7 @@ unit files;
{ Open the ppufile } { Open the ppufile }
Message1(unit_u_ppu_name,ppufilename^); Message1(unit_u_ppu_name,ppufilename^);
ppufile:=new(pppufile,init(ppufilename^)); ppufile:=new(pppufile,init(ppufilename^));
ppufile^.change_endian:=source_os.endian<>target_os.endian;
if not ppufile^.open then if not ppufile^.open then
begin begin
dispose(ppufile,done); dispose(ppufile,done);
@ -1007,7 +1008,12 @@ unit files;
end. end.
{ {
$Log$ $Log$
Revision 1.59 1998-10-13 14:01:07 peter Revision 1.60 1998-10-14 10:45:07 pierre
* ppu problems for m68k fixed (at least in cross compiling)
* one last memory leak for sysamiga fixed
* the amiga RTL compiles now completely !!
Revision 1.59 1998/10/13 14:01:07 peter
* fixed -al * fixed -al
Revision 1.58 1998/10/12 11:59:00 peter Revision 1.58 1998/10/12 11:59:00 peter

View File

@ -544,7 +544,9 @@ begin
end; end;
readdata(l,4); readdata(l,4);
if change_endian then if change_endian then
getlongint:=swap(l shr 16) or (longint(swap(l and $ffff)) shl 16) { someone added swap(l : longint) in system unit
this broke the following code !! }
getlongint:=swap(word(l shr 16)) or (longint(swap(word(l and $ffff))) shl 16)
else else
getlongint:=l; getlongint:=l;
inc(entryidx,4); inc(entryidx,4);
@ -752,7 +754,9 @@ end;
procedure tppufile.putlongint(l:longint); procedure tppufile.putlongint(l:longint);
begin begin
if change_endian then if change_endian then
l:=swap(l shr 16) or (longint(swap(l and $ffff)) shl 16); { someone added swap(l : longint) in system unit
this broke the following code !! }
l:=swap(word(l shr 16)) or (longint(swap(word(l and $ffff))) shl 16);
putdata(l,4); putdata(l,4);
end; end;
@ -772,7 +776,12 @@ end;
end. end.
{ {
$Log$ $Log$
Revision 1.16 1998-09-24 23:49:14 peter Revision 1.17 1998-10-14 10:45:08 pierre
* ppu problems for m68k fixed (at least in cross compiling)
* one last memory leak for sysamiga fixed
* the amiga RTL compiles now completely !!
Revision 1.16 1998/09/24 23:49:14 peter
+ aktmodeswitches + aktmodeswitches
Revision 1.15 1998/09/23 15:39:10 pierre Revision 1.15 1998/09/23 15:39:10 pierre

View File

@ -203,10 +203,10 @@
{ open ppufile } { open ppufile }
current_ppu:=new(pppufile,init(s)); current_ppu:=new(pppufile,init(s));
current_ppu^.change_endian:=source_os.endian<>target_os.endian;
if not current_ppu^.create then if not current_ppu^.create then
Message(unit_f_ppu_cannot_write); Message(unit_f_ppu_cannot_write);
current_ppu^.change_endian:=source_os.endian<>target_os.endian;
{ write symbols and definitions } { write symbols and definitions }
unittable^.writeasunit; unittable^.writeasunit;
@ -443,7 +443,12 @@
{ {
$Log$ $Log$
Revision 1.20 1998-10-13 13:10:30 peter Revision 1.21 1998-10-14 10:45:10 pierre
* ppu problems for m68k fixed (at least in cross compiling)
* one last memory leak for sysamiga fixed
* the amiga RTL compiles now completely !!
Revision 1.20 1998/10/13 13:10:30 peter
* new style for m68k/i386 infos and enums * new style for m68k/i386 infos and enums
Revision 1.19 1998/10/08 23:29:07 peter Revision 1.19 1998/10/08 23:29:07 peter