mazen
12b5bae421
* instruction are moved lowercase to allow using old assmeblers
2003-04-29 10:00:31 +00:00
michael
cf68b27bb9
+ Patch from peter to fix wrong pushing of ansistring function results in open array
2003-04-29 07:28:52 +00:00
peter
dfd469b7a3
* fix stabs generation for implicit initfinal
2003-04-28 21:19:02 +00:00
peter
7c733ebcca
* write sec_none info in extdebug
2003-04-28 21:17:53 +00:00
peter
6d57995944
* do not finalize function results
2003-04-28 21:17:38 +00:00
peter
5af7a2c7a0
* sharedlib is placed in exe outputdir
2003-04-28 16:18:16 +00:00
mazen
04e19cce0d
- InternalError removed from TSparcCallNode.push_framepointer as it is called by common coplier code.
2003-04-28 09:49:58 +00:00
mazen
c475df7735
+ max_scratch_regs variable added because requested by common compiler code
2003-04-28 09:46:30 +00:00
mazen
fad91e6369
+ NOP after conditional jump instruction to prevent delay slot execution
2003-04-28 09:44:42 +00:00
mazen
5e741c4ca2
* Debug message in SetCondition more explicit.
2003-04-28 09:40:47 +00:00
Jonas Maebe
d03841dc16
* store register para's to memory before copying the valuepara's, because
...
that one requires them to be there already (and it calls subroutines ->
could overwrite those registers)
2003-04-27 16:30:34 +00:00
Jonas Maebe
7a3e1b917c
* fixed Florian's quick hack :)
...
* fixed small bug 64bit range checking code
2003-04-27 14:48:09 +00:00
Jonas Maebe
cfe94be378
* fixed overflow checking form of 64bit add instruction
2003-04-27 11:55:34 +00:00
peter
60978ba89c
* aktprocdef renamed to current_procdef
...
* procinfo renamed to current_procinfo
* procinfo will now be stored in current_module so it can be
cleaned up properly
* gen_main_procsym changed to create_main_proc and release_main_proc
to also generate a tprocinfo structure
* fixed unit implicit initfinal
2003-04-27 11:21:32 +00:00
Jonas Maebe
92ac35cc37
* fixed 64bit "const - reg/ref" bugs
2003-04-27 11:06:06 +00:00
florian
d4ca538a40
* fixed nested procedures to get them working as before
2003-04-27 10:41:47 +00:00
Jonas Maebe
e514b12f7a
* fixed stabs generation for local variables on systems where they have
...
a positive offset relative to the stack/framepointer
2003-04-27 10:03:18 +00:00
florian
098caf591c
* aprocdef instead of aktprocdef must be used
2003-04-27 09:14:48 +00:00
florian
886dae65fe
* quick fix for param64 for intel
2003-04-27 09:10:49 +00:00
Jonas Maebe
b19a9cfc0a
* do callparatemp stuff only after the parameters have been firstpassed,
...
because some nodes are turned into calls during the firstpass
2003-04-27 09:08:44 +00:00
florian
887d64f038
* another compile fix
2003-04-27 08:52:00 +00:00
peter
3bda511c4a
* compile fix
2003-04-27 08:50:45 +00:00
florian
80b1ccdd76
* fixed parameter passing for 64 bit ints
2003-04-27 08:23:51 +00:00
peter
a5e7f02527
* updated for removed lexlevel
2003-04-27 07:48:05 +00:00
peter
7f14891d66
* aktprocdef cleanup, aktprocdef is now always nil when parsing
...
a new procdef declaration
* aktprocsym removed
* lexlevel removed, use symtable.symtablelevel instead
* implicit init/final code uses the normal genentry/genexit
* funcret state checking updated for new funcret handling
2003-04-27 07:29:50 +00:00
Jonas Maebe
38d7ec6670
* fix to a_op64_const_reg_reg
2003-04-26 22:56:11 +00:00
florian
4450957bdd
* fixed para locations of fpc_class_new helper call
2003-04-26 20:57:17 +00:00
florian
19946413fe
* fixed setjmp record size
2003-04-26 20:15:22 +00:00
daniel
b899ea5469
* Bug fix in simplify
2003-04-26 20:03:49 +00:00
peter
fd278ee582
* print lineinfo for internalerror
2003-04-26 19:32:31 +00:00
florian
b5d749d24d
* fixed passing of fpu values by fpu register
2003-04-26 17:21:08 +00:00
Jonas Maebe
31d94f4f4c
* fixed g_flags2reg
2003-04-26 16:08:41 +00:00
florian
dda473894c
* fixed cmp_reg_reg_reg, cmp operands were emitted in the wrong order
2003-04-26 15:25:29 +00:00
florian
15c0b633ab
* fixed the powerpc to work with the new function result handling
2003-04-26 11:30:59 +00:00
peter
063979bcae
* length of tparalocation is now stored in ppu
2003-04-26 09:56:24 +00:00
peter
35801981d1
* .o files belonging to the unit are first searched in the same dir
...
as the .ppu
2003-04-26 09:16:07 +00:00
peter
a23e3f0a2f
* add string returns in LOC_REFERENCE
2003-04-26 09:12:55 +00:00
peter
fe96aad6d6
* vo_is_result flag added for the special RESULT symbol
2003-04-26 00:33:07 +00:00
peter
5541dc331f
* start search for overriden properties in the parent class
2003-04-26 00:32:37 +00:00
peter
9b236892b7
* set return_offset moved to after_header
2003-04-26 00:31:42 +00:00
peter
6720314fc5
* reset aktfilepos when setting new module for compile
2003-04-26 00:30:52 +00:00
peter
2b888374ce
* don't close inputfile when still closed
2003-04-26 00:30:27 +00:00
peter
ab6df4aa5e
* adapted for removed funcretsym
2003-04-26 00:29:17 +00:00
peter
61a964729e
* removed load_funcret
2003-04-26 00:28:41 +00:00
florian
574d50e86b
* fixed tfuncretsym stuff in powerpc specific part
2003-04-25 21:05:22 +00:00
peter
f4b818fc1d
* removed funcretn,funcretsym, function result is now in varsym
...
and aliases for result and function name are added using absolutesym
* vs_hidden parameter for funcret passed in parameter
* vs_hidden fixes
* writenode changed to printnode and released from extdebug
* -vp option added to generate a tree.log with the nodetree
* nicer printnode for statements, callnode
2003-04-25 20:59:33 +00:00
florian
b9c76fcf5e
* stack frame calculations are now completly done using the code generator
...
routines instead of generating directly assembler so also large stack frames
are handle properly
2003-04-25 20:55:34 +00:00
florian
754a34200a
* merged i386/aasmcpu and x86_64/aasmcpu to x86/aasmcpu
2003-04-25 12:43:40 +00:00
florian
ad2f6d6dab
* merged agx64att and ag386att to x86/agx86att
2003-04-25 12:04:31 +00:00
florian
c36e3569c3
* removed
2003-04-25 11:50:38 +00:00
florian
d0025abb0e
* commited it, to remove it :)
2003-04-25 11:50:20 +00:00
florian
98d09473e4
* merged i386/cpubase and x86_64/cpubase to x86/cpubase;
...
different stuff went to cpubase.inc
2003-04-25 11:12:09 +00:00
daniel
6aa01a99a9
* Ifdefs around a lot of calls to cleartempgen
...
* Fixed registers that are allocated but not freed in several nodes
* Tweak to register allocator to cause less spills
* 8-bit registers now interfere with esi,edi and ebp
Compiler can now compile rtl successfully when using new register
allocator
2003-04-25 08:25:26 +00:00
florian
41da381f1a
* fixed a lot of PowerPC related stuff
2003-04-24 22:29:57 +00:00
florian
47a3437dba
* comp is now written with its bit pattern to the ppu instead as an extended
2003-04-24 13:03:01 +00:00
florian
cca5ca2ab9
* fixed not node
2003-04-24 12:57:32 +00:00
florian
90561d5e71
* symbols which are register identifiers aren't resolved anymore
2003-04-24 12:05:53 +00:00
florian
7ec9711f9a
* fixed several issues with nested procedures
2003-04-24 11:24:00 +00:00
florian
88f3ab569c
+ HAS_TYPE_* defines for floats on i386 and powerpc added
2003-04-24 11:21:45 +00:00
florian
a2f6bad2ce
+ created from n386opt
2003-04-24 11:20:06 +00:00
florian
7f04bb7272
* ncgopt replaces n386opt
2003-04-24 11:19:13 +00:00
florian
2d2b85bacb
- replaced by ncgopt
2003-04-24 11:18:46 +00:00
peter
c092e24817
* fixes to get rtl compiled
2003-04-23 22:18:01 +00:00
peter
72ad478f97
* fix compile for ppc,sparc,m68k
2003-04-23 21:10:54 +00:00
peter
c351d2a524
* compile fix for no-newra
2003-04-23 20:23:06 +00:00
peter
c21ca3dfa0
+ added currency support based on int64
...
+ is_64bit for use in cg units instead of is_64bitint
* removed cgmessage from n386add, replace with internalerrors
2003-04-23 20:16:03 +00:00
daniel
9e2084b8d5
* Further register allocator work. Compiler now smaller with new
...
allocator than without.
* Somebody forgot to adjust ppu version number
2003-04-23 14:42:07 +00:00
peter
99c4b6cf86
* m68k fix
2003-04-23 13:48:07 +00:00
peter
35ea6c7233
* optimizer is x86
2003-04-23 13:47:41 +00:00
peter
2bb32541be
* fix m68k compile
2003-04-23 13:40:33 +00:00
peter
7ff85f0779
* fix sparc compile
2003-04-23 13:35:39 +00:00
peter
32d79d4f80
* fix warning for calling constructor inside constructor
2003-04-23 13:21:06 +00:00
peter
77cdb2fcae
* fix self passing to fpc_help_fail
2003-04-23 13:20:34 +00:00
peter
cf1f53f910
* fix push_high_param for cdecl
2003-04-23 13:15:04 +00:00
peter
4cee86cad2
* fix operator overload search parameter order
2003-04-23 13:13:58 +00:00
peter
155a2cdab4
* fix checking of procdef type which was broken since loadn returned
...
pointertype for tp procvar
2003-04-23 13:13:08 +00:00
peter
74756e4e85
* fix po_comp setting for fpc mode
2003-04-23 13:12:26 +00:00
florian
0284016ee9
* fixed several issues with powerpc
...
+ applied a patch from Jonas for nested function calls (PowerPC only)
* ...
2003-04-23 12:35:34 +00:00
peter
7dae726270
* po_comp for proc to procvar fixed
2003-04-23 11:37:33 +00:00
peter
29a382388e
* fix range check error after previous commit
2003-04-23 11:37:15 +00:00
peter
3a321cb62e
* cdecl array of const has no addr push
2003-04-23 10:14:30 +00:00
peter
181da6423d
* firstaddr will check procvardef
2003-04-23 10:13:55 +00:00
peter
5207aaf391
* don't check po_varargs for delphi
2003-04-23 10:12:51 +00:00
peter
e258c7bf84
* allow multi pass2 changed to global boolean instead of node flag
2003-04-23 10:12:14 +00:00
peter
a13db1decb
* range check error for GUID fixed
2003-04-23 10:11:22 +00:00
peter
18b1a27d2c
* procvar is not compared in addrn
2003-04-23 10:10:54 +00:00
peter
4290586968
* unix signalhandler has longint argument
2003-04-23 10:10:31 +00:00
peter
41dfcfba39
* expectloc fixes
2003-04-23 10:10:07 +00:00
daniel
7677b18770
* Removed usage of edi in a lot of places when new register allocator used
...
+ Added newra versions of g_concatcopy and secondadd_float
2003-04-23 09:51:16 +00:00
peter
4cf63d5b32
* wrong location_copy for include/exclude
2003-04-23 09:50:31 +00:00
Jonas Maebe
5ed5d2897f
* fixed ttemprefnode.compare and .getcopy to take offset field into
...
account
2003-04-23 08:41:34 +00:00
Jonas Maebe
b3a3398faf
* fixed istemp() when tg.direction = 1
2003-04-23 08:40:39 +00:00
peter
47489f2376
* firstpass uses expectloc
...
* checks if there are differences between the expectloc and
location.loc from secondpass in EXTDEBUG
2003-04-22 23:50:22 +00:00
peter
9ed2ce8c12
* removed some notes/hints
2003-04-22 14:33:38 +00:00
peter
e248c0ece4
* fixed C style array of const
...
* fixed C array passing
* fixed left to right with high parameters
2003-04-22 13:47:08 +00:00
florian
92a29d7e82
* fixed generic in operator code
...
+ added debug code to check if all scratch registers are released
2003-04-22 12:45:58 +00:00
florian
253df05727
+ added first_ and last_imreg
2003-04-22 11:27:48 +00:00
daniel
25059e21b6
+ Implemented the actual register allocator
...
+ Scratch registers unavailable when new register allocator used
+ maybe_save/maybe_restore unavailable when new register allocator used
2003-04-22 10:09:34 +00:00
peter
01d13cb85e
* use location_reset
2003-04-22 09:54:18 +00:00
peter
8edbb7afed
* fix insert_typeconv to handle new varargs which don't have a
...
paraitem set
2003-04-22 09:53:33 +00:00
peter
0e0a581230
* do not convert procvars with void return to callnode
2003-04-22 09:52:30 +00:00
peter
0cb3160a63
* mark_write implemented for default with a warning in EXTDEBUG, this
...
is required for error recovery where the left node can be also a non
writable node
2003-04-22 09:52:00 +00:00
peter
ed82f9ff35
* do not load self when calling a non-inherited class constructor
2003-04-22 09:49:44 +00:00
peter
26b4fdbfa7
* always allocate 4 bytes when 0 bytes are asked
2003-04-22 09:46:17 +00:00
peter
811fdad9b6
* removed some ie checks
2003-04-21 20:05:10 +00:00
peter
ab7f62f3e1
* forgot to copy vmtrefaddr to selfrefaddr when self=vmt
2003-04-21 20:03:32 +00:00
peter
e21dab9739
* count address regs separate
2003-04-21 19:16:49 +00:00
peter
7e9e15cce8
* when ecx is not available allocated another register
2003-04-21 19:15:26 +00:00
Jonas Maebe
934974e234
* fixed tstatementnode.det_resulttype and tststatementnode.pass_1
...
* fixed some getcopy issues with ttemp*nodes
2003-04-21 15:00:22 +00:00
Jonas Maebe
e206a74439
- removed copying of all paras when secondpassing a callnode (this used
...
to be necessary for inlinign support, but currently the whole inlined
procedure is already copied in advance). Note that the compiler crashes
when compiling ucomplex with -dTEST_INLINE (also after fixing the
syntax errors), but that was also the case before this change.
2003-04-21 13:53:16 +00:00
Jonas Maebe
44f26523e6
* process para's from first to last instead of the other way round
2003-04-17 18:52:35 +00:00
daniel
0c93e261e7
* Added some code to keep track of move instructions in register
...
allocator
2003-04-17 16:48:21 +00:00
daniel
ba9d0abb67
* Tweaked register allocate/deallocate positition to less interferences
...
are generated.
2003-04-17 10:02:48 +00:00
daniel
a32926e2fc
* Some work on interference graph construction
2003-04-17 07:50:24 +00:00
Jonas Maebe
56132c1a9c
* assembler procedures now again get a stackframe if they have local
...
variables. No space is reserved for a function result however.
Also, the register parameters aren't automatically saved on the stack
anymore in assembler procedures.
2003-04-16 09:26:55 +00:00
Jonas Maebe
fd1056c621
* fixed paralocation for integer var/out parameters
2003-04-16 07:55:07 +00:00
Jonas Maebe
06e03ecd23
* calculation of parameter and resultlocation offsets now depends on
...
tg.direction instead of if(n)def powerpc
2003-04-16 07:53:11 +00:00
peter
12cced8116
* don't clean rtl unit dir in ppuclean, this breaks the snapshot
...
building
2003-04-15 18:22:07 +00:00
peter
c889842761
* fix ppuclean
2003-04-15 17:45:02 +00:00
pierre
9e21fb4c0a
* use 218 as ignore value for compare under win32
...
* also remove ppu files in subdirectories
2003-04-14 15:15:34 +00:00
peter
2c5eee4c62
* convert registers for importssection
2003-04-12 15:43:40 +00:00
peter
aca9555704
* Use the original unitname when defining a unitsym
2003-04-12 15:13:03 +00:00
Jonas Maebe
bd90c192c5
* ttempdeletenode.create now sets the nodetype to tempdeleten instead of
...
temprefn
2003-04-12 14:53:59 +00:00
peter
1bfa0a6ba3
* don't firstpass typen
2003-04-11 16:02:05 +00:00
peter
d6838c82b4
* support subscript,vec for setting methodpointer varstate
2003-04-11 15:51:04 +00:00
peter
d780263799
* default property also increased the reference count for the
...
property symbol
2003-04-11 15:49:01 +00:00
peter
2e4c0445fa
* fix bug #2438
2003-04-11 15:01:23 +00:00
peter
5cff10dd1a
* fix tw2454
2003-04-11 14:50:08 +00:00
peter
8da3f59d32
* vs_hidden released
2003-04-10 17:57:52 +00:00
peter
426b43ed1f
* amiga has also no .exe
2003-04-08 16:01:40 +00:00
Jonas Maebe
ffb79851e6
* more vs_invisible fixes
2003-04-07 11:58:22 +00:00
Jonas Maebe
a4af1a61e1
* fixed VS_HIDDEN for high parameter so it works again
2003-04-07 10:40:21 +00:00
Jonas Maebe
d951c7b5f2
* fixed compiling error
2003-04-07 08:52:58 +00:00
Jonas Maebe
5c5b86b650
+ generic a_op64_reg_ref implementation
2003-04-07 08:45:09 +00:00
olle
a069aadad0
* changed newasmsymbol to newasmsymboldata for data symbols
2003-04-06 21:11:23 +00:00
olle
1372a617cb
+ line numbers are now emitted in the assembler code
...
* bug in export and import directive fixed
* made code more in sync with aggas.pas
2003-04-06 21:01:40 +00:00
Jonas Maebe
f51a189be0
* don't generate entry/exit code for assembler procedures
2003-04-06 16:39:11 +00:00
Jonas Maebe
ec71805aa8
* several ppc/generic result offset related fixes. The "normal" result
...
offset seems now to be calculated correctly and a lot of duplicate
calculations have been removed. Nested functions accessing the parent's
function result don't work at all though :(
2003-04-05 21:09:31 +00:00
peter
6a16389f67
* moved generic code from n386cal to ncgcal, i386 now also
...
uses the generic ncgcal
2003-04-04 15:38:56 +00:00
peter
3c5e8e2b07
* quote names with hi-ascii chars
2003-04-04 15:34:25 +00:00
peter
45e5cada69
* give error when exports is not supported
2003-04-02 16:11:34 +00:00
peter
d7d14b0eca
* reset symbol for unique types
2003-04-01 16:17:15 +00:00
peter
29762b04a6
* regenerated
2003-04-01 16:09:56 +00:00
peter
4a0b87ac59
* fix classmethod from classmethod call
...
* move BeforeDestruction/AfterConstruction calls to
genentrycode/genexitcode instead of generating them on the fly
after a call to a constructor
2003-03-30 20:59:07 +00:00
peter
f3caa701d3
* regenerated
2003-03-30 19:03:59 +00:00
Tomas Hajny
7e44bb1506
* Makefiles regenerated with corrected fpcmake
2003-03-30 00:01:43 +00:00
peter
c4ddcc78a8
* generic constructor working for i386
...
* remove fixed self register
* esi added as address register for i386
2003-03-28 19:16:56 +00:00
peter
750c3b315e
* fixed small mem leaks
2003-03-27 17:44:13 +00:00
armin
8473dada93
* avoid problems with the ide in init/dome
2003-03-26 12:50:54 +00:00
armin
0795cf556b
* replaced experimental with clib for netware
2003-03-25 18:23:34 +00:00