florian
4ceadcbc6e
+ infrastructure for target specific resourcefile classes
...
git-svn-id: trunk@6564 -
2007-02-19 19:02:21 +00:00
tom_at_work
99bc1ccb75
* merged some code which was ifdefed separately for POWERPC and POWERPC64 code but is equal
...
git-svn-id: trunk@6383 -
2007-02-08 22:52:11 +00:00
Jonas Maebe
d6a4fbea47
* removed no longer used allow_only_static global variable
...
git-svn-id: trunk@6265 -
2007-01-29 14:49:28 +00:00
Jonas Maebe
d614eab0fb
* don't call afterconstruction/beforedestruction in case an exception
...
is raised in a constructor (mantis 8222)
git-svn-id: trunk@6202 -
2007-01-26 17:38:53 +00:00
Jonas Maebe
fae803869f
* don't typecast the localst of the main program to a localsymtable
...
git-svn-id: trunk@6188 -
2007-01-25 17:12:49 +00:00
Jonas Maebe
1218322f8c
* cs_generate_stackframes (w+/-) should only apply to normal routines,
...
not to pure assembler routines
git-svn-id: trunk@6159 -
2007-01-24 10:08:17 +00:00
Jonas Maebe
ddd071b2e4
+ support for Delphi's {$w-/+} switch (force stackframe generation for
...
assembler routines or not) (mantis #6687 )
git-svn-id: trunk@6151 -
2007-01-23 19:07:56 +00:00
Jonas Maebe
bb0bd621d4
* more epxlanation about the "elsewhere"
...
git-svn-id: trunk@6114 -
2007-01-21 22:22:54 +00:00
Jonas Maebe
a32da9bc10
* fixed comment about assembler directive handling and stack frames
...
git-svn-id: trunk@6113 -
2007-01-21 22:21:20 +00:00
Jonas Maebe
b951947b64
* partially fixed Delphi compatibility for assembler procedures: in case
...
only parameters on the stack are passed and if the function result is
not referenced, don't allocate a stackframe. Fixes mantis 8155, but
see that bug report for other rules (there's one error there: Delphi
*does* allocate a function result for non-string/variant/interface
if @result is referenced)
git-svn-id: trunk@6102 -
2007-01-21 16:53:59 +00:00
Jonas Maebe
bc06fd4d74
* fixed mantis #6152 (allow overloads to be defined before all
...
forwarddefs have been implemented)
git-svn-id: trunk@5995 -
2007-01-15 21:59:43 +00:00
Jonas Maebe
d3ded54ae0
* temporarily turn off self and vmt checking after calling
...
AfterConstruction, since self may no longer be valid afterwards
(the instance may already have freed itself, e.g. in case of a
TThread with FreeOnTerminate=true)
git-svn-id: trunk@5689 -
2006-12-23 14:03:43 +00:00
daniel
1b173fd0f3
+ Enable resourcestring in all modes
...
* Pre-initialize resourcestrings
git-svn-id: trunk@5637 -
2006-12-18 21:25:47 +00:00
yury
2fd4be4637
* Additionally check procedure's para_stack_size before doing stackframe optimization. It handles the case when a parameter is passed partially in registers and partially in the stack.
...
git-svn-id: trunk@5486 -
2006-11-26 13:22:11 +00:00
yury
8abe2d365e
* Implemented stackframe optimization for ARM CPU.
...
git-svn-id: trunk@5374 -
2006-11-14 16:18:49 +00:00
florian
2162f63def
* properly clean up current_procinfo
...
git-svn-id: trunk@5339 -
2006-11-12 15:39:01 +00:00
peter
0557ddc342
* removed typed const, it is now handled by staticvarsym
...
* globalvarsym renamed to staticvarsym
* fixed invalid regvar use in init when the finalize also uses the var
git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
peter
e17b424e28
* refactor procsym procdef list
...
git-svn-id: trunk@5210 -
2006-11-03 18:44:46 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
Jonas Maebe
5acc8b44a8
* activated internal get_frame for x86
...
* turn off stackframe optimizations on x86 if get_frame is called
in the current routine, or if the address of a nested function
is taken in the current routine
+ test for the above
* this fixes the IDE when compiled with stackframe optimizations
on x86
git-svn-id: trunk@5146 -
2006-11-01 12:48:53 +00:00
florian
a3a650ee73
* fixed more line numering output
...
* proper error message for generic methods not found
* fix small bug in replaying
git-svn-id: trunk@5121 -
2006-10-31 13:17:36 +00:00
florian
bce905b106
* give correct error locations for errors when specializing templates
...
* removed more germanisms
* better dumping of tokenbuf in ppudump
git-svn-id: trunk@5101 -
2006-10-30 23:28:06 +00:00
florian
ef7bd58c54
* germanism removed (aktfilepos -> current_filepos)
...
git-svn-id: trunk@5099 -
2006-10-30 22:37:31 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
florian
02d0ac4c3e
+ only procedures doing recursive calls are checked for tail recursivity
...
+ parameters are tested if they are usable with tail recursion removal
git-svn-id: trunk@4853 -
2006-10-10 20:29:48 +00:00
florian
82b7b785f7
+ TAILREC optimizer switch
...
git-svn-id: trunk@4849 -
2006-10-10 18:41:28 +00:00
peter
bf1c390027
* refactor import library generation
...
* support variable imports in internal linker
git-svn-id: trunk@4544 -
2006-09-03 19:22:31 +00:00
Jonas Maebe
7bb3a1fe22
* fixed register allocation of gen_load_para_value() and backwards
...
extension of regalloc info in general
git-svn-id: trunk@4293 -
2006-07-25 13:54:48 +00:00
peter
50ee3a96ad
* fix importprocname for cdecl
...
git-svn-id: trunk@3636 -
2006-05-23 07:59:36 +00:00
peter
70e7546d87
* us cs_opt_stackframe
...
git-svn-id: trunk@3326 -
2006-04-23 20:53:45 +00:00
peter
ce58e15393
* fix coff section names to fix resourcestrings with
...
the external linker
* create import libraries for dll imports, this uses
the new objdata framework to generate the binary
object files directly without needing an assembler pass
* store import_dll and import_name in ppu
* external linker uses import libraries
* internal linker uses import info from symtables,
no dlls are needed anymore
git-svn-id: trunk@3255 -
2006-04-17 20:48:22 +00:00
peter
5376d2d570
Merged revisions 3072-3073 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r3072 | peter | 2006-03-29 13:34:42 +0200 (Wed, 29 Mar 2006) | 4 lines
* std_regname generate pair of registers for float doubles
* don't call translate_register for regvars if -sr is passed
* use std_regname in regalloc message
........
r3073 | peter | 2006-03-29 16:00:37 +0200 (Wed, 29 Mar 2006) | 2 lines
* CMP instructions only read operands
........
git-svn-id: trunk@3079 -
2006-03-30 06:36:42 +00:00
peter
0ec2921bbe
* split newasmsymbol to refasmsymbol and defineasmsymbol
...
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +00:00
peter
b7fe6797bf
Merged revisions 2921-2922,2925 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines
* pass ObjectWriter to ObjectOuput
........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines
* refactor asmdata
........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines
* add cfi to asmdata
* move asmlist, asmcfi, asmdata to own unit
........
git-svn-id: trunk@2932 -
2006-03-16 08:52:22 +00:00
peter
b6e35a200e
* rewrite of optimizer options
...
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
peter
232555904e
* symtablestack cleanup and rewrite
...
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
florian
d28d7e3c12
* moved insertation of pc relative data for arm target
...
git-svn-id: trunk@2438 -
2006-02-05 10:32:19 +00:00
florian
94038b0d83
+ translate register variable locations, enables register variable debug info, with SSA it requires to be extended maintaining location list
...
git-svn-id: trunk@2409 -
2006-02-02 21:27:23 +00:00
peter
c297cb1569
* generate also external stubs for win32 without import section
...
git-svn-id: trunk@2303 -
2006-01-15 22:05:52 +00:00
peter
66f8276445
* refactor booleans in systeminfo structure, they are now flags
...
* support for case aware filesystems (Windows), they do now only
one lookup if a file exists
* add -WI option to generate import section for DLL imports or
let the linker handle it. Default is still import section until
the Makefiles are fixed, then the generation can be left to the
linker
git-svn-id: trunk@2274 -
2006-01-13 15:13:26 +00:00
florian
9670e0eb78
* leave stackframe on x86-64 as well away if possible
...
git-svn-id: trunk@2187 -
2006-01-05 18:08:33 +00:00
Jonas Maebe
b769a968e3
* make sure live_start and live_end are correctly updated while
...
generating the initialisation and entry code
git-svn-id: trunk@2185 -
2006-01-05 17:46:16 +00:00
florian
1024b80867
+ sub routines with children with asm blocks need a real stack frame, fixes new failure of tw0848
...
git-svn-id: trunk@2177 -
2006-01-05 10:10:58 +00:00
florian
a71d2b432c
* synchronize reg. variables before loading the function result
...
git-svn-id: trunk@2163 -
2006-01-04 20:30:41 +00:00
florian
f7d2c47f73
+ no stackframe is generated for i386 if possible
...
git-svn-id: trunk@2162 -
2006-01-04 19:19:06 +00:00
florian
30d5ff9f03
* fixed access to already freed memory location
...
git-svn-id: trunk@2118 -
2006-01-02 17:11:55 +00:00
florian
fb4557d71e
* first implementation of pic for i386
...
git-svn-id: trunk@2107 -
2006-01-01 20:14:48 +00:00
Jonas Maebe
55218d452b
* don't change the binding of real external symbols in the patch
...
of r2058, fixes the binary writer
git-svn-id: trunk@2060 -
2005-12-27 09:41:52 +00:00
Jonas Maebe
de8dbbd2c4
* final fixes for Mac OS X shared library creation: procedures declared
...
as forward are no longer treated as external symbols
* changed alloc_proc_symbol() to directly call newasmsymbol as opposed
to creating a dummy tai_symbol()
git-svn-id: trunk@2058 -
2005-12-26 18:18:05 +00:00