florian
60f46dcd29
* fixed several problems with the int64 constants
2000-08-17 12:03:48 +00:00
Jonas Maebe
10df99b121
* fixed crash when inlining assembler procedures with -Or
2000-08-17 11:07:51 +00:00
pierre
a39590e684
* fix go32v2 cycle problem
2000-08-17 09:17:19 +00:00
peter
7eaac1706d
* splitted namedobjectitem.next into indexnext and listnext so it
...
can be used in both lists
* don't allow "word = word" type definitions (merged)
2000-08-16 18:33:53 +00:00
florian
244fc53520
+ support of 64 bit integer constants
2000-08-16 13:06:06 +00:00
michael
5eb17fe1c4
+ Merged changes in fixbranch
2000-08-15 09:45:29 +00:00
peter
32bedb114d
* integer constant -> integer para enhanced to search the best matching
...
procedure, just like delphi does (merged)
2000-08-15 03:43:24 +00:00
peter
b4c1794b34
* previous commit was wrong file :(
2000-08-15 03:41:27 +00:00
peter
626970373c
* fix for absolute to mem address (merged)
2000-08-13 19:21:13 +00:00
peter
c11ee377bb
* integer constant is equal with all integer type arguments (merged)
2000-08-13 14:53:32 +00:00
peter
25c495dd5a
* put defaultpara values in parast and changed the name to
...
'def<Parameter name>'
2000-08-13 13:11:28 +00:00
peter
68283a4c62
* equal_paras now also checks default parameter value
2000-08-13 13:07:18 +00:00
peter
15aa7417a3
* store parast always for procdef (browser needs still update)
...
* add default parameter value to demangledpara
2000-08-13 13:06:37 +00:00
peter
0d881bb510
* new ppu version
2000-08-13 13:04:38 +00:00
peter
eadf85eee3
* -vb update
2000-08-13 13:04:15 +00:00
peter
cb4de797c1
* class member decl wrong then no other error after it
...
* -vb has now also line numbering
* -vb is also used for interface/implementation different decls and
doesn't list the current function (merged)
2000-08-13 12:54:53 +00:00
peter
6e00bdf39b
* fixed fileseek() typo (merged)
2000-08-13 08:59:37 +00:00
peter
8352fb6d7d
* support absolute refering to funcret (merged)
2000-08-13 08:42:59 +00:00
peter
122791efe7
* fixed typo in tsinglelist.clear (merged)
2000-08-13 08:41:57 +00:00
peter
34a42a439b
* restore labels when error in except block (merged)
2000-08-13 08:41:07 +00:00
peter
8f20bd887d
* ELF writer works now also with -g
...
* ELF writer is default again for linux
2000-08-12 19:14:58 +00:00
peter
bd6d4c3d17
* fixed bug #1096 (merged)
2000-08-12 15:41:15 +00:00
peter
cdbe6a1fa3
+ usedasmsymbollist to check and reset only the used symbols (merged)
2000-08-12 15:34:21 +00:00
peter
2c58f511b0
* reference reading fix from Jonas (merged)
2000-08-12 15:32:02 +00:00
peter
fac523d7f6
* IDE patch for stream reading (merged)
2000-08-12 15:30:44 +00:00
florian
cd6180fe99
+ case statement for int64/qword implemented
2000-08-12 06:46:06 +00:00
florian
797102a0a1
+ type TConstExprInt added
2000-08-12 06:45:08 +00:00
peter
1bb6c695e7
* fixed for constants in emit_push_mem_size for go32v2 (merged)
2000-08-10 18:42:03 +00:00
Jonas Maebe
2a801fcd04
* reallocmem is now also used under Delphi (merged from fixes branch)
2000-08-10 12:20:44 +00:00
peter
b13477c647
* packenumfixed things so it compiles with 1.0.0 again
2000-08-09 19:49:44 +00:00
Jonas Maebe
a5993b9f61
* tidexarray and tdynamicarray now use reallocmem() under FPC for
...
growing (merged from fixes branch)
2000-08-09 12:09:45 +00:00
Jonas Maebe
77d566f4fc
* fixed bug1093 and other string -> chararray conversion bugs
...
(merged from fixes branch)
2000-08-09 11:30:21 +00:00
peter
43f82ba0ff
* memdebug/memory patches (merged)
...
* only once illegal directive (merged)
2000-08-08 19:28:57 +00:00
peter
b2a4233525
* equal_constsym() needed for default para
2000-08-08 19:26:41 +00:00
peter
beefc6ac92
* crash fix for default para when all parameters were omitted
2000-08-08 19:23:28 +00:00
Jonas Maebe
cca5461149
* fixed bug in type conversions between enum subranges (it didn't take
...
the packenum directive into account)
+ define PACKENUMFIXED symbol in options.pas
(merged from fixes branch)
2000-08-07 11:31:04 +00:00
Jonas Maebe
ede6479557
+ emit_push_mem_size() which pushes a value in memory of a certain size
...
* pushsetelement() and pushvaluepara() use this new procedure, because
otherwise they could sometimes try to push data past the end of the
heap, causing a crash
(merged from fixes branch)
2000-08-07 11:29:40 +00:00
peter
deb46cc56f
* removed note
2000-08-06 19:42:40 +00:00
peter
658a1f4fcd
* default parameters working !
2000-08-06 19:39:28 +00:00
peter
95253a2759
* overload fixes (merged)
2000-08-06 14:17:15 +00:00
peter
ec3f05fe39
* merged patches name generation in lib and asm constant eval
2000-08-06 10:42:29 +00:00
peter
195bc075eb
* $ifdef go32v2 -> target_info.target=go32v2
2000-08-05 13:33:08 +00:00
peter
2c86bfd561
* fixed build prob without support_mmx
2000-08-05 13:32:39 +00:00
peter
e955ac6135
* packenum 1 fixes (merged)
2000-08-05 13:25:06 +00:00
Jonas Maebe
5efdcfc3a5
* readded l1 variable (between ifdef go32v2 to avoid hints/notes)
2000-08-05 10:35:51 +00:00
Jonas Maebe
83eeb7b9f7
* added missing register deallocation (could cause IE10 i some cases)
...
(merged from fixes branch)
2000-08-05 09:57:27 +00:00
peter
4549ef44e1
* merges from fixes
2000-08-04 22:00:50 +00:00
Jonas Maebe
5d7597c09f
* improved detection of range of instructions which use a register
...
(merged from fixes branch)
2000-08-04 20:08:03 +00:00
Jonas Maebe
debe8d1498
* correct version (I also had a regvars.pp locally, which was used
...
instead of the regvars.pas on CVS, so I didn't notice the errors :( )
2000-08-04 05:52:00 +00:00
Jonas Maebe
1d8195c247
* forgot to commit :( (part of regvar changes)
2000-08-04 05:09:49 +00:00
Jonas Maebe
999162e78d
* fixed inserting of allocated register for regvars (only those for
...
parameters were done, and sometimes even the wrong ones)
2000-08-03 14:36:47 +00:00
Jonas Maebe
41f84e639c
* save/reset/restore regvar info around inlined code
2000-08-03 14:27:04 +00:00
Jonas Maebe
c999d3b17d
+ allow regvars to be used inside inlined procs, which required the
...
following changes:
+ load regvars in genentrycode/free them in genexitcode (cgai386)
* moved all regvar related code to new regvars unit
+ added pregvarinfo type to hcodegen
+ added regvarinfo field to tprocinfo (symdef/symdefh)
* deallocate the regvars of the caller in secondprocinline before
inlining the called procedure and reallocate them afterwards
2000-08-03 13:17:25 +00:00
Jonas Maebe
ac16977232
- disable regvars for inlined procedures (merged from fixes branch)
2000-08-03 11:15:42 +00:00
peter
227e983397
* first things for default parameters
2000-08-02 19:49:58 +00:00
Jonas Maebe
7ef99ada12
* fixed web bug1087
...
* allocate R_ECX explicitely if it's used
(merged from fixes branch)
2000-08-02 08:05:04 +00:00
Jonas Maebe
8e76008e98
- undid my changes from the previous two commits because it was a bug
...
in cg386cnv which I've now fixed (previous changes only masked it in
some cases) (merged from fixes branch)
2000-08-02 07:20:32 +00:00
Jonas Maebe
89f0a308a2
* fixed ie(10) when using -Or and shortstring -> ansistring conversions
...
(or when using a lot of ss -> as conversions in one statement, the
source was freed only *after* pushusedregisters($ff), which means its
registers were reallocated when popusedregisters was called) (merged
from fixes branch)
2000-08-02 07:05:32 +00:00
Jonas Maebe
a0d91b1b85
* fixed crash when an undeclared identifier is used in a raise statement
...
(merged from fixes branch)
2000-08-02 07:04:56 +00:00
Jonas Maebe
fcaa820523
* fixed crash when passing undeclared identifiers to str() (merged from
...
fixes branch)
2000-08-01 14:07:49 +00:00
Jonas Maebe
d88607d154
* refined my previous IE(10) fix (in some cases, too many registers could
...
be reserved) (merged from fixes branch)
2000-08-01 10:41:35 +00:00
Jonas Maebe
d446128ceb
- removed imul support from -dfoldarithops since "imull [reg32],[mem32]"
...
doesn't exist (merged from fixes branch)
2000-07-31 08:44:05 +00:00
peter
c5da6c53fd
* merged fixes
2000-07-30 17:04:43 +00:00
sg
cca5f1fadc
* Fixed translation for sym_w_function_result_not_set
2000-07-29 22:19:53 +00:00
sg
c09b31bef5
* Applied patch by Markus Kaemmerer which removes a tiny memory leak
...
for the generation of code for in_[sin|cos]_extended code
(a label has been created but never used afterwards)
2000-07-29 18:27:53 +00:00
Jonas Maebe
df9e505622
* fixed bug in shr/shl optimization when -Og is used (merged from fixes
...
branch)
2000-07-28 13:56:23 +00:00
Jonas Maebe
e1226b074f
* fixed bug in secondshlshr where ecx was released too soon in some
...
cases causing a combination of -Or and -dnewoptimizations to generate
wrong code
(merged from fixes branch and since in 1.1 -dnewoptimizations has
been released, it always generated wrong code here when using -O2 or
higher)
2000-07-28 13:28:25 +00:00
Jonas Maebe
48404492e3
* fixed web bug1073 (merged from fixes branch)
2000-07-28 09:09:10 +00:00
Jonas Maebe
ba86afd3b0
* refined previous fix (sometimes the number of necessary registers was
...
overestimated) (merged from fixes branch)
2000-07-28 07:38:13 +00:00
Jonas Maebe
f2123cbcc1
* release alignopts
2000-07-27 13:03:35 +00:00
Jonas Maebe
2183d3142f
* fixed internalerror(10) when using -Or and complex arrays (merged
...
from fixes branch)
2000-07-27 12:41:54 +00:00
Jonas Maebe
0f7ae1718e
* moved locflags2reg() procedure from cg386add to cgai386
...
+ added locjump2reg() procedure to cgai386
* fixed internalerror(2002) when the result of a case expression has
LOC_JUMP
(all merged from fixes branch)
2000-07-27 09:25:05 +00:00
Jonas Maebe
2fc7533375
* removed obsolete typeconversion (it got removed by the compiler in
...
firsttypeconv anyway) (merged from fixes branch)
2000-07-27 09:19:37 +00:00
Jonas Maebe
cb8d634547
* merged from fixes branch (v_hint to v_tried changed when attempting
...
to smart/static/shared link)
2000-07-26 13:08:19 +00:00
Jonas Maebe
3b4a3a2cee
* several FPU instructions weren't marked as reading operand one (like
...
FADD and FSUB)
2000-07-26 12:25:33 +00:00
sg
069a3ae31d
* Added WideChar support to inlined 'ord' function
2000-07-22 11:53:26 +00:00
Jonas Maebe
ce46621762
* daopt386: changes to getnextinstruction/getlastinstruction so they
...
ignore labels who have is_addr set
+ daopt386/csopt386: remove loads of registers which are overwritten
before their contents are used (especially usefull for removing superfluous
maybe_loadesi outputs and push/pops transformed by below optimization
+ popt386: transform pop/pop/pop/.../push/push/push to sequences of
'movl x(%esp),%reg' (only active when compiling a go32v2 compiler
currently because I don't know whether it's safe to do this under Win32/
Linux (because of problems we had when using esp as frame pointer on
those os'es)
2000-07-21 15:19:54 +00:00
Jonas Maebe
67ac676004
+ added is_addr field for labels, if they are only used for getting the address
...
(e.g. for io checks) and corresponding getaddrlabel() procedure
2000-07-21 15:14:01 +00:00
Jonas Maebe
3da775621a
* merged from fixes branch
2000-07-21 09:29:43 +00:00
Jonas Maebe
3919baefe8
* merged from fixes branch
2000-07-21 09:23:47 +00:00
michael
d63d102d25
* Back to external assembler till peter fixes gdb
2000-07-14 21:29:38 +00:00
michael
1d541f4095
+ Adapted wordversion
2000-07-14 05:14:10 +00:00
michael
2949824a69
+ Patch to 1.1
2000-07-14 05:11:48 +00:00
michael
665c1f6410
+ patched to 1.1.0 with former 1.09patch from peter
2000-07-13 12:08:24 +00:00
michael
650fbb86aa
+ removed logs
2000-07-13 11:32:24 +00:00
michael
e7aca136a1
+ Initial import
2000-07-13 06:29:38 +00:00
pierre
b6bc1d480f
* fix wordversion
2000-07-10 09:17:27 +00:00
Jonas Maebe
79e58b655c
* real fix for web bug #1032 (removed previous coment since it was false)
2000-07-10 08:00:22 +00:00
Jonas Maebe
f42e4f21b4
* fixed web bug #1032
2000-07-10 07:14:41 +00:00
peter
eea4c2eab3
* fixed some more texts
2000-07-09 17:40:41 +00:00
peter
5957cff999
* escape $ with \$
2000-07-09 17:39:05 +00:00
peter
bc377c69ce
* fixed some tex texts
2000-07-09 17:02:29 +00:00
peter
915b7c4373
* replace only $ with arg if next char is a number
2000-07-09 17:01:26 +00:00
peter
a1b92237f5
* fixed tex writign
2000-07-09 16:30:59 +00:00
peter
c88f79c92c
* renamed to lowercase
2000-07-09 10:40:12 +00:00
peter
1d06b07e42
* version_string is now a function so it returns 1.00 instead of 1.00.0
2000-07-09 09:34:50 +00:00
peter
b9e5501ba7
* findobjectfile gets extra arg with directory where the unit is found
...
and the .o should be looked first
2000-07-08 20:43:37 +00:00
peter
289e5d6567
* undid my previous commit, because it breaks some code
2000-07-08 18:03:11 +00:00
peter
e2c8882843
* also support string parsing in skipuntildirective for fpc modes
2000-07-08 16:22:30 +00:00
pierre
ab6fd6b3b8
* get a failure on webtbf/tbug890
2000-07-07 20:42:55 +00:00
florian
1104d83363
+ initial revision
2000-07-07 17:07:20 +00:00
florian
e2eba0de14
* the on statement has to clear the temp. gen before calling secondpass for
...
the next on statement
2000-07-06 20:43:44 +00:00
peter
12dc32b781
* version 1.00.0 so the snapshots can test with this version number
...
for a few days
2000-07-06 20:08:46 +00:00
peter
8df37e4a85
* fixed crash with objects unit and -Sd mode
2000-07-06 19:06:30 +00:00
peter
b91050ccb7
* allow in delphi mode directives without semicolons between
2000-07-06 19:04:59 +00:00
peter
f449b4beaa
* fixed function returning record type and assigning to the result
2000-07-06 18:56:58 +00:00
Jonas Maebe
eed3807af0
* moved "<flag setting operation>; test/or reg,reg" to "<flag setting
...
operation>" optimization to pass 2 because it caused problems
with -dnewoptimizations
2000-07-06 12:30:31 +00:00
michael
89c01a785a
+ Initial implementation by Michail Baikov
2000-07-06 06:09:10 +00:00
pierre
8455b67858
+ Register TModuleSymbol
2000-07-05 21:20:48 +00:00
florian
3d7d2eb25d
* virtual contructors weren't handled properly if they were called via a class
...
variable
2000-07-05 20:39:55 +00:00
florian
26643d4e16
* fixed my previous commit :/
2000-07-05 20:29:16 +00:00
florian
a989d18fc2
* fixed fpuvaroffset calculation in read statements
2000-07-05 20:19:47 +00:00
pierre
ebc536ef52
* avoid internalerror on open arrays
2000-07-05 10:17:38 +00:00
peter
cf026bfb89
* fixed missing option_help_pages
2000-07-04 19:12:49 +00:00
peter
b13955d6d8
* be optimistic: version 1.00 for some utils
2000-07-04 19:05:53 +00:00
pierre
9290e7b641
* fix for bug #1025
2000-07-03 21:08:54 +00:00
pierre
74f131b173
* fix for bug #1023
2000-07-03 13:26:48 +00:00
pierre
d86f8c5ec8
* fix for bug #1019
2000-07-03 09:48:23 +00:00
peter
8b38902424
* exampleinstall target added
2000-07-01 23:03:18 +00:00
peter
f806e08f22
* tool to add numbering to the old error?.msg files
2000-07-01 09:52:56 +00:00
peter
757f68ec58
* fixed internalerror 2002 when case expr is not correct, by creating
...
a temp correct case expression
2000-06-30 22:15:39 +00:00
peter
5db0ddd7e9
* fix for bug #988
2000-06-30 22:12:26 +00:00
peter
40e02c89da
* fixed some getlabel to getdatalabel
2000-06-30 22:11:28 +00:00
peter
957d4cdc89
* new message files layout with msg numbers (but still no code to
...
show the number on the screen)
2000-06-30 20:23:33 +00:00
Jonas Maebe
3d3d5c512a
* fixed inline bugs (calling an inlined procedure more than once didn't
...
work)
2000-06-29 13:50:30 +00:00
Jonas Maebe
aa42c1480c
* fixed copy/paste bugs in getcopy
2000-06-29 13:49:39 +00:00
michael
e55a9d2da1
+ Up to date version from Michail Baikov
2000-06-29 11:24:00 +00:00
sg
a4096f2886
* Fix for class field table writing
2000-06-29 08:42:47 +00:00
Tomas Hajny
c0a5cca16b
* little corrections for EMX resources
2000-06-28 03:34:06 +00:00
Jonas Maebe
1b29bfff5b
* fix for web bug #1011 : no exception stack stuff is generated for
...
inlined procedures, the entry/exitcode of the parent will do that
2000-06-27 12:17:29 +00:00
florian
73269986f3
* fixed a problem with forward declarations in TP mode, probably introduced by
...
Pierre's last changes
2000-06-25 20:13:51 +00:00
Tomas Hajny
44307fe5ba
+ $R support for OS/2 (EMX) added, little correction (marco to macro)
2000-06-25 19:28:53 +00:00
Tomas Hajny
c790e4afbe
+ $R support for OS/2 (EMX) added
2000-06-25 19:08:27 +00:00
peter
e2e7120ef7
* setdef.typename, show Empty Set if elementtype is not set
2000-06-25 09:25:29 +00:00
sg
7d33870ef8
* Updated to latest changes in errore.msg
2000-06-24 19:21:23 +00:00
pierre
36f461db33
* align all variants to same start address
2000-06-23 21:34:09 +00:00
pierre
a64310a252
+ new warning for C packed records
2000-06-23 21:33:25 +00:00
pierre
9681a28891
* alignment for record changed for C packing mostly
2000-06-23 21:32:45 +00:00
pierre
6e78b071f7
+ new target_os field: maxCstructalignment
2000-06-23 21:31:18 +00:00
peter
de1083a9ed
* reset current_object_option when reading other symtables than
...
object declarations
2000-06-23 20:14:39 +00:00
peter
507e9ed065
* made resourcecompiling object so it can be inherited and replaced
...
for other targets if needed
2000-06-23 20:11:05 +00:00
peter
8c25925349
* int64,qword rtti support
2000-06-22 20:01:57 +00:00
pierre
945ae36b63
* fix the problem of long mangledname in internal writer
2000-06-21 20:56:37 +00:00
sg
6187dc80b5
* Updated
2000-06-21 08:10:08 +00:00
pierre
38f27344f4
* equal_paras and convertable_paras changed by transforming third parameter
...
into an enum with three possible values:
cp_none, cp_value_equal_const and cp_all.
2000-06-20 12:47:52 +00:00
pierre
3822fe1501
* do not create an empty export section
2000-06-20 12:44:30 +00:00
pierre
ee9d8f5248
* smart link is default on win32
2000-06-19 19:57:19 +00:00
pierre
dc05338a37
* small error fix
2000-06-19 19:56:43 +00:00
peter
724ce958af
* fixed pchar<->[string,chararray] operations
2000-06-18 19:41:19 +00:00
peter
fdb8555bdb
* fixed + record.field expressions
2000-06-18 19:09:30 +00:00
peter
a2aca573f4
* don't allow enum assignments in tp/delphi mode
2000-06-18 18:16:38 +00:00
peter
6530ab39a8
* only replace the $1,$2,$3 once, so it doesn't loop when the
...
value to replace with contains $1,$2 or $3
2000-06-18 18:14:21 +00:00
peter
1b53fa6f8a
* removed unused var
2000-06-18 18:13:12 +00:00
peter
b71b416cd1
* support overload keyword
2000-06-18 18:12:40 +00:00
peter
d55672bd95
* C record packing fixed to also check first entry of the record
...
if bigger than the recordalignment itself
* variant record alignment uses alignment per variant and saves the
highest alignment value
2000-06-18 18:11:32 +00:00
peter
9fc6896bf9
* empty ansistring now use constant value of 0
2000-06-18 18:09:31 +00:00
peter
6fa1a1bae0
* use new illegal_char method
2000-06-18 18:07:06 +00:00
peter
2b1d92cb5c
* no binary value reading with % if not fpc mode
...
* extended illegal char message with the char itself (Delphi like)
2000-06-18 18:05:54 +00:00
sg
a68332baec
* Updated
2000-06-17 17:15:57 +00:00
pierre
fc2326a5dc
*Gabor's changes
2000-06-16 06:08:44 +00:00
pierre
c02fc1e683
* wrong fpcmake.ini corrected
2000-06-15 20:46:02 +00:00
pierre
b5ac159ce9
* fix the windows unit import problem by forcing smart linking for win32
2000-06-15 20:26:51 +00:00
peter
0d58e53bfc
* first look for ppu in cwd and outputpath and after that for source
...
in cwd
* fixpath() for not linux makes path now lowercase so comparing paths
with different cases (sometimes a drive letter could be
uppercased) gives the expected results
* sources_checked flag if there was already a full search for sources
which aren't found, so another scan isn't done when checking for the
sources only when recompile is needed
2000-06-15 18:10:11 +00:00
peter
8b92303745
* fix constant parsing which gave an error when constants were used
2000-06-15 18:07:07 +00:00
michael
dd9ff4e6ea
+ All messages translated again
2000-06-15 17:54:46 +00:00
peter
11e4a9a22d
* added need_dollar msg
2000-06-14 19:04:09 +00:00
peter
6eb5381eb4
* fixed TYPE with records and fields
...
* added TYPE support for ATT reader else it wouldn't be possible to
get the size of a type/variable
2000-06-14 19:02:41 +00:00
peter
43b224b136
* rename the result of a function to hide it instead of using setname
2000-06-14 19:00:58 +00:00
peter
2ce33303a3
* support for inherited; only
2000-06-14 16:52:42 +00:00
peter
ab8dd7a27b
* fixed reference parsing
2000-06-14 16:52:09 +00:00
peter
9527b53b60
* removed unused label i left in when testing
2000-06-14 16:51:18 +00:00
Jonas Maebe
18dd1f715b
+ support for inc/dec/imul in foldarithops
2000-06-14 06:05:06 +00:00
kaz
8742406bdd
* array type property can have default value, fixed.
2000-06-13 17:09:56 +00:00
peter
42bdcb649b
* fixed pchar->string conversion for delphi mode
2000-06-11 07:00:21 +00:00
peter
69109b8234
* support procvar directive without ; before the directives
2000-06-11 06:59:36 +00:00
Jonas Maebe
cd3a96d742
* fixed bug in shlmul code
2000-06-10 17:32:44 +00:00
Jonas Maebe
ac7de270ca
* loadord2reg doesn't generate any "movl %reg1,%reg1" anymore
2000-06-10 17:31:42 +00:00
peter
b427a13613
* fixed parsing of $if preproc function
2000-06-09 21:35:37 +00:00
peter
14d248a322
* checking for dup id with para of methods fixed for delphi mode
2000-06-09 21:34:40 +00:00
pierre
679c988bc3
* unary minus operator overloading was broken
...
+ accept pointer args in binary operator
2000-06-06 20:25:43 +00:00
pierre
1d6b7e9050
Generate a warning if function result is a pointer and result^:=x; is used
2000-06-06 20:24:07 +00:00
Jonas Maebe
3ca96dd897
* ansistring constants now also get a trailing #0 (bug reported by
...
Thomas Schatzl)
2000-06-06 13:06:17 +00:00
pierre
7b1219536c
+ support for NOT overloading
...
+ unsupported overloaded operators generate errors
2000-06-05 20:41:17 +00:00
pierre
d0399b4e55
* fix for inline bug
2000-06-05 20:39:05 +00:00
peter
23cbb5b9c8
* fix addrn with procvar, also detected by testpva2 !
2000-06-04 09:05:05 +00:00
peter
8ab40df69d
* check for procvar in valid_for_formal
2000-06-04 09:04:30 +00:00
Jonas Maebe
957bd0bfd5
* resource string numbering
2000-06-04 08:48:54 +00:00
Jonas Maebe
e360abb77b
* fixed web bug #972 , test for the bug in tests/testopt/testcse3.pp
2000-06-03 09:41:37 +00:00
sg
f2700cd86a
* Adapted to recent changes in errore.msg
2000-06-03 08:57:09 +00:00
pierre
ef8abc1dd7
* operator overloading now uses isbinaryoperatoracceptable
...
and is unaryoperatoracceptable
2000-06-02 21:24:46 +00:00
pierre
6433e1d8c2
tok2node moved to htypechk unit
2000-06-02 21:22:56 +00:00
pierre
88e8f0836f
+ isbinaryoperatoracceptable and isunaryoperatoracceptable
...
for a more coherent operator overloading implementation
tok2node moved from pexpr unit to htypechk
2000-06-02 21:22:04 +00:00
pierre
28ce798307
+ set vo_is_exported for vars
2000-06-02 21:18:13 +00:00
pierre
b8020e724b
fix bug in tbs/tbs0317
2000-06-02 21:17:26 +00:00
pierre
cc246ae673
* vo_is_exported needs init_global also
2000-06-02 21:16:42 +00:00
pierre
88f77c3dbc
+ vo_is_exported for bug0317 fix
2000-06-02 21:15:49 +00:00
pierre
e44f9fd425
* fix for tbs/tbs0318.pp bug
2000-06-02 21:14:34 +00:00
pierre
71219c091e
* use is_equal instead of direct def equality in unary minus overload
2000-06-02 21:13:56 +00:00
florian
2658c0aeda
+ fieldtable support for classes
2000-06-02 18:48:47 +00:00
peter
8b260f5793
* symtable.insert changed to procedure
2000-06-01 19:14:09 +00:00
peter
40de0309f6
* fixed long line for tp7
2000-06-01 19:13:02 +00:00
peter
120d2f0130
* added ifdef fpc around findclose
2000-06-01 19:11:19 +00:00
peter
e882145e88
* made resourcestrings OOP so it's easier to handle it per module
2000-06-01 19:09:56 +00:00
peter
aa7cb6bde2
* delphi/tp mode fixes for dup id checking (tbs319,tbf320)
2000-06-01 19:07:52 +00:00
peter
65d78b71d2
* clean .o and .s from smartlinkpath when starting the writer
2000-06-01 13:02:45 +00:00
peter
e60344ccf7
* removed notes
2000-06-01 11:01:20 +00:00
peter
276a486a28
* fixed string->pchar conversion for array constructors
2000-06-01 11:00:52 +00:00
peter
30b8959557
* moved to utils
2000-06-01 10:58:47 +00:00
florian
a4bdf283e7
* stack alignment to 8 byte boundaries with -Oa switch
2000-05-31 09:29:15 +00:00
florian
c33697ecd4
* forgot to commit a fix for the enumeration subrange problem, yesterday
2000-05-31 06:58:41 +00:00
florian
9ef9f62da1
* first implementation of -Oa switch
2000-05-31 06:57:11 +00:00
florian
d7db923d35
* fixed assignments of subrange enumeration types
2000-05-30 18:38:45 +00:00
pierre
6b012c36f4
* New bunch of Gabor changes
2000-05-29 10:04:40 +00:00
florian
1dac75340e
* fixed a problem with subrange enumerations in case statements
2000-05-28 15:22:54 +00:00
peter
8e4522215a
* smart,shared lib including for rpm/deb
2000-05-26 20:50:09 +00:00
Jonas Maebe
c1df09f993
* fixed wrong register deallocations in several ansistring related
...
procedures. The IDE's now function fine when compiled with -OG3p3r
2000-05-26 20:16:00 +00:00
peter
535f63923c
* fixed % parsing and added modulo support
...
* changed some evaulator errors to more generic illegal expresion
2000-05-26 18:23:09 +00:00
peter
27c258c7ca
* give error for @ with formal const,var parameter. Because @ generates
...
a constant value and not a reference
2000-05-26 18:21:41 +00:00
peter
8822c0dc43
* fixed wrong var parameter with @
2000-05-26 18:20:38 +00:00
Jonas Maebe
79b0cbff40
* fixed unreachable code detection
2000-05-25 12:00:14 +00:00
sg
cd180c17d5
* Updated
2000-05-25 11:43:15 +00:00
Jonas Maebe
298f787233
* const parameters were not prevented from becoming regvars (causing
...
errors later on in the code generating stage)
2000-05-25 07:44:11 +00:00
pierre
947fa03cb0
+ check of compatibility between selected assembler
...
output and target OS
2000-05-23 21:28:19 +00:00
pierre
9fa6970737
+ added supported_target fiedl to tasminfo record
...
to disregard wrong assembler settings
2000-05-23 21:26:52 +00:00
peter
8900400a2c
+ typecasting support for variables, but be carefull as word,byte can't
...
be used because they are reserved assembler keywords
2000-05-23 20:36:28 +00:00
peter
00cf634883
* fixed instruction matching when a size flag is specified for all
...
operands
2000-05-23 20:34:35 +00:00
peter
cafbded190
* attsuffix table is also needed for ra386int
2000-05-23 20:33:37 +00:00
peter
7d9c18c01d
* removed dup msgcrcvalue
2000-05-23 20:32:48 +00:00
peter
1a1ef88365
* fixed wrong code not detected due a bug in FPC
2000-05-23 20:32:11 +00:00
pierre
ea13526914
+ pavel's code integrated, but onyl inside
...
ifdef pavel_linklib !
2000-05-23 20:18:25 +00:00
pierre
bdf92e8b55
* Use stacksize param instead of gettempsize
2000-05-23 14:20:49 +00:00
pierre
66b7f21d77
* fix for bug #959
2000-05-23 14:15:44 +00:00
pierre
3694513937
Use a multiple of 4 to substract from stack pointer for locals and temps
2000-05-23 13:55:27 +00:00
Jonas Maebe
23c8f29811
* fixed bug in "subl $2,%esp; .. ; pushw mem" optimization when the
...
sub comes from setting up the stack frame instead of from aligning
esp (I hope)
2000-05-23 10:58:46 +00:00
pierre
0822332888
fix wrong handling of var para for size bug #961
2000-05-22 12:47:52 +00:00
peter
34e840268a
* fixed size of const parameters in asm readers
2000-05-18 17:05:15 +00:00
sg
f703a54099
* Updated to recently added messages
...
* Lots of typos and bugs fixed
2000-05-18 08:00:00 +00:00
peter
cae5842737
* removed wrong warning for library finding
2000-05-17 18:30:35 +00:00
peter
6029115a7d
* add support for loading of typed const strings with resourcestrings,
...
made the loading also a bit more generic
2000-05-17 17:10:06 +00:00
florian
42459e508a
* fixed my previous commit
2000-05-17 11:42:27 +00:00
pierre
d299af0815
+ add a warning if using ENTER instruction with linux target
2000-05-17 11:08:24 +00:00
pierre
3d2350d584
add a comment about ENTER and linux
2000-05-17 11:06:11 +00:00
pierre
536829e4bc
+ -CR option to enable check for object virtual method
2000-05-16 20:19:05 +00:00
florian
5c11706a27
* fixed a problem with case and negative labels if a linear list
...
was generated (fixes tests\test\testcase)
2000-05-16 18:56:04 +00:00
florian
0fb3ed4ad3
* fixed type conversion test for open arrays: the to and from fields where
...
exchanged which leads under certain circumstances to problems when
passing arrays of classes/class references as open array parameters
2000-05-16 16:01:03 +00:00
peter
ae9b86f982
* fixed calling of inherited methods from destructors
2000-05-15 19:30:27 +00:00
peter
2ea50df7a6
* fixed crash with resourcestring in const
2000-05-15 19:29:50 +00:00
pierre
5d093dc072
* add implicit args for FADDP
2000-05-15 14:11:45 +00:00
pierre
9e97eb9e76
* FADD without arg is alias of FADDP
2000-05-15 14:10:48 +00:00
pierre
24e5f16174
* FADD without operand translated into FADDP
2000-05-15 14:08:49 +00:00
pierre
04104f3b5f
+ calculate CRC value and check if consistant
2000-05-15 14:07:33 +00:00
pierre
a788f11833
Declare MsgCrcValue with cond EXTERN_MSG
2000-05-15 14:05:40 +00:00
pierre
18073d8424
+ FADD to FADDP conversion warning
...
+ MsgCrcValue added to msgidx.inc file
2000-05-15 14:02:31 +00:00
pierre
f63815853e
CRC stuff moved to CRC unit
2000-05-15 13:19:04 +00:00
pierre
1b45cfb51b
+ calculate a CRC value for enums
2000-05-15 13:14:48 +00:00
pierre
c57f884789
CRC calculation placed into a unit
2000-05-15 13:12:25 +00:00
florian
795a06b4f2
+ Int64/QWord stuff for array of const added
2000-05-14 18:48:24 +00:00
pierre
cff91a51a2
+ use of a dictionary object
...
for faster opcode searching in assembler readers
implemented by Kovacs Attila Zoltan
2000-05-12 21:57:02 +00:00
pierre
5f4ec1b1ff
* fix the FDIV FDIVR FSUB FSUBR and popping equivalent
...
simply by swapping from reverse to normal and vice-versa
when passing from one syntax to the other !
2000-05-12 21:26:22 +00:00
pierre
e5b1fd5620
+ interactive mode for translation
2000-05-12 15:03:44 +00:00
pierre
d9cd338b91
* some more translations
2000-05-12 15:00:05 +00:00
pierre
a1335d22ba
* updated + some more translations
2000-05-12 13:02:55 +00:00
pierre
7c324b13b2
* adapted to Delphi 3
2000-05-12 08:58:51 +00:00
pierre
f43fd3dc00
+ add a warning if the error level is different in the two files
...
+ force to keep the order of orgfile
2000-05-12 08:47:25 +00:00
michael
08788989a8
+ Corrected help messages
2000-05-12 07:59:18 +00:00
michael
34663b5725
+ All messages translated
2000-05-12 07:03:17 +00:00
pierre
a77b264bd0
* * get it to compile with Delphi by Kovacs Attila Zoltan
2000-05-12 05:55:04 +00:00
pierre
3c17f030b5
* Reset DosError in Exec reported by Kovacs Attila Zoltan
2000-05-12 05:51:43 +00:00
peter
5f179d94fb
* small fix for previous commit
2000-05-11 17:53:40 +00:00
peter
1d47da018e
* fixed check for overloaded operator with array and chararray check
2000-05-11 16:47:37 +00:00
pierre
e15480418d
* ordering bugs fixed
2000-05-11 13:37:37 +00:00
pierre
f86c9ec8e8
New utils to run Makefile running the compiler through GDB
2000-05-11 11:39:19 +00:00
pierre
61830584ec
* changed to compile with Delphi, reported by Kovacs Attila Zoltan
2000-05-11 09:59:40 +00:00
pierre
fddd96280d
* fixed several compare problems between longints and
...
const > $80000000 that are treated as int64 constanst
by Delphi reported by Kovacs Attila Zoltan
2000-05-11 09:56:20 +00:00
pierre
1bd418e467
* some DBX changes but it still does not work !
2000-05-11 09:40:11 +00:00
pierre
3697d3c985
* do not use upcase for strings, reported by Kovacs Attila Zoltan
2000-05-11 09:37:25 +00:00
pierre
3523aea209
* Delphi implementation by Kovacs Attila Zoltan
2000-05-11 09:36:22 +00:00
pierre
b8080d2b0f
* disbal all code using MemAvail for Delphi reported by Kovacs Attila Zoltan
2000-05-11 09:29:01 +00:00
pierre
e0328653f1
+ add a warning if a const string is longer than the
...
length of the string type
2000-05-11 09:15:12 +00:00
pierre
c25e1f17cc
* change tosinfo.shortname length, reported by Kovacs Attila Zoltan
2000-05-11 09:07:45 +00:00
florian
889e43db8a
* fixed some vmt problems, especially related to overloaded methods
...
in objects/classes
2000-05-11 06:53:48 +00:00
pierre
e112b16a51
* fix localswitch problem if compiling objpas
2000-05-11 06:52:37 +00:00
pierre
5f437d210d
* Delphi defines TP so that code compiles
...
sent by Kovacs Attila Zoltan
2000-05-10 19:22:51 +00:00
pierre
8c9f14abcd
* Use integer third arg for val in SetErrorFlags
...
to allow compilation with Delphi
reported by Kovacs Attila Zoltan
2000-05-10 19:20:23 +00:00
pierre
122f24022a
* op2strtable string length changed to 11
...
Thanks to Kovacs Attila Zoltan
this should be set by nasmconv utility !
2000-05-10 19:09:07 +00:00
peter
d9cef95ac7
* -Se<x> option extended to increase errorcount for
...
warning,notes or hints
2000-05-10 13:40:19 +00:00
pierre
365f0ebc81
* no warning nor error for pushl of segment register
2000-05-10 08:55:08 +00:00
pierre
495fd674a7
* add .byte 066h to force correct pushw %es
...
* handle push es as a pushl %es
2000-05-09 21:44:27 +00:00
pierre
1d982ffbf6
* fix problem when modifying several local switches in a row
2000-05-09 21:31:50 +00:00
florian
3cae2ee1a5
* fixed a problem when returning int64/qword from a function in -Or: in some
...
cases a wrong result was returned
2000-05-09 19:05:56 +00:00
pierre
51a1677da5
* calculate para_offset for interrupt procedures
2000-05-09 14:19:08 +00:00
pierre
d380bdfec1
* handle interrupt function correctly
2000-05-09 14:17:33 +00:00
pierre
6cba0a4927
* calling interrupt routine supported
2000-05-09 14:16:00 +00:00
pierre
35d59984b2
* also allow interrupt procvars
2000-05-09 14:15:03 +00:00
pierre
5ce612c33e
* fix for test/testpusw problem
2000-05-09 14:12:35 +00:00
pierre
f94c25e338
* Issue an error if opcode is not found
2000-05-09 11:56:25 +00:00
pierre
cd93ae3564
* some new messages
2000-05-09 10:58:09 +00:00
pierre
a1d9aa1ffe
add code to allow calling interrupt routines
2000-05-09 10:54:03 +00:00
pierre
7e5eab9f0c
Use i386nop.inc file
2000-05-09 10:52:08 +00:00
pierre
86e515e1a5
+ i386nop.inc now contains the number of opcodes
...
+ LCALL and LJMP added (untested)
2000-05-09 10:35:19 +00:00
pierre
d4df420802
+ generate also i386nop.inc containing the number of opcodes
2000-05-09 06:39:17 +00:00
peter
4b09b89588
* fixed reference parsing
2000-05-08 13:23:03 +00:00
peter
6d282de1d4
* fixed setting of output names with includefile
2000-05-08 13:18:09 +00:00
peter
325b9acfa2
* ansistrings are now default on for delphi mode, as most ppl expect
...
this
2000-05-04 20:46:17 +00:00
peter
1cd3fb9f4c
* don't write rst files if errors found
2000-05-04 20:43:33 +00:00
pierre
40f1da8f8e
* bug found by Kovacs Attila Zoltan corrected
2000-05-04 12:59:10 +00:00
pierre
2419be3520
* saveregisters now does not overwrite registers used as return value for functions
2000-05-04 09:29:31 +00:00
pierre
dfbb141d2b
+ easier debug when memory is lost
2000-05-03 16:31:22 +00:00
peter
934883569a
* also allow smartlinking for main programs
2000-05-03 16:11:57 +00:00
pierre
d6b3b9a9cd
* Use RestoreUnitsSyms to avoid wrong hints about unused units
...
* Avoid hints about unsused units if thet have a init or finalize code
2000-05-03 14:39:51 +00:00
pierre
eb59e0b11c
* fix for tests/test/testrang.pp bug
2000-05-03 14:36:57 +00:00
pierre
f4d925b2e1
* fix the unitsym chain
2000-05-03 14:34:05 +00:00
Jonas Maebe
d82a0e5958
* changed NOT to A_NOP
2000-05-01 11:04:49 +00:00
Jonas Maebe
44845ec919
* some fixes, does not yet compile
2000-05-01 11:03:32 +00:00
Jonas Maebe
6e83066171
* fixed incompatibility with range chcking code, -O2 and higher
...
now work correctly together with -Cr
2000-04-29 16:57:44 +00:00
Jonas Maebe
2eb73a055e
* destroyreg overwrote some memory if the reg was an FPU register
2000-04-29 16:56:45 +00:00
peter
f40500579d
* fixed offset support intel reader, the gotoffset variable was not
...
always reset
* moved check for local/para to be only used for varsym
2000-04-29 12:51:33 +00:00
peter
ad5c964217
* support asm block without assembler directive for -Sd
2000-04-29 12:50:14 +00:00
peter
10c46e7f4d
* rebuild
2000-04-29 12:49:46 +00:00
peter
d371c67332
* fixed long line for tp7
2000-04-29 12:49:30 +00:00
Jonas Maebe
3e11694e49
* nmem compiles again (at least for powerpc)
2000-04-29 09:01:06 +00:00
pierre
c4f4ac6ae2
* fix my last fix for other targets then win32
2000-04-28 08:53:47 +00:00
pierre
71cbe13810
* power to ** operator fixed
2000-04-27 11:35:03 +00:00
pierre
22a6677394
* fix for snapshot failue
...
* order_overloaded reintrocduced and adapted to operators
2000-04-27 10:06:04 +00:00
pierre
477eacdff2
* correct bugs for ts010026 and ts010029 in win32 mode
...
in copyvaluparas
+ use SHL instead of IMUL if constant is a power of 2 in copyvalueparas
2000-04-26 10:03:45 +00:00
pierre
3174b39bcc
* More changes for operator bug
...
Order_overloaded method removed because it conflicted with
new implementation where the defs are ordered
according to the unit loading order !
2000-04-26 08:54:18 +00:00
pierre
9560f264a3
+ sym_n_unit_not_used
2000-04-26 07:32:02 +00:00
pierre
dbdb7ee667
+ Hint about unused unit
...
* Testop bug fixed !!
Now the operators are only applied if the unit is explicitly loaded
2000-04-25 23:55:29 +00:00
Jonas Maebe
e96d0a3d6e
- disabled "string_var := string_var + ... " and "string_var + char_var"
...
optimizations (were only active with -dnewoptimizations) because of
several internal issues
2000-04-25 14:43:36 +00:00
peter
8818701433
* added enhancedraise define
2000-04-24 13:34:29 +00:00
peter
47ffdafd5e
* added some more fpuint instructions
2000-04-24 13:33:35 +00:00
peter
a9cff3c8c5
* removed unused vars
2000-04-24 12:48:37 +00:00
peter
015cca99cd
* fixed check for exporting var or proc
2000-04-24 12:47:27 +00:00
peter
013cfb9bc4
* made overloaded_operators local per unit, but it still doesn't work
...
correct
2000-04-24 12:45:44 +00:00
peter
ebbf2e578f
* backtraces for exceptions are now only generated from the place of the
...
exception
* frame is also pushed for exceptions
* raise statement enhanced with [,<frame>]
2000-04-24 11:11:50 +00:00
Jonas Maebe
613ceaa8fb
* only enable string_concat optimization with uncertain optimizations,
...
because it gives wrong results with "s := s + f()" where s is a
string and f() is a call to a function that modifies s
2000-04-23 21:04:09 +00:00
Jonas Maebe
a48a8031b8
* changed "mov reg1, reg2; mov reg2, y" optimization that caused
...
regalloc info to become invalid (it's still performed, but the
regalloc info stays valid now)
2000-04-23 14:56:36 +00:00
Jonas Maebe
43e023d0af
* use FPC_SHPRTSTR_CONCAT_LEN for -dnewoptimizations (temp)
...
* more precise reg deallocation when calling the above)
2000-04-23 09:28:19 +00:00
Jonas Maebe
941f20c29a
* cleaner register (de)allocation in secondfor (for optimizer)
2000-04-22 15:29:26 +00:00
Jonas Maebe
57e41f9053
* aasm.pas: pai_align instead of pai_align_abstract if cpu <> i386
...
+ systems.pas: info for macos/ppc
* new/cgobj.pas: compiles again without newst define
* new/powerpc/cgcpu: generate different entry/exit code depending on
whether target_os is MacOs or Linux
2000-04-22 14:25:03 +00:00
Jonas Maebe
490769db7d
+ special code for string + char, between -dnewoptimizations
2000-04-21 12:35:05 +00:00
pierre
7909818e21
* allow to view objects having the same name
2000-04-20 08:52:01 +00:00
pierre
a7de7fd247
* remove a memory leak with resourcestrings
2000-04-19 08:24:41 +00:00
peter
9e61c134bb
* fixed forward resolving with redefined types
2000-04-17 18:44:22 +00:00
Jonas Maebe
f648aaf986
* small regalloc fix
2000-04-16 16:46:43 +00:00
Jonas Maebe
0fd1e94dbb
* release register used in for-loop before end label (for better
...
optimizations)
2000-04-16 08:08:44 +00:00
pierre
3ed4ca8362
* some debug related updates
2000-04-14 12:49:11 +00:00
pierre
c0943fad01
* better inlined real sqr function
2000-04-14 12:33:40 +00:00
pierre
76f84bfc22
* setfiletime to both files in synchronize
2000-04-14 12:27:57 +00:00
pierre
4a51cd5763
avoid to reset operand size of opsize is S_NO
2000-04-14 12:26:33 +00:00