Commit Graph

50758 Commits

Author SHA1 Message Date
florian
f985971a62 * apply mov reg1, mem1; cmp x, mem1 to mov reg1, mem1; cmp x, reg1 also for test
git-svn-id: trunk@36138 -
2017-05-06 18:47:47 +00:00
florian
c7ba611bf9 * when explicitly casting a variable, it might be sufficient if it is const_regable
git-svn-id: trunk@36137 -
2017-05-06 18:47:45 +00:00
florian
52d40bb25b * spacing fixed
git-svn-id: trunk@36136 -
2017-05-06 18:47:43 +00:00
florian
b3f889e028 * -Ox options are incremental, so disable all optimizations first in case testing is run with -O4
git-svn-id: trunk@36135 -
2017-05-06 18:47:41 +00:00
pierre
ded1fb23a2 Improve stack trace output with -Cr option, contributed by Colin Western
git-svn-id: trunk@36134 -
2017-05-06 13:54:50 +00:00
maciej-izak
631d4a2d53 * Move global variable in_preproc_comp_expr into tscannerfile class.
git-svn-id: trunk@36133 -
2017-05-06 12:12:50 +00:00
Mattias Gaertner
d493980bb2 fcl-passrc: scanner: implemented macros directive
git-svn-id: trunk@36131 -
2017-05-06 07:41:40 +00:00
Mattias Gaertner
72bc6e2692 fcl-passrc: scanner: undefine on macros too
git-svn-id: trunk@36130 -
2017-05-06 07:27:33 +00:00
Mattias Gaertner
9390bfb485 fcl-passrc: reverted scanner Macros change
git-svn-id: trunk@36129 -
2017-05-06 07:27:03 +00:00
maciej-izak
6d1ad52dc5 * for symbols used in preprocessor expressions, we don't want to increase references count (for smaller final binaries). Partial fix for problem presented in mantis 31675. Preprocessor functions like declared() in uses section will work only for symbols declared in implicytly included modules (for example like for heaptrc by option -gh, see example/test tw31675.pp)
+ added tests

git-svn-id: trunk@36128 -
2017-05-05 22:27:07 +00:00
Mattias Gaertner
fef47e05e0 fcl-passrc: scanner: accelerated Macros
git-svn-id: trunk@36127 -
2017-05-05 22:21:18 +00:00
Mattias Gaertner
76734070c4 fcl-passrc: parser: clean up
git-svn-id: trunk@36126 -
2017-05-05 17:47:48 +00:00
Mattias Gaertner
a60f3b26e6 fcl-passrc: parser: fixed forbid type t=ansistring[]
git-svn-id: trunk@36125 -
2017-05-05 17:42:26 +00:00
nickysn
c28d533bb0 + support the cmpsd sse instruction in the at&t inline assembly reader
git-svn-id: trunk@36124 -
2017-05-05 15:46:47 +00:00
pierre
65fadcaa53 Disable threading and dynlibs features for msdos OS target by default
git-svn-id: trunk@36123 -
2017-05-05 15:03:47 +00:00
nickysn
98d2684368 + correctly support the sse2 version of the cmpsd x86 instruction, when writing
at&t style asm output

git-svn-id: trunk@36122 -
2017-05-05 15:01:38 +00:00
Mattias Gaertner
1d1c310876 fcl-passrc: IsValidIdent for fpc 3.0
git-svn-id: trunk@36121 -
2017-05-05 14:31:27 +00:00
pierre
eb378c1b94 Replace __tls_used for win64 by an alias of _tls_used
git-svn-id: trunk@36120 -
2017-05-05 14:27:04 +00:00
nickysn
b882ba5fd2 + also recognize sbb reg,reg as writing a new value in the register in TX86AsmOptimizer.RegLoadedWithNewValue
git-svn-id: trunk@36119 -
2017-05-05 14:24:13 +00:00
Mattias Gaertner
4305ffcfa3 pastojs: implemented dotted unit reference
git-svn-id: trunk@36118 -
2017-05-05 14:20:10 +00:00
Mattias Gaertner
96f88184ef fcl-passrc: resolver: fixed dotted runit reference
git-svn-id: trunk@36117 -
2017-05-05 14:19:21 +00:00
svenbarth
c552b2957a * implement support for 4 Byte UTF-8 codepoints that result in a surrogate pair for UTF-16
git-svn-id: trunk@36116 -
2017-05-05 14:03:57 +00:00
nickysn
af48d176ec + precise flag information for the ucomiss,ucomisd,vucomiss and vucomisd x86 instructions
git-svn-id: trunk@36115 -
2017-05-05 13:41:43 +00:00
nickysn
0e0e5c0caf + support the flags register and its subregisters in TX86AsmOptimizer.RegLoadedWithNewValue
git-svn-id: trunk@36114 -
2017-05-05 12:17:50 +00:00
pierre
d2d1794b40 Use HandleError instead of RunError in fpc_help_destructor, fpc_check_object and fpc_check_object_ext
git-svn-id: trunk@36113 -
2017-05-05 11:49:16 +00:00
nickysn
85fbbec319 + recognize xor reg,reg (same register twice) and sub reg,reg as writing a new
value to reg in TX86AsmOptimizer.RegLoadedWithNewValue

