Commit Graph

3133 Commits

Author SHA1 Message Date
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