florian
f4a29bb75d
* moved InstructionLoadsFromReg and RegReadByInstruction from TCpuAsmOptimizer (i386) to TX86AsmOptimizer
...
git-svn-id: trunk@36200 -
2017-05-13 09:58:25 +00:00
pierre
b7fab7d39c
Add -Wh command line option to enable HugeCode (equivalent of $F+)
...
for msdos memory models that support this.
Add message to document this new command line option.
git-svn-id: trunk@36199 -
2017-05-12 22:49:50 +00:00
joost
49d75902f6
* Cleanup build-files in case of an error + test
...
git-svn-id: trunk@36198 -
2017-05-12 20:50:05 +00:00
svenbarth
e9c40f5b24
+ correctly handle COMDAT sections in COFF files (at least as long as the COMDAT selection isn't IMAGE_COMDAT_SELECT_ASSOCIATIVE or IMAGE_COMDAT_SELECT_EXACT_MATCH), fixes the .refptr problems mentioned in Mantis #30614
...
git-svn-id: trunk@36197 -
2017-05-12 15:57:31 +00:00
svenbarth
b74b3b0047
+ placeholder function to check whether two tdynamicarray instances have the same contents (needs to be implemented for COMDAT selection with same content to work)
...
git-svn-id: trunk@36196 -
2017-05-12 15:52:07 +00:00
nickysn
a7ca75a4b6
* use current node's localswitches field for checking whether range and overflow
...
checking is on, when handling the inc/dec inline nodes, instead of using
current_settings.localswitches
* when creating inline nodes in the optloadmodifystore optimization pass, copy
localswitches from the node, that is being replaced, because otherwise,
localswitches is copied from current_settings.localswitches at the time the
new node is created, and that can already be in a different state, since
optloadmodifystore is performed in a separate pass, after the current
procedure has already been parsed and in this moment, it reflects the state
of localswitches after the end of the procedure.
* these two fixes fix a bug, where an internalerror 2017032701 can happen, when
compiling with -O3 code that turns on and off range/overflow checking in the
middle of a procedure.
git-svn-id: trunk@36195 -
2017-05-12 14:07:13 +00:00
svenbarth
c90fbe1bf0
* fix for Mantis #31795 : append a $ to internal functions init, finalize, init_implicit and finalize_implicit as their section names otherwise look the same as those of user declared functions with the same name
...
+ added test
git-svn-id: trunk@36194 -
2017-05-12 13:32:37 +00:00
svenbarth
23ec3db057
+ added test for Mantis #30498 which is working now that array constructors are supported :)
...
git-svn-id: trunk@36193 -
2017-05-12 12:57:49 +00:00
Mattias Gaertner
9bd0b55ca2
fcl-passrc: test for skip $error
...
git-svn-id: trunk@36192 -
2017-05-12 12:53:15 +00:00
nickysn
460dd1c10a
* remove the redundant equal typeconv, left over as an artifact after removing
...
the unnecessary widening of intermediary calculations to 64-bit. This allows,
among other things, the x:=x+k optimization to be applied in the case of
signed32:=signed32+unsigned32 types.
git-svn-id: trunk@36191 -
2017-05-12 11:40:06 +00:00
michael
603d54d0c2
* More fixes for bug ID #31719
...
git-svn-id: trunk@36190 -
2017-05-12 09:17:18 +00:00
michael
054d0bc89b
* Fix bug #31734
...
git-svn-id: trunk@36189 -
2017-05-12 09:06:58 +00:00
michael
a5b0f7f975
* Fix for bug ID #31735
...
git-svn-id: trunk@36188 -
2017-05-12 08:48:11 +00:00
michael
f85d44ae04
* TestArrayAccess test for bug ID #31735
...
git-svn-id: trunk@36187 -
2017-05-12 08:43:23 +00:00
michael
6371309843
* Fix bug ID #31801 , empty class var section
...
git-svn-id: trunk@36186 -
2017-05-12 08:36:02 +00:00
michael
313b316d78
* Fix bug #31800
...
git-svn-id: trunk@36185 -
2017-05-12 08:15:07 +00:00
Mattias Gaertner
2a0c83bb3c
fcl-passrc: skip unknown $if functions by default
...
git-svn-id: trunk@36184 -
2017-05-11 20:12:46 +00:00
Mattias Gaertner
071225ca59
fcl-passrc: treat $error as warning by default
...
git-svn-id: trunk@36183 -
2017-05-11 19:08:05 +00:00
Mattias Gaertner
9eb7248817
fcl-passrc: ignore unknown functions in directive conditions, issue #31799
...
git-svn-id: trunk@36182 -
2017-05-11 17:45:10 +00:00
michael
a5ae6778e3
* Fix bug #31720
...
git-svn-id: trunk@36181 -
2017-05-11 16:08:26 +00:00
nickysn
1529aee506
+ apply the "x:=k+x" / "x:=k [and/or/xor] x" optimization even when there are
...
two implicit type conversions, inserted by the compiler. This makes it work
for smaller ints also (e.g. int16 and int8 on 32-bit platforms, etc.)
git-svn-id: trunk@36180 -
2017-05-11 15:27:11 +00:00
michael
dbc9b7f8b4
* Fix Bug ID #31733
...
git-svn-id: trunk@36179 -
2017-05-11 15:13:56 +00:00
Mattias Gaertner
e783e54e8c
fcl-passrc: implemented $elseif
...
git-svn-id: trunk@36178 -
2017-05-11 14:18:13 +00:00
Mattias Gaertner
cbe98e75d8
fcl-passrc: $warning, $note, $hint
...
git-svn-id: trunk@36177 -
2017-05-11 11:07:25 +00:00
joost
1fba4f936b
* Avoid double parameters (paths) on compilation of fpmake-executables
...
git-svn-id: trunk@36176 -
2017-05-10 21:23:00 +00:00
svenbarth
5971e1327e
* fix for Mantis #31756 : have array constructors prefer open array parameters instead of dynamic array parameters for backwards compatibility
...
+ added test
git-svn-id: trunk@36175 -
2017-05-10 21:01:23 +00:00
nickysn
efc5e339d0
* use an enum instead of integer constants to represent inline numbers
...
* compinnr.inc include file converted to a unit
* inline number field size stored in ppu increased from byte to longint
* inlines in the parse tree (when written with the -vp option) now printed with
their enum name, instead of number
git-svn-id: trunk@36174 -
2017-05-10 14:41:43 +00:00
pierre
ac3b9ac979
Avoid placing COMPILER_UNITTARGETDIR in the prerequisite list of assmebler files,
...
as those directories are modified by any new file in that directory, which
lead to repeated (and useless) recompilation of assembler files on linux systems.
git-svn-id: trunk@36173 -
2017-05-10 13:06:39 +00:00
Mattias Gaertner
65d14ace38
pastojs: test invalid mode and modeswitch
...
git-svn-id: trunk@36172 -
2017-05-10 09:35:38 +00:00
Mattias Gaertner
2e80006c6d
fcl-passrc: check allowed modes, fixed po_KeepScannerError
...
git-svn-id: trunk@36171 -
2017-05-10 09:35:07 +00:00
marco
324ec4af58
* another sysctl fix. Original fixes were done in the assumption that the
...
sysctl param type change was merged. It wasn't. So from specific 3.0 versions
now all versions.
git-svn-id: trunk@36170 -
2017-05-10 09:09:59 +00:00
pierre
6416864997
Revert wrong patch, which lead to an endless loop on linux systems, as directories are modified by each file additions
...
git-svn-id: trunk@36169 -
2017-05-10 08:43:58 +00:00
maciej-izak
fa75f25fac
* Enabling crosscompiling from Windows towards Darwin. Patch from Alfred (mantis 31099). Thanks! :)
...
git-svn-id: trunk@36168 -
2017-05-10 07:53:43 +00:00
pierre
e6aa46f7f9
Add explicit dependency of gparmake and createlst executables to the units/FULL_TARGET subdirectory creation to avoid errors
...
git-svn-id: trunk@36167 -
2017-05-10 06:29:18 +00:00
florian
7b658f56dc
* compilation fixed after last cleanup
...
git-svn-id: trunk@36166 -
2017-05-09 20:06:36 +00:00
florian
b1dff29cbf
* removed unused units
...
git-svn-id: trunk@36165 -
2017-05-09 19:53:14 +00:00
florian
f93b784895
* make fullcycle for i8086 fixed
...
git-svn-id: trunk@36164 -
2017-05-09 19:53:06 +00:00
marco
b837f544de
* only rtl needed fix.
...
git-svn-id: trunk@36163 -
2017-05-09 17:10:42 +00:00
marco
818a64952c
* fix bootstrapping issue on freebsd x86_64
...
git-svn-id: trunk@36162 -
2017-05-09 17:07:44 +00:00
Mattias Gaertner
141238bb90
fcl-passrc: scanner property OnDirective, resourcestrings for IFOpt
...
git-svn-id: trunk@36161 -
2017-05-09 16:27:29 +00:00
Mattias Gaertner
de2aedade2
fcl-passrc: implemented $ifopt
...
git-svn-id: trunk@36160 -
2017-05-08 21:18:15 +00:00
florian
52d3756c26
* factored out OptPass1Movx and merged i386 and x86-64 version
...
git-svn-id: trunk@36159 -
2017-05-08 20:44:27 +00:00
florian
06c4c651fd
* factored out PrePeepholeOptSxx
...
+ x86-64 uses PrePeepholeOptSxx now as well
git-svn-id: trunk@36158 -
2017-05-08 20:44:24 +00:00
svenbarth
9fc420b546
- remove unused variable
...
git-svn-id: trunk@36157 -
2017-05-08 19:54:45 +00:00
Mattias Gaertner
f643d15078
pastojs: fixed typo
...
git-svn-id: trunk@36156 -
2017-05-08 19:20:21 +00:00
Mattias Gaertner
e3f525a109
fcl-passrc: scanner: change defines when switching modeswitches
...
git-svn-id: trunk@36155 -
2017-05-08 19:20:06 +00:00
Mattias Gaertner
b687247256
fcl-passrc: scanner: added property ReadOnlyModeSwitches
...
git-svn-id: trunk@36154 -
2017-05-08 12:22:48 +00:00
nickysn
504662826a
* fixed the rtl cpu ifdefs for the rol/ror/sar cpu support check
...
git-svn-id: trunk@36153 -
2017-05-08 10:16:15 +00:00
florian
74b338266d
* ifdef cmov optimization, as i8086 has no cpu_capabilities
...
git-svn-id: trunk@36150 -
2017-05-07 16:18:44 +00:00
florian
5c2c5d72a2
* use avx for copying data only on i386 for 8 byte chunks
...
git-svn-id: trunk@36149 -
2017-05-07 16:18:42 +00:00