Commit Graph

50676 Commits

Author SHA1 Message Date
Mattias Gaertner
17f6a4aacd fcl-passrc: pasanalyzer: fixed enumtype, mark typeinfo param as published
git-svn-id: trunk@35798 -
2017-04-15 10:11:41 +00:00
joost
75e8cbd187 * Added ability to pass options to other packages + test
git-svn-id: trunk@35797 -
2017-04-14 23:00:52 +00:00
joost
a799d6465b * Added test for source-dependencies
* Removed miced-case package-name. Better keep the basic tests simple

git-svn-id: trunk@35796 -
2017-04-14 20:24:45 +00:00
Mattias Gaertner
4f1755b174 pastojs:
- const aliasname = enumvalue
- RTTI
  - base types
  - unit $rtti
  - enum type tkEnumeration
  - set type tkSet
  - procedure type  tkProcVar, tkMethod
  - class type tkClass
    - fields,
    - methods,
    - properties  no params, no index, no defaultvalue
    - class forward
  - class-of type tkClassRef
  - dyn array type  tkDynArray
  - static array type  tkArray
  - record type  tkRecord
  - no typeinfo for local types
  - built-in function typeinfo(): Pointer/TTypeInfo/...
  - WPO skip not used typeinfo
- pointer
  - compare with and assign nil

git-svn-id: trunk@35795 -
2017-04-14 15:58:03 +00:00
Mattias Gaertner
3343a936d9 fcl-passrc: updated tests
git-svn-id: trunk@35794 -
2017-04-14 15:53:33 +00:00
Mattias Gaertner
a0482df6df fcl-passrc: useanalyzer: mark needed typeinfo
git-svn-id: trunk@35793 -
2017-04-14 15:52:31 +00:00
marco
5a8578cfaa * dword -> dword_ptr in sendmessagetimeout (3x), mantis #31661
git-svn-id: trunk@35792 -
2017-04-14 15:52:03 +00:00
Mattias Gaertner
a42fa05288 fcl-passrc: resolver: built-in function typeinfo
git-svn-id: trunk@35791 -
2017-04-14 15:51:47 +00:00
Mattias Gaertner
642ea28368 fcl-passrc: split procedure modifiers into proc modifiers and proctype modifiers, pmVarargs is now ptmVarargs
git-svn-id: trunk@35790 -
2017-04-14 15:50:56 +00:00
Mattias Gaertner
9f5906e115 fcl-js: added TJSArrayLiteral.AddElement TJSNewMemberExpression.AddArg TJSCallExpression.AddArg
git-svn-id: trunk@35789 -
2017-04-14 15:48:09 +00:00
joost
3d16dfbc0b * Set the global- and local-prefix from older config versions correctly
git-svn-id: trunk@35788 -
2017-04-13 18:53:24 +00:00
nickysn
b14f277e8f + use rtl helpers for 64-bit shl/shr/sar/rol/ror modify in place operations, on
platforms that don't have native 64-bit implementation of the corresponding
  64-bit shift/rotate operation

git-svn-id: trunk@35787 -
2017-04-13 15:24:32 +00:00
nickysn
a1ad705646 + allocate and free flags before and after the shl+rcl/shr+rcr/sar+rcr sequences
git-svn-id: trunk@35786 -
2017-04-13 11:58:51 +00:00
nickysn
cddb48bad4 + i386 implementation of a_op64_const_reg for OP_SHR,OP_SHL and OP_SAR; needed
by the in_shl/shr/sar_assign_x_y inline nodes

git-svn-id: trunk@35785 -
2017-04-13 11:54:19 +00:00
nickysn
6a710964f2 + i386 implementation of a_op64_const_ref for OP_SHR,OP_SHL and OP_SAR; needed
by the in_shl/shr/sar_assign_x_y inline nodes

git-svn-id: trunk@35784 -
2017-04-13 10:38:33 +00:00
nickysn
599b9e73de * determine correctly whether operand size is 32 or 64 bits for
sar/shl/shr/rol/ror in tcginlinenode.second_AndOrXorShiftRot_assign

git-svn-id: trunk@35783 -
2017-04-12 13:36:42 +00:00
Mattias Gaertner
d8dbeb10b9 fcl-passrc: no writeln, bug #31656
git-svn-id: trunk@35782 -
2017-04-12 13:13:14 +00:00
nickysn
b6d05dba9e * mark the sar/shl/shr/rol/ror_assign nodes as having side effects
git-svn-id: trunk@35781 -
2017-04-12 12:17:08 +00:00
nickysn
f514657e45 + implemented the sar/shl/shr/rol/ror inline modify-in-place nodes; the actual
optimization of "i:=i shl/shr k", etc statements is not performed yet

git-svn-id: trunk@35780 -
2017-04-12 00:41:15 +00:00
yury
252f9ef153 * pas2jni: Support for class references.
- Fixed inclusion of unneeded pointer types.

