Commit Graph

51541 Commits

Author SHA1 Message Date
michael
de469955b3 * Test statements removed
git-svn-id: trunk@36978 -
2017-08-20 19:04:03 +00:00
florian
4a54a88cca + implement tcg.a_load_cgparaloc_ref for un-even sizes and little endian systems as well
git-svn-id: trunk@36977 -
2017-08-20 18:40:58 +00:00
michael
f65a36685c * Fix resourcestring deps
git-svn-id: trunk@36976 -
2017-08-20 18:33:53 +00:00
svenbarth
6a95291eda * always clear the variant part of FData
git-svn-id: trunk@36975 -
2017-08-20 18:31:52 +00:00
svenbarth
3b27c39934 * allow making of a TValue out of a raw interface
git-svn-id: trunk@36974 -
2017-08-20 18:31:15 +00:00
svenbarth
2d226e5db5 * allow making of a TValue out of a record or object (TP style) value
git-svn-id: trunk@36973 -
2017-08-20 18:30:40 +00:00
svenbarth
762211dd06 * allow making of a TValue out of a Wide- or UnicodeString
git-svn-id: trunk@36972 -
2017-08-20 18:29:58 +00:00
svenbarth
48c76cd536 * allow making of a TValue of dynamic and static arrays
git-svn-id: trunk@36971 -
2017-08-20 18:29:26 +00:00
svenbarth
b6fa83fe92 + add TValue.GetArrayLength, TValue.GetArrayElement and TValue.SetArrayElement
git-svn-id: trunk@36970 -
2017-08-20 18:28:38 +00:00
svenbarth
9c0423b3a4 + add TValue.AsInterface to retrieve a COM style interface again
git-svn-id: trunk@36969 -
2017-08-20 18:27:49 +00:00
svenbarth
e2458c9803 + add support for making a TValue out of a COM interface
git-svn-id: trunk@36968 -
2017-08-20 18:27:11 +00:00
svenbarth
40f8b4a77c + since I accidentally committed the assignment operator overload implementations add their declarations as well...
git-svn-id: trunk@36967 -
2017-08-20 18:26:02 +00:00
svenbarth
66725ccfc7 + add TValue.GetReferenceToRawData
git-svn-id: trunk@36966 -
2017-08-20 18:24:59 +00:00
svenbarth
cd73a46313 + add TValue.DataSize property
git-svn-id: trunk@36965 -
2017-08-20 18:23:57 +00:00
svenbarth
ceb982930c * even though Delphi defines GetDataSize as LongInt (or more precisely Integer) we use SizeInt as that is what we allow for arrays, strings and memory allocations in general as well
git-svn-id: trunk@36964 -
2017-08-20 18:23:05 +00:00
svenbarth
95523157e5 * rework TValueDataIntImpl to work more as it does in Delphi (especially important for GetReferenceToRawData); note: the class avoids the use of an allocation in case it's a managed pointer type
git-svn-id: trunk@36963 -
2017-08-20 18:19:31 +00:00
michael
6672e77222 * Added fcl-report
git-svn-id: trunk@36962 -
2017-08-20 18:00:29 +00:00
florian
37a5716819 * reuse more sparc code for sparc64
git-svn-id: trunk@36961 -
2017-08-20 17:20:43 +00:00
florian
7f72c780d8 * cleanup
git-svn-id: trunk@36960 -
2017-08-20 17:20:42 +00:00
florian
9529416ba0 + sparc64 support for the fpc executable
git-svn-id: trunk@36959 -
2017-08-20 17:20:40 +00:00
florian
7f286eb54e + define cpudelayslot: set during compiler compilation for CPUs having branch instructions with delay slot (MIPS, SPARC)
git-svn-id: trunk@36958 -
2017-08-20 17:20:38 +00:00
florian
049d7884cd * take advantage of the fact that SRA reg1,x,reg2 sign extends to the upper 32 bit bits of a 64 bit register
git-svn-id: trunk@36957 -
2017-08-20 17:20:37 +00:00
florian
ec141a716b * SLAX and MULX are candidates for the OpMov2Mov optimization as well
git-svn-id: trunk@36956 -
2017-08-20 17:20:35 +00:00
florian
f18ddd6a54 + SLLXSRxXST2ST assembler optimization for SPARC64
git-svn-id: trunk@36955 -
2017-08-20 17:20:33 +00:00
florian
265eae2cc1 + DebugMsg for SPARC assembler optimizer
git-svn-id: trunk@36954 -
2017-08-20 17:20:32 +00:00
florian
dba1761a76 + tcgx86.a_load_reg_ref cuts data if the ref. size is smaller than the reg. size
git-svn-id: trunk@36953 -
2017-08-20 16:45:02 +00:00
florian
a53d6bd6bd * pass the correct size to a_load_cgparaloc_ref in gen_load_cgpara_loc to avoid to overwrite adjacent data
git-svn-id: trunk@36952 -
2017-08-20 15:22:01 +00:00
florian
43b017bde0 * tcg.a_load_cgparaloc_ref checks the size of the ref exactly to avoid overwriting of adjacent data
git-svn-id: trunk@36951 -
2017-08-20 15:21:59 +00:00
florian
9b3e0a80df * a_loadfpu_ref_cgpara uses g_concatcopy instead of a_load_ref_ref
git-svn-id: trunk@36950 -
2017-08-20 15:21:57 +00:00
florian
09d99a6009 * sparc64 does not generate a unimp instruction if a parameter is returned in a memory location
git-svn-id: trunk@36949 -
2017-08-20 15:21:55 +00:00
florian
4988337e6f * correctly set std_param_align for sparc64
git-svn-id: trunk@36948 -
2017-08-20 15:21:54 +00:00
florian
9c3f5db022 * split create_paraloc_info_intern for sparc32 and sparc64
* fixed several sparc64 calling convention issues