git-svn-id: trunk@36112 -
2017-05-05 11:01:34 +00:00
pierre
9ca8bd41ca Guard critical section procedure calls with ifdef FPC_HAS_FEATURE_THREADING
git-svn-id: trunk@36111 -
2017-05-05 09:33:18 +00:00
pierre
579b8dafd2 Do not call initunicodestringmanager if unicodestrings feature is disabled
git-svn-id: trunk@36110 -
2017-05-05 08:01:45 +00:00
pierre
7d0d41be4b Allow msdos RTL compilation with -Sfnodynlibs
git-svn-id: trunk@36108 -
2017-05-04 22:54:53 +00:00
pierre
78343902bf Allow objpas classes and sysutils units to compile with threading support disabled
git-svn-id: trunk@36107 -
2017-05-04 22:13:11 +00:00
pierre
651f8b17c1 Add minimum type/const for RTL compilation with threading support disabled
git-svn-id: trunk@36106 -
2017-05-04 22:12:17 +00:00
svenbarth
52ddce608f + add test for enumerating a set without ranges
git-svn-id: trunk@36105 -
2017-05-04 22:00:29 +00:00
svenbarth
c349151504 + add test for array constructors
git-svn-id: trunk@36104 -
2017-05-04 21:59:49 +00:00
svenbarth
1aa80f77cb - remove no longer needed global variable allow_array_constructor
git-svn-id: trunk@36103 -
2017-05-04 21:58:14 +00:00
svenbarth
6d512ddac7 * allow nested array constructors inside normal code blocks (body & except)
git-svn-id: trunk@36102 -
2017-05-04 21:56:33 +00:00
svenbarth
8f4ef91efb * tarrayconstructornode: force conversion to set if there's a range node in the tree
git-svn-id: trunk@36101 -
2017-05-04 21:55:12 +00:00
svenbarth
bdef19fd79 * indeed allow the conversion of array constructors to dynamic arrays
git-svn-id: trunk@36100 -
2017-05-04 21:54:27 +00:00
svenbarth
82b2d22ed6 * keep track of allow_array_constructor as part of the array constructor node
git-svn-id: trunk@36099 -
2017-05-04 21:52:21 +00:00
svenbarth
dfc23da06c * tassignmentnode.pass_typecheck: also allow "dynarray := []" in addition to "dynarray := nil"
git-svn-id: trunk@36098 -
2017-05-04 21:40:37 +00:00
svenbarth
c6f19b9888 * create_for_in_loop: if there's a choice between iterating an array and a set then prefer the set for backwards compatibility
git-svn-id: trunk@36097 -
2017-05-04 21:38:00 +00:00
svenbarth
a8b1d340c7 * create_for_in_loop: explicitely convert "for ... in [] do" to a nothing-node including an unreachable code warning (avoids code conversions that are for naught anyway)
git-svn-id: trunk@36096 -
2017-05-04 21:37:12 +00:00
svenbarth
df893b4a30 * implement a type conversion from an array constructor to a dynamic array
git-svn-id: trunk@36095 -
2017-05-04 21:34:38 +00:00
svenbarth
6e31a7ac83 + add an overload to arrayconstructor_to_set that allows it to be used without the passed in node being freed
git-svn-id: trunk@36094 -
2017-05-04 21:30:52 +00:00
svenbarth
cc5e3fdee9 + add utility function arrayconstructor_can_be_set which uses similar code to arrayconstructor_to_set to check whether an array constructor has even a chance to be converted to a set
git-svn-id: trunk@36093 -
2017-05-04 21:28:03 +00:00
pierre
6c43882cf5 Allow compilation with -Sfnothreading
git-svn-id: trunk@36092 -
2017-05-04 21:18:22 +00:00
svenbarth
b1c66dee9b + tarrayconstructornode: add utility method has_range_node to check whether the array constructor node tree contains any range node
git-svn-id: trunk@36091 -
2017-05-04 21:16:47 +00:00
svenbarth
4a2266ac44 * tarrayconstructornode.pass_typecheck: set elementdef of the arraydef only after the arrayoptions are changed
git-svn-id: trunk@36090 -
2017-05-04 21:03:33 +00:00
svenbarth
5f8135dd84 * tarraydef.setelementdef: don't call size for array constructors as they'll only have one once they're converted to dynamic arrays
git-svn-id: trunk@36089 -
2017-05-04 20:57:06 +00:00
joost
16b44b0719 * Allow longer package-names as fpmake-dependencies. Addins could have longer names
git-svn-id: trunk@36088 -
2017-05-04 20:21:27 +00:00
nickysn
aa93259463 + support the lahf,fstsw and fnstsw instructions in
TX86AsmOptimizer.RegLoadedWithNewValue

git-svn-id: trunk@36087 -
2017-05-04 16:02:01 +00:00