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