فهرست منبع

* morphos now takes any pointer var. as libbase
* alignment for sparc fixed
* int -> double conversion on sparc fixed

florian 21 سال پیش
والد
کامیت
4b3ed28d07
5فایلهای تغییر یافته به همراه28 افزوده شده و 12 حذف شده
  1. 2 2
      compiler/msg/errore.msg
  2. 1 1
      compiler/msgtxt.inc
  3. 9 3
      compiler/pdecsub.pas
  4. 9 4
      compiler/ppu.pas
  5. 7 2
      compiler/sparc/ncpucnv.pas

+ 2 - 2
compiler/msg/errore.msg

@@ -927,8 +927,8 @@ parser_e_paraloc_all_paras=03198_E_Each argument must have an explicit location
 % must have one.
 parser_e_illegal_explicit_paraloc=03199_E_Unknown argument location
 % 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
-% The libbase for MorphOS/AmigaOS can be give only as \var{longint}, \var{dword} or \var{pointer}.
+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 any pointer variable.
 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
 % current procedure. The following example shows the problem:

+ 1 - 1
compiler/msgtxt.inc

@@ -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+
   '03198_E_Each argument must have an explicit 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'+
   's'#000+
   '03202_E_Expres','sion too complicated - FPU stack overflow'#000+

+ 9 - 3
compiler/pdecsub.pas

@@ -1174,8 +1174,9 @@ begin
       if consume_sym(sym,symtable) then
         begin
           if (sym.typ=varsym) and
-            (is_voidpointer(tvarsym(sym).vartype.def) or
-             is_32bitint(tvarsym(sym).vartype.def)) then
+            ((tvarsym(sym).vartype.def.deftype=pointerdef) or
+              is_32bitint(tvarsym(sym).vartype.def)
+            ) then
             begin
               tprocdef(pd).libsym:=sym;
               pd.concatpara(nil,tvarsym(sym).vartype,tvarsym(sym),nil,true);
@@ -2274,7 +2275,12 @@ const
 end.
 {
   $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
 
   Revision 1.186  2004/08/13 17:53:37  jonas

+ 9 - 4
compiler/ppu.pas

@@ -45,9 +45,9 @@ type
 
 const
 {$ifdef ansistring_bits}
-  CurrentPPUVersion=43;
+  CurrentPPUVersion=44;
 {$else}
-  CurrentPPUVersion=43;
+  CurrentPPUVersion=44;
 {$endif}
 
 { buffer sizes }
@@ -153,7 +153,7 @@ type
 
   tppuerror=(ppuentrytoobig,ppuentryerror);
 
-  tppuheader=packed record { 36 bytes }
+  tppuheader=record
     id       : array[1..3] of char; { = 'PPU' }
     ver      : array[1..3] of char;
     compiler : word;
@@ -1053,7 +1053,12 @@ end;
 end.
 {
   $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)
     + 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

+ 7 - 2
compiler/sparc/ncpucnv.pas

@@ -112,7 +112,7 @@ implementation
         location_force_mem(exprasmlist,left.location);
         location.register:=cg.getfpuregister(exprasmlist,location.size);
         { 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);
 
         { Convert value in fpu register from integer to float }
@@ -235,7 +235,12 @@ begin
 end.
 {
   $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
 
   Revision 1.26  2004/06/20 08:55:32  florian