Commit Graph

51567 Commits

Author SHA1 Message Date
nickysn
aa415bfc6b + optimized division by negative power of 2 constants in the i8086 code
generator as well

git-svn-id: trunk@37004 -
2017-08-21 11:56:11 +00:00
nickysn
6634141bf4 + generate better code for division by negative power of 2 constants in the x86
(i386 and x86_64) code generator (same as the division by a positive power of
  2, followed by a NEG instruction, to invert the sign of the result; previously
  the code generator generated an IMUL instruction with a magic constant,
  followed by shift; the new code sequence should be both shorter and faster)

git-svn-id: trunk@37003 -
2017-08-21 11:35:20 +00:00
florian
99ce914a61 * fix tcg.a_load_cgparaloc_ref for ref. sizes of 7 on little endian systems
git-svn-id: trunk@37002 -
2017-08-21 09:08:02 +00:00
michael
608aad5dd3 * Remove targets go32 and nativent, missing syncobjs unit for those platforms (bug ID 32305)
git-svn-id: trunk@37001 -
2017-08-21 06:49:38 +00:00
michael
6513755e2e * Fix from Michl to fix bug ID #32304
git-svn-id: trunk@37000 -
2017-08-21 06:42:35 +00:00
michael
291cd08d72 * Remove wrong (old) dependency
git-svn-id: trunk@36999 -
2017-08-21 06:32:37 +00:00
florian
b8354b9b60 * fix trgcpu.do_spill_replace for sparc64
git-svn-id: trunk@36998 -
2017-08-20 20:35:10 +00:00
florian
08fd0b1c5c * fix jump. tables for sparc64
git-svn-id: trunk@36997 -
2017-08-20 20:35:08 +00:00
florian
c8e448345a * return correct reg_cgsize for int. registers on sparc64
git-svn-id: trunk@36996 -
2017-08-20 20:35:06 +00:00
svenbarth
eed63eed5c * document %CONFIGFILE option in ReadMe
git-svn-id: trunk@36995 -
2017-08-20 20:26:38 +00:00
svenbarth
0f484eb032 * change from SimpleTestRunner to ConsoleTestRunner and specify CONFIGFILE flag for the testsuite
git-svn-id: trunk@36994 -
2017-08-20 20:25:02 +00:00
svenbarth
bd6b4b97a7 + add default config file for FPCUnit ConsoleTestRunner
git-svn-id: trunk@36993 -
2017-08-20 20:24:21 +00:00
svenbarth
c7df4d3d2f * implement support for copying a central, pre-created configuration file for a test
git-svn-id: trunk@36992 -
2017-08-20 20:23:50 +00:00
svenbarth
292dff2e8c + add test for TValue.DataSize
git-svn-id: trunk@36991 -
2017-08-20 19:50:49 +00:00
svenbarth
a8167f897d * allow making a TValue with a pointer
git-svn-id: trunk@36990 -
2017-08-20 19:50:19 +00:00
svenbarth
e74034dc34 * allow making a TValue with a procedure/function or method variable
git-svn-id: trunk@36989 -
2017-08-20 19:50:00 +00:00
svenbarth
9dff6043d9 * correctly handle DataSize for ShortString
git-svn-id: trunk@36988 -
2017-08-20 19:49:14 +00:00
svenbarth
c74afe6824 * expand test cases
git-svn-id: trunk@36987 -
2017-08-20 19:21:48 +00:00
svenbarth
00757ec79f + add AsInt64 and AsUInt64
git-svn-id: trunk@36986 -
2017-08-20 19:21:05 +00:00
svenbarth
5f116c4cec * empty class and object instance seems to be handled a bit different
git-svn-id: trunk@36985 -
2017-08-20 19:20:42 +00:00
svenbarth
ae6352611f * correctly handle IsEmpty if Nil had been passed to Make
git-svn-id: trunk@36984 -
2017-08-20 19:19:41 +00:00
svenbarth
a03b9d0fc4 * correctly handle AsString if Nil had been passed to Make
git-svn-id: trunk@36983 -
2017-08-20 19:19:07 +00:00
michael
31f5836e06 * Added fcl-db as dependency
git-svn-id: trunk@36982 -
2017-08-20 19:14:08 +00:00
svenbarth
0387df3228 * allow the buffer passed to Make() to be Nil
git-svn-id: trunk@36981 -
2017-08-20 19:08:57 +00:00
svenbarth
bd74f9af64 * also initialize variant part in Empty function
git-svn-id: trunk@36980 -
2017-08-20 19:08:27 +00:00
svenbarth
3cb8cb293d * correctly raise exception
git-svn-id: trunk@36979 -
2017-08-20 19:07:55 +00:00
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