瀏覽代碼

* better rtti

florian 27 年之前
父節點
當前提交
811044754a
共有 7 個文件被更改,包括 36 次插入39 次删除
  1. 1 1
      rtl/i386/makefile.cpu
  2. 8 21
      rtl/i386/rttip.inc
  3. 6 3
      rtl/inc/astrings.pp
  4. 1 1
      rtl/inc/makefile.inc
  5. 10 6
      rtl/makefile
  6. 6 3
      rtl/win32/defines.pp
  7. 4 4
      rtl/win32/struct.pp

+ 1 - 1
rtl/i386/makefile.cpu

@@ -2,6 +2,6 @@
 # Here we set processor dependent include file names.
 #
 
-CPUNAMES=i386 heap math set 
+CPUNAMES=i386 heap math set rttip
 CPUINCNAMES=$(addsuffix .inc,$(CPUNAMES))
 

+ 8 - 21
rtl/i386/rttip.inc

@@ -20,8 +20,6 @@ Procedure Initialize (Data,TypeInfo : pointer);[Public,Alias : 'INITIALIZE'];ass
 
 asm
 # Save registers
-	push   %ebp
-	movl   %esp,%ebp
         push    %eax
 	push    %ebx
 	push    %ecx
@@ -93,16 +91,11 @@ asm
 	pop	%ecx
 	pop	%ebx
 	pop	%eax
-        leave
-	ret	$8
 end;
 
-Procedure Finalize (Data,TypeInfo: Pointer);[Public, Alias : 'FINALIZE']; assembler;
+Procedure Finalize (Data,TypeInfo: Pointer);[Public,Alias : 'FINALIZE']; assembler;
 
 asm
-# Save registers
-	push    %ebp
-	movl    %esp,%ebp
         push    %eax
 	push    %ebx
 	push    %ecx
@@ -176,15 +169,12 @@ asm
 	pop	%ecx
 	pop	%ebx
 	pop	%eax
-	ret	$8
 end;
 
-Procedure Addref (Data,TypeInfo : Pointer); [Public, alias : 'ADDREF'];Assembler;
+Procedure Addref (Data,TypeInfo : Pointer); [Public,alias : 'ADDREF'];Assembler;
 
 asm
 # Save registers
-	push    %ebp
-	movl    %esp,%ebp
         push    %eax
 	push    %ebx
 	push    %ecx
@@ -258,16 +248,12 @@ asm
 	pop	%ecx
 	pop	%ebx
 	pop	%eax
-	leave
-	ret	$8
 end;
 
-Procedure DecRef (Data,TypeInfo : Pointer); [Public, alias : 'DECREF'];Assembler;
+Procedure DecRef (Data,TypeInfo : Pointer); [Public,alias : 'DECREF'];Assembler;
 
 asm
 # Save registers
-	push    %ebp
-	movl    %esp,%ebp
         push    %eax
 	push    %ebx
 	push    %ecx
@@ -341,15 +327,16 @@ asm
 	pop	%ecx
 	pop	%ebx
 	pop	%eax
-	leave
-	ret	$8
 end;
 
 {$ASMMODE DEFAULT}
 
 {
   $Log$
-  Revision 1.4  1998-06-17 11:50:43  michael
+  Revision 1.5  1998-06-25 08:41:43  florian
+    * better rtti
+
+  Revision 1.4  1998/06/17 11:50:43  michael
   + Small patch: forgot to make alias public
 
   Revision 1.3  1998/06/10 07:46:49  michael
@@ -361,4 +348,4 @@ end;
   Revision 1.1  1998/06/08 15:32:12  michael
   + Split rtti according to processor. Implemented optimized i386 code.
 
-}
+}

+ 6 - 3
rtl/inc/astrings.pp

@@ -210,7 +210,7 @@ begin
     Size:=PAnsiRec(Pointer(S2)-FirstOff)^.Len;
     Location:=Length(S1);
     { Setlength takes case of uniqueness 
-      and alllocated memory. We need to use length, 
+      and allocated memory. We need to use length, 
       to take into account possibility of S1=Nil }
 //!!    SetLength (S1,Size+Location); 
     Move (Pointer(S2)^,Pointer(Pointer(S1)+location)^,Size+1);
@@ -418,7 +418,7 @@ begin
       PByte(ResultAddress+Size)^:=0;
       end;
     end;
-  Copy:=ResultAddress
+  Copy:=ResultAddress;
 end;
 
 
