Commit Graph

4678 Commits

Author SHA1 Message Date
svenbarth
ec374c196e * Mantis #33840 is fixed by the fix for String type helpers
git-svn-id: trunk@39400 -
2018-07-06 15:57:17 +00:00
svenbarth
441fc2fab6 * also parse postfix operators after parsing a _STRING token (required for class functions on type helpers for String)
+ added tests

git-svn-id: trunk@39399 -
2018-07-06 15:57:11 +00:00
nickysn
0ea3570b96 * moved the interface and implementation parts of the go32v2 ports unit to
include files portsh.inc and ports.inc in the i386 rtl directory

git-svn-id: trunk@39397 -
2018-07-06 15:52:18 +00:00
nickysn
5318a04a5b * moved the interface and implementation parts of the i8086-msdos ports unit to
include files portsh.inc and ports.inc in the i8086 rtl directory

git-svn-id: trunk@39396 -
2018-07-06 15:41:44 +00:00
michael
fca7e26ed6 * Codepage-aware, allow unicode, refactoring of SQLDB code, add PG connector
git-svn-id: trunk@39381 -
2018-07-04 13:15:28 +00:00
nickysn
26a3ac3fd4 * moved the fpc_in_x86_*port* constants to the system unit in cpuinnr.inc in the
i8086, i386 and x86_64 rtl directories. This is done for consistency with
  other compiler internal function numbers (which are declared in innr.inc).

git-svn-id: trunk@39367 -
2018-07-03 21:30:43 +00:00
nickysn
fdc896ad0a + inline support for the x86 'in' and 'out' instructions. Currently only enabled
in the i8086-msdos 'ports' unit, but will be enabled on other targets (e.g.
  go32v2) in the future as well. 32-bit 'in' and 'out' not inlined on i8086, but
  will be on i386 and x86_64.

git-svn-id: trunk@39362 -
2018-07-03 17:01:42 +00:00
florian
b70fc52874 * patch by Ondrej Pokorny: the stored property modifier does not delete the inherited default value anymore, resolves #33564
git-svn-id: trunk@39357 -
2018-07-01 20:11:13 +00:00
florian
eb61923762 * patch by Ondrej Pokorny: The nodefault is now inherited from parent class, resolves #33563
git-svn-id: trunk@39356 -
2018-07-01 19:01:41 +00:00
florian
9af9658fa7 * first parameter of SetLength must be valid, as it is read
git-svn-id: trunk@39347 -
2018-06-30 11:25:43 +00:00
michael
d4f2a593d4 * Update from Maciej Izak, bug ID #33921
git-svn-id: trunk@39345 -
2018-06-29 20:43:21 +00:00
nickysn
e813a11e85 + support TP7-compatible @proc^ (as in FillChar(@proc^,...))
git-svn-id: trunk@39343 -
2018-06-29 14:16:35 +00:00
michael
bfc5d63fde * Add webidl2pas
git-svn-id: trunk@39293 -
2018-06-23 14:02:55 +00:00
michael
e655b9137b * webidl added
git-svn-id: trunk@39292 -
2018-06-23 13:57:45 +00:00
michael
6abf361557 * New common base for all pascal code generator units in fcl
git-svn-id: trunk@39290 -
2018-06-23 13:56:38 +00:00
svenbarth
a2b58b842b + add support for threadvars in records
+ added tests

git-svn-id: trunk@39289 -
2018-06-23 13:49:16 +00:00
svenbarth
c3ca96279a + add support for threadvars inside classes
+ added tests

git-svn-id: trunk@39288 -
2018-06-23 13:49:12 +00:00
svenbarth
0a45d7a774 + add a message that is used when a threadvar section is started inside a class or record without the "class"
specifier

git-svn-id: trunk@39286 -
2018-06-23 13:49:05 +00:00
svenbarth
ff407c56d9 * extend scanning of $modeswitch to support not only + and -, but also ON and OFF like other switches
+ added tests