git-svn-id: trunk@36947 -
2017-08-20 15:21:51 +00:00
florian
50fab14389 * TIOCtlRequest is 64 bit on sparc64
git-svn-id: trunk@36946 -
2017-08-20 15:21:50 +00:00
florian
0caccdc238 * fix range check error
git-svn-id: trunk@36945 -
2017-08-20 15:21:48 +00:00
florian
b948a0738c * unified internalerror
* cosmetics

git-svn-id: trunk@36944 -
2017-08-20 15:21:46 +00:00
svenbarth
50f3479f64 + add test for the DynArray* functions (currently only DynArraySize() and DynArrayIndex() are tested)
git-svn-id: trunk@36943 -
2017-08-20 15:16:16 +00:00
svenbarth
c45f738081 * fix DynArrayIndex(): as the last typeinfo entry is no longer a dynamic array the elSize needs to be remembered
git-svn-id: trunk@36942 -
2017-08-20 15:15:25 +00:00
marcus
9291fb1eed Arosunits: Fixed CliInit() entry
git-svn-id: trunk@36941 -
2017-08-19 19:23:48 +00:00
svenbarth
b478ae031a - remove %NORUN flag (remnant of copy pasting the test)
git-svn-id: trunk@36940 -
2017-08-18 15:32:28 +00:00
svenbarth
1fe6404760 * a touch more inlining
git-svn-id: trunk@36939 -
2017-08-18 15:30:33 +00:00
svenbarth
324e63b5d3 * a bit of language consolidation: "type helper" can now be used for records and classes as well
git-svn-id: trunk@36938 -
2017-08-18 15:29:19 +00:00
svenbarth
b6a3d66224 * adjust check for non-static class methods in class helpers in so far that only classes allow such methods (interfaces and objects would not either)
git-svn-id: trunk@36937 -
2017-08-18 15:27:47 +00:00
svenbarth
eef06e9bc6 * move the check whether a subclassed type helper extends a suitable subtype of the parent's extended type to a nested procedure
git-svn-id: trunk@36936 -
2017-08-18 15:25:53 +00:00
svenbarth
d8ce141e2c * fix program name
git-svn-id: trunk@36935 -
2017-08-18 14:13:59 +00:00
maciej-izak
fff81bea64 * fix test run in Delphi: new Delphi (probably since XE7) has bug for method pointer which is considered as managed. Older Delphi versions are ok in this matter.
git-svn-id: trunk@36931 -
2017-08-17 21:45:55 +00:00
nickysn
b41762d1bf + perform the optimization in tmoddivnode.firstoptimize also for div/mod by
negative powers of 2 as well

git-svn-id: trunk@36930 -
2017-08-17 15:56:20 +00:00
nickysn
e47a0599a5 * update revision.inc
git-svn-id: trunk@36929 -
2017-08-17 15:20:11 +00:00
nickysn
910e1eccc8 * set the bit mask, used for modulus by power-of-2 in a way, that is independent
from the sign of the divisor (so that negative powers of 2 can be supported as
  well in the future)

git-svn-id: trunk@36928 -
2017-08-17 15:19:37 +00:00
Mattias Gaertner
92510ebe08 fcl-passrc: resolver: fixed reading constant $8000000000000000
git-svn-id: trunk@36927 -
2017-08-16 10:30:34 +00:00
Mattias Gaertner
0ddf135404 fcl-passrc: resolver: fixed [][]
git-svn-id: trunk@36926 -
2017-08-16 10:29:32 +00:00