* morphos now takes any pointer var. as libbase

* alignment for sparc fixed
  * int -> double conversion on sparc fixed
This commit is contained in:
florian 2004-08-22 20:11:38 +00:00
parent 241587174e
commit 4b3ed28d07
5 changed files with 28 additions and 12 deletions

View File

@ -927,8 +927,8 @@ parser_e_paraloc_all_paras=03198_E_Each argument must have an explicit location
% must have one. % must have one.
parser_e_illegal_explicit_paraloc=03199_E_Unknown argument location parser_e_illegal_explicit_paraloc=03199_E_Unknown argument location
% The location specified for an argument isn't recognized by the compiler % The location specified for an argument isn't recognized by the compiler
parser_e_32bitint_or_pointer_variable_expected=03200_E_32 Bit Integer or Pointer Variable expected parser_e_32bitint_or_pointer_variable_expected=03200_E_32 Bit-Integer or pointer variable expected
% The libbase for MorphOS/AmigaOS can be give only as \var{longint}, \var{dword} or \var{pointer}. % The libbase for MorphOS/AmigaOS can be give only as \var{longint}, \var{dword} or any pointer variable.
parser_e_goto_outside_proc=03201_E_Goto statements aren't allowed between different procedures parser_e_goto_outside_proc=03201_E_Goto statements aren't allowed between different procedures
% It isn't allowed to use the \var{goto} statements referencing labels outside the % It isn't allowed to use the \var{goto} statements referencing labels outside the
% current procedure. The following example shows the problem: % current procedure. The following example shows the problem:

View File

@ -291,7 +291,7 @@ const msgtxt : array[0..000153,1..240] of char=(
'03197_E_Each argument must have',' it'#039's own location'#000+ '03197_E_Each argument must have',' it'#039's own location'#000+
'03198_E_Each argument must have an explicit location'#000+ '03198_E_Each argument must have an explicit location'#000+
'03199_E_Unknown argument location'#000+ '03199_E_Unknown argument location'#000+
'03200_E_32 Bit Integer or Pointer Variable expected'#000+ '03200_E_32 Bit-Integer or pointer variable expected'#000+
'03201_E_Goto statements aren'#039't allowed between different procedure'+ '03201_E_Goto statements aren'#039't allowed between different procedure'+
's'#000+ 's'#000+
'03202_E_Expres','sion too complicated - FPU stack overflow'#000+ '03202_E_Expres','sion too complicated - FPU stack overflow'#000+

View File

@ -1174,8 +1174,9 @@ begin
if consume_sym(sym,symtable) then if consume_sym(sym,symtable) then
begin begin
if (sym.typ=varsym) and if (sym.typ=varsym) and
(is_voidpointer(tvarsym(sym).vartype.def) or ((tvarsym(sym).vartype.def.deftype=pointerdef) or
is_32bitint(tvarsym(sym).vartype.def)) then is_32bitint(tvarsym(sym).vartype.def)
) then
begin begin
tprocdef(pd).libsym:=sym; tprocdef(pd).libsym:=sym;
pd.concatpara(nil,tvarsym(sym).vartype,tvarsym(sym),nil,true); pd.concatpara(nil,tvarsym(sym).vartype,tvarsym(sym),nil,true);
@ -2274,7 +2275,12 @@ const
end. end.
{ {
$Log$ $Log$
Revision 1.187 2004-08-22 11:24:27 peter Revision 1.188 2004-08-22 20:11:38 florian
* morphos now takes any pointer var. as libbase
* alignment for sparc fixed
* int -> double conversion on sparc fixed
Revision 1.187 2004/08/22 11:24:27 peter
* don't insert result variables for constructor/destructors * don't insert result variables for constructor/destructors
Revision 1.186 2004/08/13 17:53:37 jonas Revision 1.186 2004/08/13 17:53:37 jonas

View File

@ -45,9 +45,9 @@ type
const const
{$ifdef ansistring_bits} {$ifdef ansistring_bits}
CurrentPPUVersion=43; CurrentPPUVersion=44;
{$else} {$else}
CurrentPPUVersion=43; CurrentPPUVersion=44;
{$endif} {$endif}
{ buffer sizes } { buffer sizes }
@ -153,7 +153,7 @@ type
tppuerror=(ppuentrytoobig,ppuentryerror); tppuerror=(ppuentrytoobig,ppuentryerror);
tppuheader=packed record { 36 bytes } tppuheader=record
id : array[1..3] of char; { = 'PPU' } id : array[1..3] of char; { = 'PPU' }
ver : array[1..3] of char; ver : array[1..3] of char;
compiler : word; compiler : word;
@ -1053,7 +1053,12 @@ end;
end. end.
{ {
$Log$ $Log$
Revision 1.54 2004-08-17 16:29:21 jonas Revision 1.55 2004-08-22 20:11:38 florian
* morphos now takes any pointer var. as libbase
* alignment for sparc fixed
* int -> double conversion on sparc fixed
Revision 1.54 2004/08/17 16:29:21 jonas
+ padalgingment field for recordsymtables (saved by recorddefs) + padalgingment field for recordsymtables (saved by recorddefs)
+ support for Macintosh PowerPC alignment (if the first field of a record + support for Macintosh PowerPC alignment (if the first field of a record
or union has an alignment > 4, then the record or union size must be or union has an alignment > 4, then the record or union size must be

View File

@ -112,7 +112,7 @@ implementation
location_force_mem(exprasmlist,left.location); location_force_mem(exprasmlist,left.location);
location.register:=cg.getfpuregister(exprasmlist,location.size); location.register:=cg.getfpuregister(exprasmlist,location.size);
{ Load memory in fpu register } { Load memory in fpu register }
cg.a_loadfpu_ref_reg(exprasmlist,location.size,left.location.reference,location.register); cg.a_loadfpu_ref_reg(exprasmlist,OS_F32,left.location.reference,location.register);
tg.ungetiftemp(exprasmlist,left.location.reference); tg.ungetiftemp(exprasmlist,left.location.reference);
{ Convert value in fpu register from integer to float } { Convert value in fpu register from integer to float }
@ -235,7 +235,12 @@ begin
end. end.
{ {
$Log$ $Log$
Revision 1.27 2004-08-01 19:01:10 florian Revision 1.28 2004-08-22 20:11:38 florian
* morphos now takes any pointer var. as libbase
* alignment for sparc fixed
* int -> double conversion on sparc fixed
Revision 1.27 2004/08/01 19:01:10 florian
* float to float and int to float fixed * float to float and int to float fixed
Revision 1.26 2004/06/20 08:55:32 florian Revision 1.26 2004/06/20 08:55:32 florian