git-svn-id: trunk@39280 -
2018-06-22 21:29:08 +00:00
svenbarth
7522a34a67 + add a message that can be used if an internal operator hides an existing operator overload
git-svn-id: trunk@39260 -
2018-06-20 19:53:50 +00:00
svenbarth
97acf24290 + add a new modeswitch ArrayOperators which is set by default in Delphi modes that enables the internal array operators (currently only "+")
git-svn-id: trunk@39259 -
2018-06-20 19:53:43 +00:00
svenbarth
9b45f58c0b + add flags that allow checking for overloads with isbinaryoverloaded() and isunaryoverloaded() without modifying the passed in node or even checking for normally non-overloadable operators
git-svn-id: trunk@39258 -
2018-06-20 19:53:34 +00:00
svenbarth
b75324a4f2 * move RTTI declarations to their own header file
git-svn-id: trunk@39248 -
2018-06-20 18:59:57 +00:00
florian
400861a907 * fixed TBits.NotBits, it is just an Xor operation, resolves #33706
git-svn-id: trunk@39243 -
2018-06-19 20:38:15 +00:00
svenbarth
c495f10b29 + added tests for Mantis #33839 which is now fixed with the recent changes
git-svn-id: trunk@39234 -
2018-06-15 13:49:33 +00:00
svenbarth
be0d51d64c * allow $MinEnumSize, $PackSet and $PackRecords to be used with $Push and $Pop
+ added tests

git-svn-id: trunk@39215 -
2018-06-12 19:40:45 +00:00
florian
21d785e41b * do not unroll loops if the counter variable is accessed outside the current scope
git-svn-id: trunk@39163 -
2018-06-03 15:12:48 +00:00
florian
3b3e33d863 + correctly set var state of addr and frame in raise statements, resolves #33818
git-svn-id: trunk@39162 -
2018-06-03 09:31:19 +00:00
nickysn
58be30a0fd + added test tasm27a.pp - similar to tasm27.pp, but for i386 and checked against Delphi
git-svn-id: trunk@39133 -
2018-05-28 15:34:46 +00:00
svenbarth
f077c7d950 + add support for Unicode code point constants > $FFFF; they are converted to a surrogate pair so they are in
fact a UnicodeString constant
+ added tests

git-svn-id: trunk@39123 -
2018-05-27 14:06:19 +00:00
svenbarth
199b5809a3 * optimize "dynarr := dynarr + [elem]" to "Insert(elem, dynarr, High(SizeInt))" and "dynarr := [elem] + dynarr" to "Insert(elem, dynarr, 0)" (we need to do this in the typecheck of taddnode as otherwise the array constructor is already converted)
+ added test
* adjusted test for Mantis #30463 as p1 triggers the optimization as well