git-svn-id: trunk@35779 -
2017-04-11 18:34:58 +00:00
joost
13b73244b3 * Added tests for r35776 and r35777
git-svn-id: trunk@35778 -
2017-04-11 16:59:58 +00:00
joost
f38f4d637f * Handle directories that do no contain an installed package
git-svn-id: trunk@35777 -
2017-04-11 16:57:54 +00:00
joost
61739262c7 * Give a clear error when the source of a package is not available
git-svn-id: trunk@35776 -
2017-04-11 16:42:37 +00:00
joost
2aa623964e * Fix the location where the .cod-files are installed on unices.
git-svn-id: trunk@35775 -
2017-04-11 16:30:52 +00:00
nickysn
7b40bdaa6e + treat the new modify-in-place inline nodes as having side effects in
check_for_sideeffect()

git-svn-id: trunk@35774 -
2017-04-11 14:59:38 +00:00
nickysn
5bb77905cd * fixed the missing warnings for unused variables at -O3, when one of the new
modify-in-place inline nodes are used

git-svn-id: trunk@35773 -
2017-04-11 14:25:57 +00:00
nickysn
4697a653a4 + perform the "i:=i +/-/and/or/xor k" optimization when there are two typecasts
inserted. This makes the optimization work for more integer types.

git-svn-id: trunk@35772 -
2017-04-11 11:25:40 +00:00
joost
31bff45d19 * Test for r35770
git-svn-id: trunk@35771 -
2017-04-11 09:39:35 +00:00
joost
977a82b866 * Do not stop on invalid package-files, but show a warning + test
git-svn-id: trunk@35770 -
2017-04-10 22:06:24 +00:00
joost
a9d4b17638 * Solved possible AV
git-svn-id: trunk@35769 -
2017-04-10 21:13:44 +00:00
joost
e5be5bd460 * When no TestPath is given, use the default. The ExpandFileName avoided this
git-svn-id: trunk@35768 -
2017-04-10 21:00:51 +00:00
joost
d1d1c5a7bd Added notification to trace where packages are found
git-svn-id: trunk@35767 -
2017-04-10 20:58:36 +00:00
joost
7412276722 * Removed dead code
git-svn-id: trunk@35766 -
2017-04-10 20:54:02 +00:00
joost
1119207fe3 * Added test-framework for fppkg
git-svn-id: trunk@35765 -
2017-04-10 15:47:30 +00:00
nickysn
8d885ffde6 + write the inlinenumber of inline nodes in the node tree
git-svn-id: trunk@35764 -
2017-04-10 14:54:50 +00:00
nickysn
d8406c4227 + perform the "i:=-i" / "i:=not i" optimization even when there are typecasts
inserted; this makes the optimization work for all integer types

git-svn-id: trunk@35763 -
2017-04-10 14:06:19 +00:00
nickysn
98be270adb * fixed a memory leak in the "i:=-i" / "i:=not i" optimization
git-svn-id: trunk@35762 -
2017-04-10 13:27:29 +00:00
nickysn
876c0c5fd5 + added helper function are_equal_ints()
git-svn-id: trunk@35761 -
2017-04-10 13:22:50 +00:00
nickysn
e78f0aafcd - remove whitespace, was inserted by accident
git-svn-id: trunk@35760 -
2017-04-10 11:55:26 +00:00
joost
7b3275e2cd * Added missing slash in fppkg.cfg-template
git-svn-id: trunk@35759 -
2017-04-09 17:57:42 +00:00
nickysn
3616627d0b * at -O3 optimization level, convert "i:=not i" and "i:=-i" to the new
in_not_assign_x and in_neg_assign_x inline nodes, which may generate better
  code on certain cpus (such as x86)

git-svn-id: trunk@35758 -
2017-04-09 14:55:15 +00:00
nickysn
9187825e3a * fixed tnegnotassign1.pp on powerpc and other RISC cpus
git-svn-id: trunk@35757 -
2017-04-09 14:28:13 +00:00
joost
11b163ee18 * Resolved infinitive loop on an exception during the one-time-setup of a testsuite
git-svn-id: trunk@35756 -
2017-04-08 14:43:21 +00:00
joost
1888f8747f * Resolved some compiler-warnings
git-svn-id: trunk@35755 -
2017-04-07 22:43:41 +00:00
joost
cb402adf32 * Fixed mem-leaks
git-svn-id: trunk@35754 -
2017-04-07 22:41:02 +00:00
joost
39b780c3e3 * Fixed mem-leak
git-svn-id: trunk@35753 -
2017-04-07 22:23:29 +00:00
marco
f218076c8a * fix for #31645. Probably 16-bits mnemonics now really generate 16-bits opcodes,
so now really use 32-bit mnemonics for pushf/pusha and pop variants.

git-svn-id: trunk@35752 -
2017-04-07 22:08:58 +00:00
nickysn
c6680a32d7 * also support LOC_CREGISTER and LOC_CREFERENCE in in_not_assign_x and in_neg_assign_x
git-svn-id: trunk@35751 -
2017-04-07 21:33:56 +00:00
nickysn
6b43705437 * fixed compiler internal error when the in_not_assign_x/in_neg_assign_x are
applied to a LOC_REGISTER variable

git-svn-id: trunk@35750 -
2017-04-07 19:16:00 +00:00
nickysn
256dc546ac + implemented the in_neg_assign_x and in_not_assign_x inline nodes, which will
be used (TBD in a future commit) for optimizing x:=-x and x:=not x on CPUs
  that support performing these operations directly in memory (such as x86)

git-svn-id: trunk@35749 -
2017-04-07 16:02:40 +00:00