carl
4207d5634f
* new message errors
2002-09-07 20:34:27 +00:00
florian
757e3976fe
* tvarsym.paraitem is set now
2002-09-07 19:40:39 +00:00
florian
bf32e2d2cf
+ tcg.direction is used now
2002-09-07 19:34:08 +00:00
florian
c1d369dc5f
+ added tcg.direction to allow upwards growing temp areas
...
i.e. temps with positive index
2002-09-07 18:25:00 +00:00
florian
e4664f0ed6
+ tvarsym.paraitem added
2002-09-07 18:17:41 +00:00
florian
d78ad92f92
* first part of PowerPC fixes
2002-09-07 18:05:51 +00:00
florian
a7a354956d
* first part of PowerPC fixes
2002-09-07 17:54:58 +00:00
peter
dcd9e0107c
* old logs removed and tabs fixed
2002-09-07 15:25:00 +00:00
peter
8a03c810de
* obsolete
2002-09-07 14:14:14 +00:00
peter
17aba7002c
* fixed procdef access
2002-09-07 14:13:40 +00:00
carl
6c2bede5a8
* second part bug report 1996 fix, testrange in cordconstnode
...
only called if option is set (also make parsing a tiny faster)
2002-09-07 12:16:03 +00:00
Jonas Maebe
edb02a1409
* fixed small regalloction info bug
2002-09-07 11:50:02 +00:00
carl
e1b3ddc3fb
* fix my stupid copy and paste bug
2002-09-07 09:16:55 +00:00
carl
8fd9561a31
* start bugfix 1996
...
* 64-bit typed constant now work correctly and fully (bugfix 2001)
2002-09-06 19:58:31 +00:00
carl
1603394d9a
- moved files to systems directory
2002-09-06 15:05:23 +00:00
carl
517c2566e8
* moved files to systems directory
2002-09-06 15:03:50 +00:00
carl
a013d19c36
* bugfix of bug report 2072 (merged)
2002-09-06 14:58:42 +00:00
peter
20af604613
* memdebug enhancements
2002-09-05 19:29:42 +00:00
peter
8b5e92cb3c
* removed repetitive pass counting
...
* display heapsize also for extdebug
2002-09-05 19:28:29 +00:00
peter
37bb42694b
* fixed crash when current_module becomes nil
2002-09-05 19:27:05 +00:00
peter
f5a4b06b8a
* fixed old callnode.det_resulttype code
...
* old ncal code is default again
2002-09-05 14:53:41 +00:00
peter
93f33a3d0c
* internalerror instead of crash in getprocdef
2002-09-05 14:51:42 +00:00
pierre
0aceb4b76b
* fix for bug #2004 merged
2002-09-05 14:17:27 +00:00
Jonas Maebe
86830c26b8
- reverted my last commit, it was completely bogus :(
2002-09-05 05:56:07 +00:00
Jonas Maebe
426de6d36f
* fixed bugs in 64bit operations (registers weren't always allocated for
...
the result)
* optimized 'const64 - reg64/mem64'
* optimized equaln/unequaln with 64bit values (change them to
'(left.hi xor right.hi) or (left.lo xor right.lo)' so there are less
branches and the result can be returned in the flags this way. Could
be done for the i386 too probably.
2002-09-04 19:42:45 +00:00
Jonas Maebe
d2401f67b4
- removed unnecessary typeconversion from char_to_string
2002-09-04 19:38:42 +00:00
Jonas Maebe
e66f54e328
* changed some ctypeconvnode/toggleflag(nf_explizit) combo's to
...
ctypeconvnode.create_explicit() statements
2002-09-04 19:32:56 +00:00
Jonas Maebe
650eb87f8c
+ parse basic optimization parameters
2002-09-04 16:03:53 +00:00
daniel
c2fcc297ad
* Small bugfix for procdef selection
2002-09-03 21:32:49 +00:00
daniel
d5870e8075
* Activated new ncal code
2002-09-03 19:27:22 +00:00
daniel
fff92ef11e
* Fixed PowerPC & M68000 compilation
2002-09-03 19:04:18 +00:00
daniel
b0364566d1
* Make Tprocdef.defs protected
2002-09-03 16:26:26 +00:00
peter
64c4be5ca9
* fixed private methods hiding public virtual methods
2002-09-03 15:44:44 +00:00
mazen
2b9b0d86ed
+generic register names commented
2002-09-03 07:41:00 +00:00
peter
a17291b2d4
* array of char support for Str()
2002-09-02 19:24:41 +00:00
peter
36481b72bb
* insert PASCALMAIN in library for Win32 only
2002-09-02 18:46:26 +00:00
peter
88dce133e4
* reuse a reference when resizing ordinal values to smaller sizes,
...
this is required for constructions like byte(w):=1 that are
allowed in tp mode only
2002-09-02 18:46:00 +00:00
peter
c850b953c0
* fixed (not) pushing of empty parameters
...
* fixed implicit initialization/finalization generation
* fixed/optimized local copy of value arguments init/final
2002-09-02 18:44:48 +00:00
peter
8a75d59544
* fixed parsing of register names with lowercase
2002-09-02 18:40:52 +00:00
florian
b5e2c87b87
* fixed generic procedure variable calling
2002-09-02 11:25:20 +00:00
Jonas Maebe
ce868dcdac
+ a_call_reg()
...
* small fix in a_call_ref()
2002-09-02 10:14:51 +00:00
Jonas Maebe
c7df12f6f0
* fixed range error
2002-09-02 06:09:02 +00:00
florian
6502638258
* several powerpc related stuff fixed
2002-09-01 21:04:47 +00:00
peter
f77536fece
* use index register when available for generating a reference with
...
only a signle register. Using the base register could possibly
destroy the framepointer
2002-09-01 19:27:34 +00:00
peter
a73ecec989
* fixed register variable loading from parasymtable, the call by
...
reference code was moved wrong
2002-09-01 19:26:32 +00:00
peter
5a06f334b7
* fixed maybe_save that did not support a reference with only
...
a index register. It now also updates the location with the new
base register only
2002-09-01 18:50:20 +00:00
peter
274624f2f6
* assignn check in exitnode changed to use a separate boolean as the
...
assignn can be changed to a calln
2002-09-01 18:47:00 +00:00
peter
76bd75ed4a
* fixed generic tcgvecnode
...
* move code that updates a reference with index register and multiplier
to separate method so it can be overriden for scaled indexing
* i386 uses generic tcgvecnode
2002-09-01 18:46:01 +00:00
peter
d2400aae38
* cleanup of tvecnode.det_resulttype
...
* move 0 element of string access check to resulttype
2002-09-01 18:44:17 +00:00
peter
5ab0e99252
* include accumulator in regs_to_push list
2002-09-01 18:43:27 +00:00
peter
b65dedc9e4
* reduced level of comment that type is wrong for release
2002-09-01 18:42:50 +00:00
florian
3546ffa8b0
+ added abstract tcg.g_removevaluepara_openarray
2002-09-01 17:05:43 +00:00
peter
90308521d5
* fixed direct assembler for i386
2002-09-01 14:43:12 +00:00
peter
a4e309d6ae
* removevaluepara added to fix the stackpointer so restoring of
...
saved registers works
2002-09-01 14:42:41 +00:00
peter
7d02a4f264
* increase refcount in exit(arg) for arg
2002-09-01 14:41:47 +00:00
daniel
f4c6d762fd
- write_access fields removed in favor of a flag
2002-09-01 13:28:37 +00:00
peter
e0bcfca509
* fixed loading of procvar of object when the object is initialized
...
with 0
2002-09-01 12:15:40 +00:00
peter
8b2fb4187e
* fixed some wrong levels in extdebug comments
2002-09-01 12:14:53 +00:00
peter
8ee2462ba4
* remove debug line
...
* containself methods can be called directly
2002-09-01 12:14:15 +00:00
peter
a06f84daf8
* use a_call_reg
...
* ungetiftemp for procvar of object temp
2002-09-01 12:13:00 +00:00
peter
f68c3a9552
* calc param_offset after parameters are read, because the calculation
...
depends on po_containself
2002-09-01 12:11:33 +00:00
peter
7898dcf9ed
+ a_call_reg, a_call_loc added
...
* removed exprasmlist references
2002-09-01 12:09:27 +00:00
daniel
b0ffb45275
+ Added read/write notifications of variables. These will be usefull
...
for providing information for several optimizations. For example
the value of the loop variable of a for loop does matter is the
variable is read after the for loop, but if it's no longer used
or written, it doesn't matter and this can be used to optimize
the loop code generation.
2002-09-01 08:04:42 +00:00
daniel
4b82d30953
* Removed sets from Tcallnode.det_resulttype
...
+ Added read/write notifications of variables. These will be usefull
for providing information for several optimizations. For example
the value of the loop variable of a for loop does matter is the
variable is read after the for loop, but if it's no longer used
or written, it doesn't matter and this can be used to optimize
the loop code generation.
2002-09-01 08:01:16 +00:00
Jonas Maebe
431b9fac81
* fixed a_call_ref (it should load ctr, not lr)
2002-08-31 21:38:02 +00:00
florian
391ce796ef
* fixed several problems caused by Jonas' commit :)
2002-08-31 21:30:45 +00:00
Jonas Maebe
f107ba3bbe
+ support top_none for branches
2002-08-31 19:27:48 +00:00
Jonas Maebe
7a8429a4fe
* fixed 64bit comparisons
2002-08-31 19:26:20 +00:00
Jonas Maebe
76111bb9eb
+ implemented a_call_ref()
2002-08-31 19:25:50 +00:00
florian
fb5e694dca
* write double # before float constants when -al is turned on
...
else some gas versions interpret it as line number
2002-08-31 16:05:17 +00:00
florian
5e60724d23
+ HEAP* stuff must be generated for Linux/PPC as well
...
+ direct assembler reader searches now global and static symtables as well
2002-08-31 15:59:30 +00:00
florian
5380652cad
* ppc compilation fixed
2002-08-31 12:43:31 +00:00
mazen
c6b0a2e9a3
- undefining win32 when SPARC defined removed, no more needed.
2002-08-30 13:42:29 +00:00
mazen
c7bf4df982
*call parameter handling is now based on the new param manager
2002-08-30 13:16:23 +00:00
mazen
12c3e9a760
ncgcall.pas moved to ncpucall.pas (I'd like ncpu* insteade of nsparc* since it
...
provides processor independent units naming)
2002-08-30 06:15:27 +00:00
mazen
dd411127f4
added support for SPARC processors
2002-08-29 11:02:36 +00:00
mazen
66ab5e4a54
File added support to the new generic parameter handling
2002-08-29 10:16:20 +00:00
mazen
221d94a65e
+ added ncpucnp to fix a call to an abstract method in pss_2
2002-08-29 10:07:47 +00:00
mazen
2c774736c5
+added -gl to ease compiler debug
2002-08-29 10:06:01 +00:00
pierre
b6f43ac07b
* fixed compilation cycle with -Cr option by adding explicit
...
longint typecast in PutPtrUInt and putexprint methods.
+ added checks for sizeof and internalerros if size is not handled.
2002-08-26 14:05:57 +00:00
peter
a28f75ed03
* sym.insert_in_data removed
...
* symtable.insertvardata/insertconstdata added
* removed insert_in_data call from symtable.insert, it needs to be
called separatly. This allows to deref the address calculation
* procedures now calculate the parast addresses after the procedure
directives are parsed. This fixes the cdecl parast problem
* push_addr_param has an extra argument that specifies if cdecl is used
or not
2002-08-25 19:25:18 +00:00
peter
8a43a12934
* also check the paratypes when a forward was found
2002-08-25 11:33:06 +00:00
peter
3486c0c668
* don't optimize not([lten,gten]) for setdefs
2002-08-25 11:32:33 +00:00
peter
160103faba
* fixed not(not()) removal
2002-08-25 09:10:58 +00:00
peter
4aa03c0656
* add calls to release temps
2002-08-25 09:06:58 +00:00
peter
5c57932695
* fixed loop in concat_procdefs
2002-08-25 09:06:21 +00:00
peter
563a0dc818
* fixed wrong label in jump of except block (was also in n386flw wrong)
...
* fixed wrong pushing of raise parameters
* fixed wrong compare in finally
2002-08-24 18:41:52 +00:00
peter
46731a77ab
* really use tt_noreuse for exception frame buffers
2002-08-24 18:38:26 +00:00
peter
d551c5d867
* i386 uses now the generic exception management from ncgflw
2002-08-24 18:35:42 +00:00
peter
a903647258
* when reusing a block also update the temptype instead of forcing it
...
to tt_normal
2002-08-24 18:35:04 +00:00
peter
4b81e16fe2
* tempgen cleanup
...
* tt_noreuse temp type added that will be used in genentrycode
2002-08-23 16:14:48 +00:00
peter
770b338833
* also firstpass funcretrefnode if available. This was breaking the
...
asnode compilerproc code
2002-08-23 16:13:16 +00:00
mazen
9b960198d0
*** empty log message ***
2002-08-23 13:17:59 +00:00
mazen
a49dea276c
fixed compilation problem related to tai_labeled_instruction
2002-08-23 13:11:11 +00:00
mazen
7dff137383
GDB support added
2002-08-23 10:33:30 +00:00
mazen
c52839c2d6
*** empty log message ***
2002-08-23 10:08:28 +00:00
mazen
af7d17d28c
stab_regindex added for GDB support
2002-08-23 09:53:15 +00:00
daniel
3d7430e270
* Fixed the detection wether the first check of a for loop can be skipped
2002-08-22 15:15:20 +00:00
florian
ac29d65fc4
+ register32 is now written by tnode.dowrite
...
* fixed write of value of tconstnode
2002-08-22 11:21:44 +00:00
mazen
9df674734c
psystem.pas removed from sparc directory
2002-08-22 10:13:29 +00:00