git-svn-id: trunk@39119 -
2018-05-25 16:03:56 +00:00
svenbarth
b94a8c93a5 * test (for Mantis #5516; 3531 is the old bug ID) is valid now that we have dynamic array initializers
git-svn-id: trunk@39105 -
2018-05-24 19:56:35 +00:00
florian
8f472d5212 * check for more controll flow statements before doing loop unrolling
git-svn-id: trunk@39083 -
2018-05-21 15:46:02 +00:00
svenbarth
b7cc225149 * revert r39043 and r39045 which disallow static array constants inside dynamic constants for Delphi modes
git-svn-id: trunk@39078 -
2018-05-21 08:13:17 +00:00
svenbarth
dcdb151add * prohibit static array constants inside dynamic array constants for Delphi modes
+ added test

git-svn-id: trunk@39045 -
2018-05-20 11:50:27 +00:00
svenbarth
a29a6abc55 + add support for Delphi's dynamic array constant syntax ("[...]") in Delphi modes
git-svn-id: trunk@39042 -
2018-05-20 11:50:19 +00:00
svenbarth
08dd4e5445 + add support for dynamic array constants
+ added test

git-svn-id: trunk@39041 -
2018-05-20 11:50:16 +00:00
nickysn
b80642c384 + started implementing support for generating Microsoft CodeView debug
information. Only enabled on i8086 (for now). Does not do much yet, but
  hopefully, soon it'll start emitting line number information for i8086-msdos
  that is usable by DOS debuggers.

git-svn-id: trunk@39006 -
2018-05-16 15:25:33 +00:00
svenbarth
7990b2e3f3 * apply patch from J. Gareth Moreton to implement Int() for SSE (currently only used on Win64)
+ added test

git-svn-id: trunk@38993 -
2018-05-14 21:08:04 +00:00
marcus
7ec23ba0bd os4units: datatypes library unit
git-svn-id: trunk@38989 -
2018-05-13 19:46:12 +00:00
marcus
76e3b28297 arosunits: datatypes library unit
git-svn-id: trunk@38986 -
2018-05-13 14:25:24 +00:00
svenbarth
11f673a991 * also allow a ";"-separated list of namespaces for -FN
+ added test

git-svn-id: trunk@38939 -
2018-05-06 21:16:51 +00:00
michael
117f9f2c64 * Some improvements to lazreport converter, add diagnostic output, sample conversion program
git-svn-id: trunk@38927 -
2018-05-06 09:08:32 +00:00
michael
5c6918068e * Add lazreport stream converter, based on version of Christian Ulrich
git-svn-id: trunk@38925 -
2018-05-05 21:46:45 +00:00
svenbarth
79aab18b13 + add tests for default namespaces
git-svn-id: trunk@38921 -
2018-05-05 17:21:31 +00:00
svenbarth
abd893cac4 * fix for Mantis #33635: correctly working SSE2 based Frac() implementation by J. Gareth Moreton
+ added test

git-svn-id: trunk@38903 -
2018-05-04 15:44:40 +00:00
svenbarth
cfa373a8cf * fix case of string with ranges as labels
+ add test

git-svn-id: trunk@38860 -
2018-04-27 21:06:33 +00:00
svenbarth
d8dd8d9978 + add test for Mantis #33635 which was fixed by r38856
git-svn-id: trunk@38857 -
2018-04-27 15:23:46 +00:00
nickysn
16e0172021 + partial support for BP7 reference-like inline asm constants
git-svn-id: trunk@38850 -
2018-04-26 14:31:13 +00:00
nickysn
bbc364b245 * inline asm fix for accessing record variables when using the unitname (e.g.
'mov ax, unitname.varname.fieldname')

git-svn-id: trunk@38755 -
2018-04-12 16:35:21 +00:00
Jonas Maebe
dfb0869656 + test that should fail compilation and already fails (mantis #28355)
git-svn-id: trunk@38731 -
2018-04-10 19:34:22 +00:00
Jonas Maebe
1f9d518c57 * support for non-ASCII widechar constants (mantis #31605)
* also improved type checking for converting constant strings to integers
    in MacPas mode

git-svn-id: trunk@38730 -
2018-04-10 19:24:15 +00:00
Jonas Maebe
2eeda5d06f * added test that already works (mantis #33205)
git-svn-id: trunk@38729 -
2018-04-10 18:39:19 +00:00
Jonas Maebe
cb7730a423 * fixed execution order of implicit finalization and class destructors: first
the latter, then the former

git-svn-id: trunk@38716 -
2018-04-08 15:41:00 +00:00
nickysn
e1d0e7572e * i8086 TP7 compatibility fixes, related to obtaining procedure addresses:
o The @ and Addr() operators in TP or Delphi mode can now be applied to both
    near and far procedures and they always produce a CodePointer, regardless of
    the call model of the procedure.
  o Ofs() and Seg() can now also be applied to both near and far procedures.
  o The @ and Addr() operators in non-TP/Delphi modes, as well as the procedure
    name itself in TP/Delphi modes now can be applied to both near and far
    procedures and produce a near or a far procvar.

git-svn-id: trunk@38691 -
2018-04-05 15:09:12 +00:00
florian
c46cbc8411 * do not issue a hint of compiler procs are not inlined, resolves #33515
git-svn-id: trunk@38675 -
2018-04-03 21:39:47 +00:00
florian
25c5ee2fc3 * patch by J. Gareth Moreton to fix vectorcall (no effect) for linux,
resolves #33184 and #33542

git-svn-id: trunk@38663 -
2018-04-02 21:14:26 +00:00
Jonas Maebe
4da6039f40 * simplify empty-dynamic-string-to-pointer (non-p(wide)char) type conversions
so that they cannot result in "cmp const, const" at the assembler level
    (mantis #33548)

git-svn-id: trunk@38662 -
2018-04-02 18:35:00 +00:00
maciej-izak
64297e9c96 rtl-generics: new examples for THashSet collection
git-svn-id: trunk@38600 -
2018-03-22 23:10:09 +00:00
florian
b2825f2467 * scale constants if possible before currency multiplications to avoid overflows, resolves #33439
git-svn-id: trunk@38555 -
2018-03-17 21:33:07 +00:00
michael
62fe64dbb2 * Refactored report designer, so the report design file can be loaded using report data manager class without visual components. Default support for CSV, DBF, JSON, SQLDB
git-svn-id: trunk@38550 -
2018-03-17 16:45:45 +00:00
michael
5925568526 * Small example for CSV Dataset examples/showcsv.pp
git-svn-id: trunk@38542 -
2018-03-17 00:31:46 +00:00
florian
1bc322c218 * allow generic parameters as array range, resolves #33414
git-svn-id: trunk@38532 -
2018-03-15 21:45:23 +00:00
florian
3e7af376fe * fix issue #32539 and #20551 by some ugly hack
git-svn-id: trunk@38531 -
2018-03-15 20:37:50 +00:00
nickysn
602dd31a45 + added a warning for using cs/ds/es/ss segment overrides in inline assembly on
the x86_64 target

git-svn-id: trunk@38517 -
2018-03-13 14:41:21 +00:00
florian
a66016026b * handle bitpacked booleans more efficiently
git-svn-id: trunk@38509 -
2018-03-12 22:05:34 +00:00
nickysn
8ecc41186d + added an x86_64 version of the tasm23.pp test
git-svn-id: trunk@38505 -
2018-03-12 16:07:39 +00:00
nickysn
79477f04b0 + added test tasm23a.pp - an i386 version of tasm23.pp
git-svn-id: trunk@38504 -
2018-03-12 15:14:03 +00:00
pierre
640f7fbf94 Add test for small records for 1 to 8 bytes in size passing to procedures
git-svn-id: trunk@38503 -
2018-03-11 22:06:29 +00:00
Mattias Gaertner
526e82d6ca pastojs: test -Fu
git-svn-id: trunk@38483 -
2018-03-10 13:26:25 +00:00
maciej-izak
b0b119995b Big update for rtl-generics (aka Generics.Collections 2.0 - sync with https://github.com/maciej-izak/generics.collections). What is new:
* New collections:
    - TSortedList<T>
    - THashSet<T>
    - TAVLTreeMap<TKey, TValue>
    - TIndexedAVLTreeMap<TKey, TValue>
    - TAVLTree<T>
    - TIndexedAVLTree<T>
    - TSortedSet<T>
    - TSortedHashSet<T> (this one collection is especially interesting - optimized mix of dictionary and AVL tree)
* Ptr property for all collections
* New hash functions (the optimal hash function for collections is selected depending on environment)
* Bug fixes
* Tests

git-svn-id: trunk@38462 -
2018-03-09 00:01:18 +00:00
Károly Balogh
dbb91b5ef0 arm-netbsd: added platform define and dummy rtl files so the build passes for this platform. port not functional yet
git-svn-id: trunk@38412 -
2018-03-05 15:38:46 +00:00
florian
c230f81719 + support for <dyn. array>+<dyn. array>, resolves #30463
git-svn-id: trunk@38406 -
2018-03-04 16:12:43 +00:00
florian
61053ead34 + optimize is operator if used on sealed classes as proposed in #30097
git-svn-id: trunk@38387 -
2018-02-28 22:09:24 +00:00
florian
8c5606b41d + support mmx shifting
git-svn-id: trunk@38367 -
2018-02-27 21:40:12 +00:00
florian
e523865b07 * do not take the size of an open array, resolves #33230
git-svn-id: trunk@38366 -
2018-02-27 21:08:07 +00:00
nickysn
9c814e42c9 + support segment overrides inside references (e.g. [es:bx]) in the x86 intel
syntax inline asm reader

git-svn-id: trunk@38365 -
2018-02-27 17:29:46 +00:00
nickysn
45fdd7655d + support concatenation of references in x86 intel syntax inline asm:
[expr1][expr2] = [expr1+expr2]
  [expr1[expr2]] = [expr1+expr2]
  This is compatible with TP7's inline asm, and perhaps also with tasm/masm/delphi.

git-svn-id: trunk@38352 -
2018-02-26 17:17:47 +00:00
florian
72efa1aa50 + test (worked already)
git-svn-id: trunk@38349 -
2018-02-25 20:04:57 +00:00
florian
14cb60e479 * set an owner for open array defs being created in property declarations, resolves #25769
git-svn-id: trunk@38348 -
2018-02-25 17:36:34 +00:00
florian
7d35ced2d9 + support {$message info ...}, resolves #30654
+ test

git-svn-id: trunk@38346 -
2018-02-25 15:50:58 +00:00
florian
808131a7d6 + forgotten test
git-svn-id: trunk@38342 -
2018-02-25 15:34:11 +00:00
florian
8a2cf56d51 * fixed operator mod for floats as proposed by wp in #33167, resolves #33167
git-svn-id: trunk@38332 -
2018-02-24 18:23:06 +00:00
florian
73aef1402b + compiler writes a hint if a subroutine marked as inline cannot be/is not inlined, resolves #31717
+ test

git-svn-id: trunk@38330 -
2018-02-24 14:35:12 +00:00
florian
c671683e80 + patch by Denis Kozlov to add date/time tokens: %DATEYEAR%, %DATEMONTH%, %DATEDAY%, %TIMEHOUR%, %TIMEMINUTE%, %TIMESECOND%
+ test

git-svn-id: trunk@38329 -
2018-02-24 12:50:55 +00:00
Mattias Gaertner
80d8a73f05 pastojs: uses-in filename
git-svn-id: trunk@38324 -
2018-02-24 09:30:53 +00:00
Mattias Gaertner
e0b7be27ce pastojs: clean up
git-svn-id: trunk@38322 -
2018-02-24 09:25:53 +00:00
florian
d031545f88 * warn if the first constant element of a range set expression is greater than the second one, resolves #31936
git-svn-id: trunk@38321 -
2018-02-23 22:30:35 +00:00
florian
048c2c09fd * shorten interface wrapper names if needed, resolves #33069
git-svn-id: trunk@38319 -
2018-02-22 21:55:07 +00:00
florian
d0dd3bd74e * patch by Christo Crause to support ~ in att assembler
* allow -128 to 255 as a constant for instructions taking a byte sized constants (this is also what GNU As accepts), resolves #32039

git-svn-id: trunk@38316 -
2018-02-22 20:14:56 +00:00
Károly Balogh
467349c5ee atari: do not reference DOS unit explicitly as a dependency. it's now built by buildrtl. add an rtl.cfg for easy features override
git-svn-id: trunk@38310 -
2018-02-22 12:09:44 +00:00
florian
d16a22e42b * remove type case when loading constant in tattreader.BuildConstantOperand, resolves #33202, should not hurt other targets
git-svn-id: trunk@38307 -
2018-02-21 20:24:10 +00:00
nickysn
506d5fe30e + support bracketless references in the x86 intel syntax; ugly, but TP7 (and
perhaps also Delphi, TASM and MASM)-compatible

git-svn-id: trunk@38296 -
2018-02-20 17:18:09 +00:00
nickysn
8c99f3f70d + added tests tasm21a.pp and tasm21b.pp - same as tasm21.pp, but for i386 and x86_64
git-svn-id: trunk@38294 -
2018-02-20 16:06:29 +00:00
florian
8731854165 * test code for avr assembler by Christo Crause
* fix size of val field in TOprRec for avr, resolves #32946

git-svn-id: trunk@38291 -
2018-02-19 21:23:28 +00:00
nickysn
6c69e10613 + fix for using the function name (as the function's entry point address,
instead of the function result variable, which is already accessible, using
  the @Result directive) in inline asm

git-svn-id: trunk@38289 -
2018-02-19 18:04:00 +00:00
florian
4cb9ad7e01 * patch (indention adapted) by Christo Crause to check avr inline assembler, resolves also #32261
git-svn-id: trunk@38286 -
2018-02-18 21:58:04 +00:00
florian
ad4ad82908 * prevent crash on not yet supported attribute declarations, resolves #32075
git-svn-id: trunk@38272 -
2018-02-17 19:57:50 +00:00
florian
c3a0a4e252 + support fmrrd/fmdrr, resolves #32398
git-svn-id: trunk@38270 -
2018-02-17 16:32:11 +00:00
florian
4d63945b8d + handle also STATUS_FLOAT_MULTIPLE_FAULTS, resolves #32822
git-svn-id: trunk@38269 -
2018-02-17 16:16:16 +00:00
florian
b421ed0db1 * fixed TranslateMxcsr
+ correctly handle sse exceptions on i386, resolves #32671
+ test

git-svn-id: trunk@38268 -
2018-02-17 15:40:49 +00:00
florian
5eb59196d5 * remove sequential moves to the same register
+ test

git-svn-id: trunk@38267 -
2018-02-17 12:45:17 +00:00
florian
15bdce0a6a * new test
git-svn-id: trunk@38262 -
2018-02-16 21:21:25 +00:00
nickysn
f1b6be2d74 + only allocate a result variable for asm routines on i8086, if they are
returned in a parameter. This improves TP7 compatibility.

git-svn-id: trunk@38246 -
2018-02-15 17:51:03 +00:00
nickysn
b9e41330d4 + ensure the callee size paraloc info is available, when setting up a local var
or parameter in RAUtils.TOperand.SetupVar(). This fixes a compiler crash, when
  a parent parameter or local var is accessed (in certain ways) inside a nested
  inline asm routine.

git-svn-id: trunk@38236 -
2018-02-14 14:14:34 +00:00
nickysn
6c09394d35 + added test tasm18h.pp: same as tasm18.pp and tasm18g.pp, but for x86_64
git-svn-id: trunk@38232 -
2018-02-12 16:33:59 +00:00
nickysn
1857373c1b + added test tasm18g.pp, which is an i386 version of tasm18.pp
git-svn-id: trunk@38231 -
2018-02-12 16:14:21 +00:00
nickysn
34c9136283 + added tests, which check that 'test [reg+const*recordtype], 1' and
'test [reg+const*recordtype.recordfield], 1' produce an 'unable to determine
  operand size' error

git-svn-id: trunk@38229 -
2018-02-12 15:44:39 +00:00
florian
6400d612e8 + seg(<procvardef>) returns the segment stored in the procedure variable
git-svn-id: trunk@38216 -
2018-02-11 22:26:01 +00:00
florian
96ffb8abc9 + more tests
git-svn-id: trunk@38207 -
2018-02-11 17:50:40 +00:00
florian
31f78ea2b6 + implementation of the vectorcall calling convention by J. Gareth Moreton
+ tests

git-svn-id: trunk@38206 -
2018-02-11 17:50:37 +00:00
florian
e5ebc65cce * if si and di are allocated on i8086, using an index in references is not possible anymore
git-svn-id: trunk@38203 -
2018-02-11 15:54:37 +00:00
nickysn
a834e6d5c5 + added test tasm18b.pp, which is yet another for 3-byte records, which should
not set a valid operand size in the intel asm syntax mode. The difference
  with tasm18a.pp is, this one tests recordtype.a3bytefield, while tasm18a.pp
  tests a3byterecord directly.

git-svn-id: trunk@38199 -
2018-02-11 01:25:17 +00:00
nickysn
3e63f6bbae + added test tasm18a.pp, which tests that 3-byte records don't set a valid
operand size in the intel asm syntax mode. In other words, this is not valid:
    test [di + a3byterecordtype], 1

git-svn-id: trunk@38190 -
2018-02-10 16:27:48 +00:00
nickysn
cbf01fc284 + added test tasm18.pp, which tests instructions with an operand size set
implicitly by a recordtype.recordfield or recordtype constant; test is
  i8086-only and NORUN for now, but will be updated later, to actually test the
  generated code as well (and more tests will be added for i386 and x86_64 as
  well)

git-svn-id: trunk@38177 -
2018-02-09 17:54:47 +00:00
nickysn
391f85f828 + for TP7 compatibility, allow the '&', '$' and '?' characters in the x86 intel
syntax inline asm reader

git-svn-id: trunk@38167 -
2018-02-08 16:54:33 +00:00
nickysn
70cbb8c326 + added test for 'DW/DD OFFSET xx' on i8086
git-svn-id: trunk@38154 -
2018-02-07 16:20:22 +00:00
nickysn
d86e5d006c + added test for seg(x) and ofs(x) initialized typed constants in TP mode as well
+ added directive for using the FPC compiler mode in test tsegofs1.pp

git-svn-id: trunk@38135 -
2018-02-06 13:27:36 +00:00
florian
a29f968b3b * patch by Christo Crause: generate parameter location information in att assembler mode, resolves #32915
* forbid that parameters are subscribed in assembler, if they are references and take more than one register
+ test

git-svn-id: trunk@38125 -
2018-02-05 22:11:00 +00:00
svenbarth
640480272f * adjust TThread.Synchronize so that it also works correctly if the passed in thread instance is not the instance of the current thread
+ added test

git-svn-id: trunk@38124 -
2018-02-05 21:50:00 +00:00
nickysn
f351b6acc9 + added an i8086 test for typed constants, initialized with ofs(x) or seg(x)
git-svn-id: trunk@38122 -
2018-02-05 16:24:35 +00:00
nickysn
1f0e311fdd + allow segment override prefixes to be used as a standalone opcode in the intel
syntax inline assembler; this is TP7 compatible and allows compiling ugly
  code, such as 'seges; db $67,$66; lodsw'

git-svn-id: trunk@38096 -
2018-02-01 17:31:59 +00:00
florian
6b5a514148 * based on a patch by Christo Crause: in finalizeavrcode, ignore assembler breq statements taking an absolute value, resolves #32109
git-svn-id: trunk@38089 -
2018-01-31 18:38:33 +00:00
florian
0662b611ca * patch by Christo Crause: prevent that the compiler converts breq into jmp in inline assembler blocks, resolves #32949
git-svn-id: trunk@38088 -
2018-01-31 18:34:42 +00:00
florian
10516f21f8 * patch by Christo Crause to resolve #33098: AVR - LDS assembler instruction with absolute address gives compiler error
git-svn-id: trunk@38082 -
2018-01-30 20:22:42 +00:00
florian
796eb542be * LDD/STD need always an offset, resolves #33086
git-svn-id: trunk@38072 -
2018-01-28 21:06:13 +00:00
florian
10ea652493 * fix for #32576
+ test case

git-svn-id: trunk@38069 -
2018-01-28 13:26:49 +00:00
Mattias Gaertner
adbb998377 pastojs: started filer
git-svn-id: trunk@38049 -
2018-01-26 19:20:25 +00:00
florian
f61b074912 * (re)store alignment when doing a $push/$pop
git-svn-id: trunk@38020 -
2018-01-22 21:06:07 +00:00
svenbarth
1a301b5cce + add an echo example for Microsoft's kernel mode HTTP(S) server
git-svn-id: trunk@38015 -
2018-01-19 17:14:43 +00:00
svenbarth
7f001aca58 + add fcl-web implementation based on Microsoft's kernel mode HTTP(S) server
Things to do:
- allow multiple URL groups
- listen using multiple threads
- client side SSL certificates

git-svn-id: trunk@38013 -
2018-01-19 17:13:14 +00:00
svenbarth
e8c1b6af20 + add unit for Microsoft's http.h which interfaces with the kernel mode HTTP(S) server
git-svn-id: trunk@38012 -
2018-01-19 17:08:24 +00:00
svenbarth
22932493b9 * if the debug info of a parent def is considered as queued then ensure that it is indeed queued (if it should already be in the list then the duplicate entry would have the state written if it's checked and thus ignored)
+ added test

git-svn-id: trunk@37969 -
2018-01-14 16:46:10 +00:00
michael
f6a08a2c74 * Patch from Ondrej Pokorny to allow correct nodefault/stored for strings
git-svn-id: trunk@37954 -
2018-01-13 10:22:16 +00:00
florian
4a98fcb9d3 * patch by J. Gareth Moreton: reorganises the produced machine code for large unsigned divisions, resolves #32984
git-svn-id: trunk@37950 -
2018-01-12 22:03:52 +00:00
svenbarth
84632a39e0 + add a variant of the echo example based on FPC's HTTP server
git-svn-id: trunk@37948 -
2018-01-12 16:01:58 +00:00
florian
52aa40c3b0 * remove explicit cast to int64 to avoid an internalerror 200706094, resolves #33004
git-svn-id: trunk@37946 -
2018-01-11 21:02:39 +00:00
Károly Balogh
7c3702d3b0 palmos: make it easy to disable certain features, also disable some which are not needed now. hello, world! is about 6K with these settings, about 5K smaller than otherwise
git-svn-id: trunk@37937 -
2018-01-09 15:17:10 +00:00
Jonas Maebe
5f7d3e16f5 * increase comment nesting level when "(*" is followed by another '*'
(mantis #32019)

git-svn-id: trunk@37935 -
2018-01-07 21:05:50 +00:00
Jonas Maebe
a2217cedd5 * evaluate the lower and upper bounds of for-loops in ISO mode using the
ISO-defined range type, instead of using the type of the iteration
    variable (mantis #24318)

git-svn-id: trunk@37934 -
2018-01-07 18:51:53 +00:00
Jonas Maebe
0f0bdabb89 * if an absolute typeconversion changes the size, make the source not
regable. Normally this is done when the absolute typeconversion node
    gets created, but the size can sometimes still change afterwards (e.g.
    when removing superfluous 64 bit type conversions) (mantis #32160)

git-svn-id: trunk@37930 -
2018-01-07 15:37:23 +00:00
Jonas Maebe
53bef8d202 * fixed calculation of high parameter for arrays with non-integer bounds
(mantis #32645)

git-svn-id: trunk@37928 -
2018-01-07 13:01:14 +00:00
Jonas Maebe
ae087b92d7 * when creating a unique type alias for an object, class or interface,
create a child object/class/interface instead of a copy of the original.
    This fixes override/inheritance checks, and is also Delphi-compatible

git-svn-id: trunk@37927 -
2018-01-07 12:25:16 +00:00
florian
3ce7927096 * made the ide a package, so it can be build in parallel with the other packages, reasons:
- lowers build times
  - ide is not that important anymore than years before
  - other utils like pastojs are also located in the packages tree

git-svn-id: trunk@37926 -
2018-01-06 20:22:30 +00:00
Jonas Maebe
2919d97f91 * support asssigning @class.classmethod to a procvar of object in FPC modes
(mantis #14103)

git-svn-id: trunk@37925 -
2018-01-06 17:47:44 +00:00
Károly Balogh
256c7d4144 palmunits: added the rotating cube example, PalmOS edition. tested to work down to OS3.0
git-svn-id: trunk@37924 -
2018-01-06 15:53:59 +00:00
florian
81b2cf5d65 * slightly modified patch by J. Gareth Moreton: Optimization for 'mod' on i386/x86-64, resolves #32945
git-svn-id: trunk@37922 -
2018-01-06 14:58:28 +00:00
Jonas Maebe
1934285c20 * don't convert "int64(sint32) * cardinal_const" into a 32x32->64
multiplication (mantis #32046)

git-svn-id: trunk@37921 -
2018-01-06 13:44:03 +00:00
pierre
bdd3b4e695 * Move rtl.cfg content to system.cfg
+ New rtl.cfg containg non-feature options of former file (i8086 only)
  * Use system.cfg for system unit compilation
  + add @rtl.cfg option for i8086 CPU

git-svn-id: trunk@37920 -
2018-01-06 12:27:28 +00:00
florian
273045c295 * use the first element of the filrec._private array to track eof for typed files in iso mode (this will not hurt as iso mode does not specify the _private field), resolves #32938
git-svn-id: trunk@37915 -
2018-01-05 22:10:39 +00:00