@@ -672,7 +672,10 @@ end;
 
 {
   $Log$
-  Revision 1.5  1998-06-12 07:39:13  michael
+  Revision 1.6  1998-06-25 08:41:44  florian
+    * better rtti
+
+  Revision 1.5  1998/06/12 07:39:13  michael
   + Added aliases for Incr/Decr ref.
 
   Revision 1.4  1998/06/08 19:35:02  michael

+ 1 - 1
rtl/inc/makefile.inc

@@ -6,7 +6,7 @@
 # implementation files.
 
 SYSNAMES=systemh heaph mathh filerec textrec system real2str sstrings innr \
-         file typefile version text
+         file typefile version text rtti
 SYSINCNAMES=$(addsuffix .inc,$(SYSNAMES))
 
 # Other unit names which can be used for all systems

+ 10 - 6
rtl/makefile

@@ -21,7 +21,7 @@
 # What compiler do you want to use :
 ifndef PP
 PP=ppc386
-endif PP
+endif
 
 # Where do you want to install the units ?
 # For each of the systems, a subdirectory OSunits of
@@ -73,7 +73,9 @@ endif
 
 
 # Set redir to YES if you want a log file to be kept.
+ifndef REDIR
 REDIR=YES
+endif
 
 # Set NODEBUG to YES if you DON'T want debugging
 NODEBUG=YES
@@ -141,7 +143,7 @@ else
 override REDIR:= >> log
 endif
 else
-REDIR:=
+override REDIR:= >> con
 endif
 
 # Check error definitions file.
@@ -155,7 +157,7 @@ DOS=NO
 else
 DOS=YES
 # also redirect the standard error to the redir file
-ifdef REDIR
+ifeq (YES,$(REDIR))
 PP:=redir -eo $(PP)
 # set the verbosity to max
 OPT:=$(OPT) -va
@@ -200,7 +202,7 @@ native: rtl$(OS_SRC)
 
 nativelibs : $(OS_SRC)libs
 
-all: rtlgo32v1 rtlgo32v2 rtllinux rtlos2
+all: rtlgo32v1 rtlgo32v2 rtllinux rtlos2 rtlwin32
 
 libs: go32v1libs go32v2libs linuxlibs os2libs
 
@@ -269,9 +271,9 @@ native_libinstall: libinstall_$(OS_SRC)
 
 makefile.dif : makefile
 	-$(DIFF) $(DIFFOPTS) makefile $(REFPATH)/makefile > makefile.dif
-	
 
-diffs_rtl: makefile.dif 
+
+diffs_rtl: makefile.dif
 
 diffs_dos:
 	$(MAKE) -C dos diffs
@@ -293,6 +295,8 @@ diffs_linux:
 	$(MAKE) -C linux diffs
 diffs_os2:
 	$(MAKE) -C os2 diffs
+diffs_win32:
+	$(MAKE) -C win32 diffs
 
 install_go32v1:
 	$(MAKE) -C dos/go32v1 install

+ 6 - 3
rtl/win32/defines.pp

@@ -176,9 +176,9 @@ unit defines;
        CNLEN = 15;
        DNLEN = 15;
        FILE_BEGIN = 0;
-       FILE_CURRENT = 1;
-    { _lopen, LZOpenFile, OpenFile }
+       FILE_CURRENT = 1;    
        FILE_END = 2;
+       { _lopen, LZOpenFile, OpenFile }
        OF_READ = 0;
        OF_READWRITE = 2;
        OF_WRITE = 1;
@@ -4416,7 +4416,10 @@ end.
 
 {
   $Log$
-  Revision 1.3  1998-06-10 10:39:12  peter
+  Revision 1.4  1998-06-25 08:41:47  florian
+    * better rtti
+
+  Revision 1.3  1998/06/10 10:39:12  peter
     * working w32 rtl
 
 }

+ 4 - 4
rtl/win32/struct.pp

@@ -4545,14 +4545,14 @@ unit struct;
 
   implementation
 
-const __ExtrnlLibrary='system.dll'; {Setup as you need!}
-
-
 end.
 
 {
   $Log$
-  Revision 1.2  1998-05-06 12:36:50  michael
+  Revision 1.3  1998-06-25 08:41:48  florian
+    * better rtti
+
+  Revision 1.2  1998/05/06 12:36:50  michael
   + Removed log from before restored version.
 
   Revision 1.1.1.1  1998/03/25 11:18:47  root