Commit Graph

3133 Commits

Author SHA1 Message Date
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
pierre
811f471334 * partial linklib change
I could not use Pavel's code because it broke the current way
    linklib is used, which is messy :(
  + add postw32 call if external linking on win32
2000-04-14 11:16:10 +00:00
pierre
498dd7873c renamed postw32.pp to fit into 8.3 limitation 2000-04-14 11:13:02 +00:00
pierre
2d8319c249 renamed to fit in 8.3 limitation 2000-04-14 11:10:46 +00:00
pierre
b655569229 * corrected version from Pavel 2000-04-14 11:06:42 +00:00
pierre
9e1ba97b6d * typo errors corrected 2000-04-14 08:29:36 +00:00
pierre
7a2993fe8b * close ppu file if errors 2000-04-14 08:15:05 +00:00
pierre
64f232f69f + external postprocessing by Pavel Ozerski 2000-04-13 13:44:52 +00:00
pierre
3eb3f07dd7 * fix the -g-l option 2000-04-12 12:42:28 +00:00
florian
1bb13781e0 * sometimes wrong range checking code for arrays was generated when
using register variables
2000-04-11 20:36:39 +00:00
peter
6ea5534991 * added extra ifdef to check if there are some objects else some
targets aren't added anymore
2000-04-11 15:34:47 +00:00
marco
26081ed999 * Simple script which specifies the right params for a try out BSD build 2000-04-11 13:06:25 +00:00
Jonas Maebe
fc11708a77 * changed the order of the tinschange type enum 2000-04-11 11:21:44 +00:00
Jonas Maebe
e4ceb46242 * fixed a serious bug in the CSE which (I think) only showed with
-dnewoptimizations when using multi-dimensional arrays with
    elements of a size different from 1, 2 or 4 (especially strings).
  * made the DFA/CSE more robust (much less dependent on specifics of the
    code generator)
2000-04-10 12:45:56 +00:00
Jonas Maebe
55988e6f55 * modified copyshortstring so it takes an extra paramter which allows it
to delete the sref itself (so the reg deallocations are put in the
    right place for the optimizer)
2000-04-10 12:23:18 +00:00
Jonas Maebe
944f9b3de1 * added ait_symbol_end to SkipInstr 2000-04-10 12:21:33 +00:00
pierre
ed95777843 * get -g-l to work 2000-04-10 11:36:19 +00:00
Jonas Maebe
6743c46a07 * or and lds/les/lfs/lgs/lss read operand 1
* movd/movq changed from ch_all to r_op1, w_op2
2000-04-10 10:09:32 +00:00
pierre
165df86632 * fix for bug #922 in copyvalueparas 2000-04-10 09:01:15 +00:00
michael
10b7a3ccbe * Fixed bug in readcomment that was dropping * characters 2000-04-08 20:18:53 +00:00
Jonas Maebe
cde0d7d084 * fixed concat_string optimization and enabled it when
-dnewoptimizations is used
2000-04-08 16:22:11 +00:00
peter
2eadddb7e6 * fixed pointer->array conversion when resulttype was already set 2000-04-08 09:30:01 +00:00
marco
2f7e162a8b * For BSD signals are off for now 2000-04-07 20:52:24 +00:00
peter
1f082db3ad * correctfldcw define added 2000-04-07 14:56:18 +00:00
pierre
d2aa336b2f * avoid bug #911, worng unused parameter hints 2000-04-06 11:28:17 +00:00
pierre
841f0d21c1 * bug in TOperand.SetSize corrected 2000-04-06 07:56:04 +00:00
pierre
cd4ba01892 * handle offset fixup
+ add source lines
  * no NEAR for opcodes that only support short jumps
2000-04-06 07:09:15 +00:00
pierre
8f1708b14a * handle offsetfixup 2000-04-06 07:05:57 +00:00
pierre
b1f00f942d + generate line stabs if cs_gdb_lineinfo is aktglobalswitches 2000-04-06 07:04:50 +00:00
pierre
7520cf9b6a + Use R FPUint suffix in table 2000-04-05 22:13:42 +00:00
pierre
38224e3cf6 * no unitdir automatically added if -n option present 2000-04-05 21:57:34 +00:00
pierre
c03c1f8af3 * set NOUSEEXCEPT to remove use of setjump/longjump 2000-04-05 21:18:04 +00:00
pierre
1a16b36498 * generate code accepted by nasm 2000-04-04 21:41:56 +00:00
pierre
d9fc5de9ac + accept nasmwin32 output 2000-04-04 15:05:03 +00:00
pierre
1f64423e43 * nasmwin32 is 9 chars long, idtxt changed accordingly 2000-04-04 14:18:15 +00:00
pierre
c45c6b14a3 + nasmwin32 for win32 object output with nasm assembler 2000-04-04 13:54:58 +00:00
pierre
67a0b6c79e + TOperand.SetCorrectSize virtual method added
to be able to change the suffix according to the instruction
    (FIADD word ptr w need a s as ATT suffix
    wheras FILD word ptr w need a w suffix :( )
2000-04-04 13:48:44 +00:00
pierre
5377e30ab7 + AttSufFPUint for integer fpu instructions 2000-04-04 13:45:20 +00:00
pierre
3dfae51aed + R suffix for integer FPU operations 2000-04-04 13:44:03 +00:00
florian
2a901bf527 * initialize/finalize_data checks if procinfo is assigned else
crashes happend at end of compiling if there were ansistrings in the
    interface/implementation part of units: it was the result of the fix
    of 701 :(
2000-04-03 20:51:22 +00:00
pierre
6800fa46bc * avoid cyclic overloaded list for operators 2000-04-03 14:50:05 +00:00
pierre
7f4168fb0a * fix for bug #909 2000-04-03 12:23:02 +00:00
florian
ff5b72e3bd * fixed another problem with readln(<floating point register variable>);
* the register allocator takes now care of necessary pushes/pops for
    readln/writeln
2000-04-02 18:30:11 +00:00
florian
f71ddb9e2f * readln(r); works now, if r is a fpu register variable 2000-04-02 17:47:47 +00:00
florian
3f9126f999 * fixed bug #903: the compiler gives now a nice message if it can't create
the .o file, (same for future .ar)
2000-04-02 15:22:17 +00:00
florian
7c75febd64 * enumerations with size 1 or 2 weren't handled corretly if they were register
variables: in fact they got 32 bit register assigned; fixed
2000-04-02 12:11:38 +00:00
florian
339d986a2a * bug #701 fixed: ansistrings in interface and implementation part of the units
are now finalized correctly even if there are no explicit initialization/
    finalization statements
2000-04-02 10:18:18 +00:00
florian
fcf5315f23 + constant procedure variables can have a @ in front:
const p : procedure = @p;
    til now only
       const p : procedure = p;
    was allowed
2000-04-02 09:12:51 +00:00
peter
836eafa712 * use arraydef.elesize instead of elementtype.def.size 2000-04-01 14:18:44 +00:00
peter
8550915222 * don't write suffix for fldcw 2000-04-01 14:18:03 +00:00
peter
0fccba3864 * arraydef.elesize returns 4 when strings are found in an openarray,
arrayconstructor. Since only the pointers to the strings are stored
2000-04-01 14:17:08 +00:00
peter
7c04f2ff09 * fixed rtti info for record 2000-04-01 11:44:56 +00:00
Tomas Hajny
b65e936773 * logfile appended if exists 2000-04-01 10:46:29 +00:00
Tomas Hajny
f295a8029b * .ao2 bug fixed 2000-04-01 10:45:14 +00:00
pierre
92e9d3bf83 * fix the handling of value parameters in cdecl function 2000-03-31 22:56:45 +00:00
pierre
8dc1494e52 * fix for problem in tbs0299 for 4 byte stack alignment 2000-03-28 22:31:46 +00:00
pierre
482820110c + add a warning if esi is base and index in object assembler code 2000-03-28 22:11:46 +00:00
pierre
a7331ce0eb * Object fields are simple offsets in TP/Delphi mode 2000-03-28 22:10:12 +00:00
pierre
ac98c4c444 * fix for bug #891 2000-03-28 21:14:18 +00:00
pierre
1d3629b598 * fix for bug #739 2000-03-27 21:51:19 +00:00
pierre
2931f94d33 * "segss" prefix in Intel is converted into "ss" in ATT
and vice-versa. Fixes web bug #892.
2000-03-27 21:18:54 +00:00
pierre
861a491bbd * fix bug #294 in a BP compatible way ie. hidding the function result 2000-03-27 21:15:34 +00:00
pierre
700f9ce852 * fix for bug #890 2000-03-27 11:57:22 +00:00
pierre
9c44048ad2 + add error if trying to use readln or writeln for files
or read or write on untyped files.
    Reset and rewrite are still incompatible with BP
    (reset(dat,1); is allowed for typed file !)
2000-03-27 09:42:48 +00:00
Jonas Maebe
d8d25ef6de + basic properties 2000-03-26 16:38:27 +00:00
Jonas Maebe
5fae5888e2 * frame_pointer = stackpointer instead of R_NO 2000-03-26 16:38:06 +00:00
Jonas Maebe
f3abe5e528 + use cpubase unit
- removed use of alpha unit
2000-03-26 16:37:36 +00:00
Jonas Maebe
a7e1271da1 * release the register used to hold the value of the case variable
at the end of the case
2000-03-26 11:33:49 +00:00
Jonas Maebe
6c09cba112 * some more allocRegBetween fixes (-al didn't function previously
if the compiler was compiled with -OG2p3r)
2000-03-26 10:58:47 +00:00
florian
f3ed1eaf5c * improved allocation rules for integer register variables 2000-03-26 10:50:04 +00:00
Jonas Maebe
a890c59e05 * fixed bug in regUsedAfterInstruction (it didn't convert the reg
to 32bit before checking)
  * result: make cycle now works with -OG3p3r!!!!
2000-03-26 08:46:52 +00:00
Jonas Maebe
3ec9514966 * fixed some things for -Or. Make cycle now works with -OG2p3r if
you use -Aas. There still a bug in popt386.pas that causes a
    problem with the binary writer, but I haven't found it yet
2000-03-25 19:05:47 +00:00
Jonas Maebe
c18d6589e4 * moved AllocRegBetween() from csopt386 to this unit because it's now
also used by popt386
2000-03-25 18:58:00 +00:00
Jonas Maebe
3555239e29 * remove dealloc/alloc of reg1 between "movl %reg1,%reg2;
movl %reg2,%reg1" when removing the second instruction (it
    confused the CSE and caused errors with -Or)
2000-03-25 18:57:02 +00:00
Jonas Maebe
34dd37729c * fix for -dnewoptimizations and -Or (never remove stores to regvars)
but make cycle with -OG2p3r still fails :(
2000-03-24 15:54:49 +00:00
pierre
578465bef0 * fix tf000008 bug 2000-03-23 22:17:51 +00:00
Jonas Maebe
f6a406c6e9 * real fix for web bug882 2000-03-23 16:29:32 +00:00
peter
d75bbf8b73 * fixed crash with inherited with varsym/propsym 2000-03-23 15:56:59 +00:00
peter
273373602f * $VERSION is now version_string
+ $FULLVERSION is now full_version_string
2000-03-23 15:35:47 +00:00
Jonas Maebe
82da57a765 * fix for webbug 886 2000-03-22 17:34:53 +00:00
Jonas Maebe
03939d1fb1 * fixed webbug 882 2000-03-22 15:41:10 +00:00
florian
2805167e6e * bug #294 fixed: parameters can have now the same name as the function/
procedure, this is compatible with TP/Delphi
2000-03-22 09:25:57 +00:00
pierre
0578c906ee fix for bug #312 2000-03-21 23:36:46 +00:00
peter
9132430e40 * only include crtbegin when linking to libc 2000-03-21 21:36:52 +00:00
peter
7a22d50859 * some more updates 2000-03-21 21:36:05 +00:00
peter
c236646caa * add OPT for optimizing compiler 2000-03-21 21:35:27 +00:00
florian
5925e8fb20 * fixed bug #881: for the include/exclude instruction sometimes wrong
code was generated
2000-03-21 16:24:43 +00:00
florian
872031518d * fixed bug #879: high and low take now any kind of expression 2000-03-21 09:12:40 +00:00
pierre
53d50a62a4 * probably a fix for bug #615 2000-03-20 16:04:05 +00:00
florian
814bee0cc6 * fixed <dword>/<dword>, <int64>/<int64> and <qword>/<qword> 2000-03-20 10:16:51 +00:00
florian
360f371c44 * catching of exceptions is switched off on all targets if the define
DEBUG is used
2000-03-20 09:37:51 +00:00
florian
431ec3bfe8 * using the directive DEBUG when compiling the compiler will include now
the lineinfo unit on all targets
2000-03-20 09:36:23 +00:00
florian
4ac9fc1812 * in delphi mode: method parameters can now have the same name as parameters 2000-03-20 09:34:33 +00:00
peter
86a9551dcb * some beginning 2000-03-19 18:46:50 +00:00
florian
fa207becc1 * not(b) if b is a register variable, didn't work, fixed 2000-03-19 15:20:22 +00:00
florian
9376275364 * bug #873 fixed
* some cleanup in objectdec
2000-03-19 14:56:38 +00:00
florian
9f57527c98 * crash when using exception classes without sysutils unit fixed 2000-03-19 14:17:05 +00:00
peter
03dcba2fda * fixed temp ansi handling within array constructor 2000-03-19 11:55:08 +00:00
peter
797267fde1 * protected member check for classes works 2000-03-19 11:22:21 +00:00
peter
98a50970e7 * check for unknown id in on exception 2000-03-19 11:16:44 +00:00
peter
ffab53c30f * tp7 fix 2000-03-19 08:17:36 +00:00
peter
c7cd8edaf2 * small order change for array of const which allows better optimization 2000-03-19 08:14:17 +00:00
Jonas Maebe
90bc5eb4be + added $maxfpuregisters 0 for compile() procedure 2000-03-18 15:05:33 +00:00
Jonas Maebe
ec01188f97 * moved a $maxfpuregisters directive a bit up because it was being
ignored
2000-03-18 15:01:19 +00:00
pierre
0f4e1e10e0 * fix for bug #807 2000-03-16 16:41:11 +00:00
pierre
080a34ce07 * avoid wrong ungetpersistanttemp 2000-03-16 15:18:13 +00:00
pierre
e0cc4f9bed + oppower 2000-03-16 15:13:03 +00:00
pierre
977081b2d7 assembler method code does not need ebp framepointer 2000-03-16 15:12:06 +00:00
pierre
33cc2a0a35 * correct the fixups for inlined assembler code 2000-03-16 15:10:25 +00:00
daniel
a511be87c4 * Changed names of procedures flags
*  Changed VMT generation
2000-03-16 12:52:47 +00:00
florian
2d0b954c56 * disk full runerror writes now a nice message 2000-03-16 10:29:06 +00:00
pierre
4177d64781 * fix for bug #848 (that still genrated wrong code)
+ better testing for variables used in assembler
    (gives an error if variable is not directly reachable !)
2000-03-15 23:09:58 +00:00
pierre
cadf4cc024 * destructor can have args in TP mode only (bug825 and 839) 2000-03-14 16:37:25 +00:00
pierre
e95573a025 + lineinfo for win32 with debug 2000-03-14 16:30:14 +00:00
pierre
34795ccd60 * - 1**4 = -1 fix 2000-03-14 15:50:19 +00:00
pierre
70263e1c6d * fix for bug #866 2000-03-14 15:05:18 +00:00
pierre
031c0b22a3 * DebuggerValue moved to fpsymbol unit 2000-03-14 15:04:19 +00:00
peter
9f1695f700 * ^m support also after a string 2000-03-13 21:21:57 +00:00
pierre
3527bd4fd0 * X was not found in TSortedSymbolCollection.LookUp 2000-03-13 20:28:12 +00:00
michael
34c8f49271 + Added switch to swicth on assertions. 2000-03-13 20:15:08 +00:00
michael
26c924229c + Added switch to swicth on assertions. 2000-03-13 20:06:59 +00:00
florian
60058ae960 * very small change to scanner ... 2000-03-12 17:53:16 +00:00
daniel
c02ecc3513 * Made check for message file TP compilable. 2000-03-12 08:24:45 +00:00
daniel
e72ff5f936 * Modification for new symtable 2000-03-12 08:24:03 +00:00
daniel
59cfa402c9 * Ported hcgdata to new symtable.
* Alignment code changed as suggested by Peter
  + Usage of my is operator replacement, is_object
2000-03-11 21:11:24 +00:00
pierre
8e3de2ef1c * generate allways symbol for stabs 2000-03-10 16:05:57 +00:00
pierre
7045afb894 * check that symbol is in object 2000-03-10 16:05:28 +00:00
pierre
24353efcb7 * rva relocation bug fixed 2000-03-10 09:15:54 +00:00
pierre
38ec9c22bb * dlltool is also needed if we use DefFile 2000-03-10 09:14:40 +00:00
florian
e31020b12c * initial release derieved from the ALPHA cpubase.pas, the
file still contains some ALPHA stuff
2000-03-09 20:28:00 +00:00
pierre
dd89e25cb2 * fix for the stab section size changes with smartlinking 2000-03-09 14:29:47 +00:00
pierre
a84bd72dde * fix a problem with smartlink and stabs 2000-03-09 10:07:18 +00:00
daniel
97a5b84098 + Added align_from_size function as suggested by Peter. 2000-03-08 15:39:45 +00:00
pierre
fadf943935 * more fixes for TSymbol 2000-03-08 12:25:29 +00:00
pierre
f05d1bb02d * Tsymbol and Ancestor fixes 2000-03-07 21:55:59 +00:00
peter
b02f4452ff * better error pos for overridden error 2000-03-06 15:57:42 +00:00
daniel
e08b17c010 * Removed a comment to fix gtk. 2000-03-02 13:12:37 +00:00
pierre
1606fbbef1 * fix for bug #848 2000-03-02 11:48:31 +00:00
carl
94e71486a7 + More information and suggestions 2000-03-02 03:22:16 +00:00
peter
3df7f51b0a * message files are check for amount of msgs found. If not correct a
line is written to stdout and switched to internal messages
2000-03-01 22:29:18 +00:00
peter
2af3a9059e * lowercase .INC -> .inc 2000-03-01 21:45:42 +00:00
florian
9573dc7006 * some new stuff for the new cg 2000-03-01 15:36:11 +00:00
pierre
51443d110f * fix for bug #840 2000-03-01 13:56:31 +00:00
pierre
16814c48ab * fix for bug #859 2000-03-01 13:20:33 +00:00
pierre
fe57fa3993 * fix for bug #855 2000-03-01 12:35:44 +00:00
daniel
145a9c682f * Some more work on the new symtable.
+ Symtable stack unit 'symstack' added.
2000-03-01 11:43:55 +00:00
pierre
16638c8b65 * fixes for locals in inlined procedures
fix for bug797
  + stabs generation for inlined paras and locals
2000-03-01 00:03:10 +00:00
pierre
35d59eeb52 Use $GOTO ON 2000-02-29 23:59:47 +00:00
pierre
13d1fb7192 Use $GOTO ON 2000-02-29 23:57:36 +00:00
pierre
4a5e85e38d * write source line again for inline procs 2000-02-29 23:56:49 +00:00
pierre
babef0ad6d + InlineStat and InlineEnd amrker added 2000-02-29 23:55:53 +00:00
pierre
6bad578fb6 * first bug with ORDERSOURCES corrected :( 2000-02-29 22:32:13 +00:00
pierre
431941d1ec + use $GOTO ON 2000-02-29 22:13:41 +00:00
pierre
97417dcf26 * ORDERSOURCES released 2000-02-29 21:58:31 +00:00
daniel
7ebb3f07ae * Modified "not aktpackrecords" as suggested by Jonas. 2000-02-28 17:40:15 +00:00
daniel
fb1a842118 * Current work of symtable integration committed. The symtable can be
activated by defining 'newst', but doesn't compile yet. Changes in type
  checking and oop are completed. What is left is to write a new
  symtablestack and adapt the parser to use it.
2000-02-28 17:23:56 +00:00
peter
9d5429188c * check for ld-so.2.0.* then no glibc21 is used, else glibc21 is used 2000-02-27 14:46:04 +00:00
peter
50a4b4b4db * if calling convention doesn't match don't print note about
different manglednames
2000-02-27 14:44:39 +00:00
peter
2ba0ebe607 * removed warnings/notes 2000-02-24 18:41:38 +00:00
peter
bcabe43e0a * moved to new/ 2000-02-24 18:40:42 +00:00
peter
d99fb799b3 * updated with updates from old compiler dir 2000-02-24 18:39:56 +00:00
florian
bd5719a93e + the expr for names and indizies of exports sections support now
every type of expressions which evalute to a constant
2000-02-23 23:06:39 +00:00
florian
642bf91b4c * fixed 819 2000-02-21 22:17:49 +00:00
michael
825ef57c11 Committed for Florian. 2000-02-21 08:45:26 +00:00
marco
8c8160bf0b * Put some call under Ifdef GDB, so that compiling without -dGDB works 2000-02-20 21:20:28 +00:00
florian
df41d1395c * newcg is compiling
* fixed the dup id problem reported by Paul Y.
2000-02-20 20:49:45 +00:00
Jonas Maebe
eff6322048 * translated assembler reader messages + some corrections 2000-02-20 14:51:53 +00:00
Jonas Maebe
fb5ac39a26 * fixed bug in -dnewoptizations (showed itself only if -Or was
used as well I think)
2000-02-19 13:50:29 +00:00
florian
8839b14aa6 * fixed one more internalerror 10 2000-02-19 10:12:47 +00:00
pierre
fa3766d893 * avoid LeText if no stabs info 2000-02-18 21:54:07 +00:00
florian
904bfac5b9 * fixed a bug in int64/qword handling was a quite ugly one 2000-02-18 21:25:48 +00:00
pierre
c6a47280b9 * fixes a stabs problem for functions
+ includes a stabs local var for with statements
    the name is with in lowercase followed by an index
    for nested with.
  + Withdebuglist added because the stabs declarations of local
    var are postponed to end of function.
2000-02-18 20:53:14 +00:00
florian
190ba4c78c * optimized ansistring compare with ''
* fixed 852
2000-02-18 16:13:28 +00:00
Jonas Maebe
374a30f3e6 * fixed crash when using undeclared variable in ord construct 2000-02-18 13:52:38 +00:00
pierre
f7ab5d514b DEBUG implies NOCATCH for go32v2 2000-02-18 12:34:43 +00:00
pierre
b3a9e650f2 * Reset file name to empty at end of code section 2000-02-18 12:31:07 +00:00
Jonas Maebe
1571d1666b * fixed crashing bug when trying to write an undefined fp var with
formatting parameters
2000-02-17 15:39:29 +00:00
florian
dfe879d12e * some updates for the newcg 2000-02-17 14:53:42 +00:00
florian
2449cd4148 * updated to use old firstpass 2000-02-17 14:48:36 +00:00
Jonas Maebe
aafacbb44b * -dreplacereg no logner tries to optimize "movl %reg1,%reg1" (which are
always marked as CanBeRemoved)
  + some comments in -dreplacereg code
  * small fix which could cause crash when optimizer is compiler with -dTP
2000-02-17 07:46:49 +00:00
florian
b2efa0f338 * disable FIXED data type per default 2000-02-15 14:36:45 +00:00
florian
85b946e6d4 * fixed another internalerror 2000-02-14 22:34:28 +00:00
marco
c23e9edb97 * Basic structures for new sethandling implemented. 2000-02-14 20:58:43 +00:00
florian
2b186c7222 * fixed set problem s:=[<word>]; 2000-02-14 18:12:50 +00:00
florian
2f623caf67 * fixed an internalerror with writeln
* fixed arrayconstructor_to_set to force the generation of better code
    and added a more strict type checking
2000-02-13 22:46:27 +00:00
Jonas Maebe
0ab87d5ed8 * modifications to make the compiler functional when compiled with
-Or
2000-02-13 14:21:50 +00:00
carl
938b005d15 * bugfixes in tokens using TP conditional 2000-02-12 23:53:18 +00:00
Jonas Maebe
958d6dacef * fix for imul optimization in popt386 (exclude top_ref as first
argument)
  * in csopt386: change "mov reg1,reg2; <several operations on reg2>;
    mov reg2,reg1" to "<several operations on reg1>" (-dnewopt...)
2000-02-12 19:28:56 +00:00
Jonas Maebe
0cbad4fe45 + change "mov reg1,reg2;imul x,reg2" to "imul x,reg1,reg2" in popt386
(-dnewoptimizations)
  * shl(d) and shr(d) are considered to have a hardcoded register if
    they use cl as shift count (since you can't replace them with
    another register) in csopt386 (also for -dnewoptimizations)
2000-02-12 14:10:14 +00:00
Jonas Maebe
bee612f94a * fixed edi allocation in allocRegBetween
* fixed bug I introduced yesterday, added comment to prevent it from
    happening again in the future
2000-02-12 10:54:18 +00:00
Jonas Maebe
674a208dbf + {$asmmode att} for people with -Rintel in their ppc386.cfg 2000-02-11 23:59:35 +00:00
Jonas Maebe
89abe234d9 * fixed crashing bug under Dos with -dnewoptimizations (found it,
John!). Don't understand why it didn't crash under Linux :(
2000-02-11 23:50:03 +00:00
michael
99cdd6795a Latest changes from Michail Baikov 2000-02-11 16:33:37 +00:00
pierre
12d4917565 * avoid stack overflow in tref.done (bug 846) 2000-02-11 13:53:49 +00:00
florian
05e486a068 * big update for exception handling code generation: possible mem holes
fixed, break/continue/exit should work always now as expected
2000-02-10 23:44:42 +00:00
Jonas Maebe
9e85007190 * fixed stupid typo! 2000-02-10 16:04:43 +00:00
peter
3385467467 * dont' check for ppl files as they aren't used atm. 2000-02-10 16:00:23 +00:00
Jonas Maebe
e558713f0c * fixed small bug introduced with my previous fix 2000-02-10 15:07:41 +00:00
Jonas Maebe
8a40388de3 * fixed bug due to lack of support for top_symbol operands 2000-02-10 14:57:13 +00:00
peter
5aec5872b6 * addpath fixed with list of paths when inserting at the beginning
* if exepath=currentdir then it's not inserted in path list
  * searchpaths in ppc386.cfg are now added at the beginning of the
    list instead of at the end. (commandline is not changed)
  * check paths before inserting in list
2000-02-10 11:45:48 +00:00
Jonas Maebe
88652eee6b * esi is never deallocated anymore in methods 2000-02-10 11:27:18 +00:00
Jonas Maebe
7ff7b4c2c3 * added regallocs for esi 2000-02-09 18:08:33 +00:00
Jonas Maebe
95f2c6f732 * added missing regalloc for ecx in range check code 2000-02-09 17:36:10 +00:00
peter
a2318ce5ec * regenerated 2000-02-09 14:29:22 +00:00
peter
4a4a24b6e8 * log truncated 2000-02-09 13:22:42 +00:00
peter
c93f83e22e * usage shows yyyy-mm-dd 2000-02-09 13:08:27 +00:00
peter
1612077d8d * -Xt option to link staticly against c libs 2000-02-09 10:35:48 +00:00
peter
119ebd56c6 * reset section back to code after localdata 2000-02-08 13:55:13 +00:00
peter
fe4d62cf91 * ppuclean target, which is used by for the ide compiling so a new
generated ppc386.exe can still be used as compiler
2000-02-08 00:10:53 +00:00
peter
2eb25f4422 * regenerated 2000-02-08 00:09:21 +00:00
peter
55537f904c * quick hack for fnstsww which is not supported under linux as 2000-02-07 17:51:20 +00:00
peter
85087cf8c2 * -gl option added 2000-02-07 12:19:26 +00:00
michael
af462205ba + Changed bash to sh 2000-02-07 11:52:26 +00:00
peter
f0efb42197 * -gl switch for auto lineinfo including 2000-02-06 17:20:52 +00:00
florian
f6f3a1a039 *** empty log message *** 2000-02-06 17:17:03 +00:00
peter
00cd43e466 * refer to prog manual instead of cws 2000-02-06 13:00:05 +00:00
florian
7ab03a6efc * for some strange reasons my fix regarding register variable
allocation was lost
2000-02-05 15:57:58 +00:00
florian
a44fb4a474 * fixed init table generation for classes and arrays 2000-02-05 14:33:32 +00:00
peter
7304829f53 * property check for assigning fixed for calln 2000-02-05 12:11:50 +00:00
florian
1081fc6d3b * some (small) problems with register saving fixed 2000-02-04 21:00:31 +00:00
florian
a0cc4f970b * an exception in a construcor calls now the destructor (this applies only
to classes)
2000-02-04 20:00:21 +00:00
Jonas Maebe
16e46c496c * moved call to resetusableregs to compile_proc_body (put it right before the
reset of the temp generator) so the optimizer can know which registers are
    regvars
2000-02-04 14:54:17 +00:00
pierre
9572b14dea + add pseudo local var parent_ebp for local procs 2000-02-04 14:29:57 +00:00
Jonas Maebe
245975562b * fpuloadstore optimizations are now done before and after the CSE 2000-02-04 13:53:04 +00:00
Jonas Maebe
4e361ef71f * better support for regvars (still needs a move of the call to the optimize
procedure to a place where resetusableregisters is not yet called to work)
  * small regallocation fixes for -dnewoptimizations
2000-02-04 13:52:17 +00:00
florian
26fc3fb886 * better register variable allocation in -Or mode 2000-02-04 08:47:10 +00:00
peter
c06f082765 * fixed smartlinking 2000-02-03 23:01:45 +00:00
peter
521b0a2672 * cargs must also increase pushedparasize else it won't be 'popped' 2000-02-01 12:54:20 +00:00
peter
49365d74ba * is_voidpointer 2000-02-01 09:44:03 +00:00
peter
6e93fdbae0 * allow funcret also as counter variable 2000-02-01 09:43:22 +00:00
peter
f387340dbc * allow class -> voidpointer for delphi mode 2000-02-01 09:41:27 +00:00
peter
4d0c25c096 * fixed default unit location for linux when fpcdir was not set 2000-01-31 15:55:42 +00:00
peter
bf32e168f9 * fixed dup rtti writing for classes 2000-01-30 23:29:06 +00:00
peter
706e0c4417 * fixed filepos when eof is read, it'll now stay on the eof position 2000-01-30 19:28:25 +00:00
florian
997ddf88f9 * virtual XXXX; support for objects, only if -dWITHDMT is defined 2000-01-28 23:17:53 +00:00
michael
88711c2e7f + Changed patch number to 15 2000-01-28 20:47:26 +00:00
Jonas Maebe
38b993f7dc * moved skipinstr from daopt386 to aasm
* fixed crashing bug with -dreplacereg in csopt386.pas
2000-01-28 15:15:31 +00:00
peter
dfca2834a9 * regenerated 2000-01-28 12:17:02 +00:00
peter
14170d7d11 * install now doesn't install symlink anymore
* symlink is installed by installsym
2000-01-28 12:13:38 +00:00
peter
51f8c5a754 * lineifno 2000-01-28 11:24:46 +00:00
florian
f27b77e491 *** empty log message *** 2000-01-28 10:37:08 +00:00
peter
80e64da3df * fixed fpu suffix parsing for att reader 2000-01-28 09:41:39 +00:00
florian
ce0f32a21e * bug #738 fixed 2000-01-27 16:31:40 +00:00
florian
567966baad * slighly improved code for -<qword> and -<int64> 2000-01-27 15:46:00 +00:00
peter
e7ce987525 * version 0.99.14 2000-01-27 11:29:15 +00:00
peter
0d63b79f38 * helpscreen updates 2000-01-27 09:58:59 +00:00
peter
16bcf1dd2c * regenerated 2000-01-26 21:19:49 +00:00
peter
298677e4aa * fixed pop_size included twice with clearstack 2000-01-26 15:03:59 +00:00
marco
4b25d85637 * $VERSION is now also substituted in -F paths (that have subst active) 2000-01-26 14:31:03 +00:00
peter
62df907953 * abstractprocdef.para_size needs alignment parameter
* secondcallparan gets para_alignment size instead of dword_align
2000-01-26 12:02:29 +00:00
peter
0750e58848 * unexport FPC_VERSION
* regenerate so RELEASE=1 doesn't set optimzier for 0.99.12
2000-01-25 13:51:41 +00:00
pierre
da01d99789 * Range check for int64 produces a warning only 2000-01-25 08:46:03 +00:00
florian
26f38e15e3 * internalerror 10 for inlined math functions fixed 2000-01-24 20:11:10 +00:00
florian
b2098c4de5 * some improvemenst to cmov support
* disabled excpetion frame generation in cosntructors temporarily
2000-01-24 12:17:22 +00:00
florian
332c7a568f * CMOV support in optimizer (in define USECMOV)
+ start of support of exceptions in constructors
2000-01-23 21:29:14 +00:00
peter
588b4489cc * fixed missing push esi for constructor calling 2000-01-23 18:50:07 +00:00
sg
de3a50306d * Fixed typo in line 1375 ("fpidr" instead of "fpcdir") 2000-01-23 18:20:50 +00:00
peter
39faeb7440 * better auto RTL dir detection 2000-01-23 16:36:37 +00:00
peter
8abfec4e7c * localbrowser loading of absolute fixed. It needed a symtablestack
which was not setup correctly
2000-01-23 16:35:31 +00:00
peter
f16647ede6 * fixed destructor parsing with preprocessor things
* support dipsoe(p,done())
  * fixed constructor message with dispose(p,<nonexist>)
2000-01-23 16:33:49 +00:00
peter
4216d26c2f * fixed wrong freemem size when loading message file 2000-01-23 16:32:08 +00:00
peter
058d4018a1 * fixed uninited asmsymbol.typ var 2000-01-23 16:31:38 +00:00
Jonas Maebe
04d18a2964 * fixed bug introduced by my regalloc fixed :( 2000-01-23 13:57:52 +00:00
florian
0138d666de * changed address for bugs/sugegstions etc to bugrep@freepascal.org 2000-01-23 12:24:48 +00:00
michael
587a967353 + Fixes from Jonas. 2000-01-23 11:11:36 +00:00
Jonas Maebe
02381105d6 + all code generator generated "mov reg1,reg2" instructions are now
attempted to be removed using the replacereg code
    (-dnewoptimizations)
  * small fixes to -dreplacereg code
2000-01-22 16:10:06 +00:00
Jonas Maebe
b15a98cfa4 * better handling of exit(func_result) (no release of register that
holds the function result added)
  * several other small improvements for reg allocation fixes
2000-01-22 16:08:06 +00:00
Jonas Maebe
d6bcb83f95 + change "lea x(reg),reg" to "add x,reg" (-dnewoptimizations)
* detection whether edi is used after instructions (since regalloc
    info for it is now available)
  * better regUsedAfterInstruction function
2000-01-22 16:05:15 +00:00
Jonas Maebe
a961e10de2 * fixed more regalloc bugs (for set adding and unsigned
multiplication)
2000-01-22 16:02:37 +00:00
Jonas Maebe
e5af12b684 * forgot to commit a procedure for -dlogsecondpass the last time 2000-01-22 15:58:12 +00:00
florian
98abf80f1f * updated German message file 2000-01-22 15:16:04 +00:00
florian
eb1715ded4 * fixed for the fix of bug #793
* fpu variables modified by nested subroutines aren't regable anymore
  * $maxfpuregisters doesn't modify anymore the behavior of a procedure before
2000-01-21 22:06:16 +00:00
Jonas Maebe
60d858c278 * regallocation fixes 2000-01-21 12:17:41 +00:00
Jonas Maebe
9c59eb8a12 + add info on entry/exit of secondpass procedure in assembler files, between
-dlogsecondpass
2000-01-21 12:16:53 +00:00
pierre
86058ed342 * bug fix for bug #802 2000-01-21 11:26:19 +00:00
daniel
2bf0189e2e * should work on linux also 2000-01-21 10:10:25 +00:00
peter
b4f654100d * ifdef'd my previous fix as it broken a make cycle sometimes 2000-01-21 00:46:47 +00:00
peter
c6c6c51c9d * fixed fldl where suffix would get S_L instead of S_FL 2000-01-20 23:35:01 +00:00
pierre
1eb30ec4e8 * bug #801 fixed 2000-01-20 12:29:02 +00:00
florian
9836bd406b * bug #793 fixed 2000-01-20 12:14:47 +00:00
daniel
4ad408eab3 * also support ; comments in cfg file 2000-01-20 10:36:44 +00:00
pierre
627683b64d * StoreBrowserCol changed to boolean function 2000-01-20 00:24:06 +00:00
pierre
08cb7daa9f * fix for GetShortName, now checks results from Win32 2000-01-20 00:23:03 +00:00
pierre
c449017899 * avoid startsec=sec_none 2000-01-20 00:21:49 +00:00
florian
c463447714 * empty records/objects would generate static data of size 0 which is optimized away, tai_datablock
checks now the size and sets it to a value > 0
2000-01-19 22:53:57 +00:00
florian
6c3bbb7915 * corrected wrong error message of a member of a class/object/classref wasn't found 2000-01-19 22:41:58 +00:00
peter
61e04d8e80 * regenerated 2000-01-18 20:58:37 +00:00
peter
206ae47ad5 * regenerate for win32 fix 2000-01-18 00:25:15 +00:00
peter
a58242957b * fixed interpret_envvar whcih crashed when the envvar was not set
* also warn if the envvar is empty (=not set)
2000-01-17 22:50:28 +00:00
peter
c888816ce9 * use env var again for win32 2000-01-16 22:24:19 +00:00
peter
25dda03cdc * renamed call_offset to para_offset 2000-01-16 22:17:11 +00:00
Jonas Maebe
094d7d1829 * changed "with object_type" construct because of bug in the
compiler
2000-01-16 14:15:33 +00:00
pierre
72cc83f234 + parsecmd supports "filename with spaces" for IDE 2000-01-14 15:33:15 +00:00
pierre
68e4d27435 * use ./ instead of . to look into startup dir 2000-01-14 14:40:37 +00:00
pierre
99d8f90aec + some warnings for wrong lines inside config files 2000-01-14 14:33:53 +00:00
pierre
170d305b21 * avoid searching of include file in start dir first 2000-01-14 14:28:40 +00:00
peter
23daf4bcac * version 0.99.14 2000-01-14 13:05:54 +00:00
peter
aadec7d674 * package generation fixes 2000-01-14 12:16:40 +00:00
peter
ffaf1b5adc * regenerated 2000-01-13 21:15:26 +00:00
peter
6b31a47ad8 * updates for new fpcmake features 2000-01-13 21:11:30 +00:00
Jonas Maebe
04a3db19c2 * moved deallocation of registers used in reference that points to string after
copyshortstring (this routine doesn't require extra regs)
2000-01-13 16:52:47 +00:00