svenbarth
fc79d47b09
Fix for Mantis #24651 . Allow pointer comparison for internal expressions (in this case check for valid VMT).
...
nadd.pas, taddnode:
+ add new constructor "create_internal" which adds "nf_internal" to the node's "flags"
* pass_typecheck_internal: allow pointer comparisons other than "=" and "<>" for nodes which have "nf_internal" set
psub.pas, generate_bodyentry_block:
* create the addnode using "create_internal" instead of "create" to allow the pointer comparison
+ added test
git-svn-id: trunk@25069 -
2013-07-09 08:04:11 +00:00
svenbarth
407e9d173b
Fix for Mantis #17598 . When extended syntax is off allow the result of constructors to be dropped when the constructor is called as an instance method instead of a class method.
...
pstatmnt.pas, statement:
* check whether the constructor is called as an instance or class method
nflw.pas, tlabelnode.pass_1:
* don't check the owner of the labelsym when there is none (happens with internally created labels like for e.g. exception handling)
+ added test
git-svn-id: trunk@25068 -
2013-07-09 07:56:45 +00:00
sergei
f3a1c749fb
* tcgtypeconvnode.second_int_to_int: reuse 8 and 16-bit-sized register locations on targets with 32-bit-only registers when casting to larger size (except ShortInt to Word cast). This is possible because upper bits of such registers are always kept valid by code generators (see 'maybeadjustresult' method in cgcpu.pas). Removes a lot of useless register moves.
...
git-svn-id: trunk@25067 -
2013-07-08 13:27:03 +00:00
sergei
faa778b6c7
* MIPS: div/mod and 32-bit shifts: don't bother reusing argument locations, always allocate new register and emit 3-address instructions.
...
* Fixed possible overwrite of LOC_CREGISTER numerator in optimized division by power of 2.
git-svn-id: trunk@25066 -
2013-07-08 11:51:39 +00:00
lacak
35f74e86ad
fcl-db: tests: Add test for Master-detail (see rev.25055)
...
git-svn-id: trunk@25065 -
2013-07-08 11:50:15 +00:00
lacak
a12a94eaff
fcl-db: tests: move 1 test
...
git-svn-id: trunk@25064 -
2013-07-08 11:06:56 +00:00
lacak
8602706228
fcl-db: sqldb:
...
- do not allocate cursor when opening bufdataset from file
- when closing TSQLQuery do not deallocate cursor while can be prepared (fixes "[SETUP] unable to close due to unfinalised statements" bug for SQLite)
- when unpreparing statement take into account that there are also SQLConnections which does not support [un]preparation of statements ... bur for those we must still call UnRegisterStatement (fixes multiple "[TEARDOWN] Access violation" in tests)
git-svn-id: trunk@25063 -
2013-07-08 10:40:27 +00:00
sergei
9e4cc57768
* MIPS: handle 8 and 16-bit arithmetic shifts internally, by shifting argument left by 24/16 bits, followed with 32-bit arithmetic shift right by appropriately adjusted amount.
...
This approach should be usable for other non-x86 targets as well.
git-svn-id: trunk@25062 -
2013-07-08 08:45:16 +00:00
lacak
87a0868606
fcl-db: tests: more complex test for r25036
...
git-svn-id: trunk@25061 -
2013-07-08 06:55:15 +00:00
florian
58610af9f0
* adapt max_linear_list on x86-64 as well
...
git-svn-id: trunk@25060 -
2013-07-07 20:01:10 +00:00
florian
d0db391d7c
* cleanup of unused units
...
git-svn-id: trunk@25059 -
2013-07-07 20:00:33 +00:00
florian
91138a535a
* default value for max_linear_list on i386
...
git-svn-id: trunk@25058 -
2013-07-07 19:51:25 +00:00
florian
507edb16de
* use add/sub instead of inc/dec on modern CPUs when optimizing for speed
...
git-svn-id: trunk@25057 -
2013-07-07 19:50:13 +00:00
michael
af1d33767d
* Inherited must be called for Internal(Dis)Connect for housekeeping
...
git-svn-id: trunk@25056 -
2013-07-07 18:19:23 +00:00
michael
087b6b4a39
* Fixed Master/Detail relation in SQLDB and fixed memory leak
...
git-svn-id: trunk@25055 -
2013-07-07 18:14:11 +00:00
florian
2cdb4adf39
+ tai_const.Create_type_name and tai_const.Create_pint_unaligned
...
* some locations fixed, where dwarf generated assembler for aligned data accidently
git-svn-id: trunk@25054 -
2013-07-07 15:09:36 +00:00
marco
609f6255d4
* added layout constants.
...
git-svn-id: trunk@25053 -
2013-07-06 20:46:30 +00:00
Jonas Maebe
a73897f835
- removed svn:mergeinfo properties (please only merge into the top level
...
directory)
git-svn-id: trunk@25050 -
2013-07-05 14:08:27 +00:00
sergei
bea46f3403
MIPS RTL:
...
* Fixed InterlockedXXX routines, hopefully thread-safe now.
+ SarInt64 assembler implementations for both mips and mipsel.
git-svn-id: trunk@25049 -
2013-07-05 14:03:18 +00:00
florian
963a488ca2
* handle also LOC_CREGISTER/LOC_CMMREGISTER in tcgvecnode.pass_generate_code, resolves #24705
...
git-svn-id: trunk@25039 -
2013-07-04 19:36:28 +00:00
sergei
59d6df4fca
* MIPS: replaced opcode mapping functions with array, much shorter that way. Separate "overflow" mapping is also no longer needed.
...
* Use SRAV/SRLV/SLLV opcodes for shifts by variable amount.
git-svn-id: trunk@25038 -
2013-07-04 14:26:44 +00:00
sergei
30a6432a17
+ Assembler implementation of SarInt64 for i386.
...
git-svn-id: trunk@25037 -
2013-07-04 09:43:30 +00:00
lacak
7c110e9b42
fcl-db:
...
- for MSSQL map TINYINT to ftWord
- for SQLite map TINYINT to ftSmallint
- TestTinyint
git-svn-id: trunk@25036 -
2013-07-04 08:25:33 +00:00
lacak
206e5eb475
fcl-db: odbc: map ftWord fields to TWordField (avoid potential problem with Big Endian systems)
...
git-svn-id: trunk@25035 -
2013-07-04 06:46:45 +00:00
nickysn
3505ba4ee6
+ added CPU detection code in the msdos rtl startup in order to properly initialize the Test8086 variable
...
git-svn-id: trunk@25034 -
2013-07-03 15:43:01 +00:00
sergei
1c84c3edbf
* Fixed label optimizer to work with MIPS, and enabled level 1 optimization for MIPS targets.
...
The difference in branch instruction formats is isolated in function JumpTargetOp, it is a plain function rather than a virtual method, so it can be easily inlined and, after inlining, produces the same code for non-MIPS targets as it was before change.
git-svn-id: trunk@25033 -
2013-07-03 14:40:24 +00:00
lacak
7a46ebd7f1
fcl-db: odbc: map UNSIGNED SMALLINT to ftWord fields. TestSupportWordFields
...
git-svn-id: trunk@25032 -
2013-07-03 08:24:51 +00:00
florian
162cb30528
* another patch by Max Nazhalov to fix shifting and rounding of float128
...
git-svn-id: trunk@25031 -
2013-07-02 21:03:39 +00:00
sergei
8823574fe2
* MIPS: get rid of DIV and DIVU macros.
...
git-svn-id: trunk@25030 -
2013-07-02 14:28:10 +00:00
sergei
d0ae800da6
+ MIPS: Use INS and EXT instructions for bit manipulations when target CPU type is set to mips32r2.
...
git-svn-id: trunk@25029 -
2013-07-02 14:21:29 +00:00
pierre
eb1ff90de1
Fix jvm compiler compilation failure after rev 25013
...
git-svn-id: trunk@25028 -
2013-07-02 12:52:32 +00:00
lacak
1ffcb9c1e6
fcl-db: mssql: add comments
...
git-svn-id: trunk@25027 -
2013-07-02 11:38:33 +00:00
lacak
f2464fbf3d
fcl-db: mysql: formatting (remove unused variables)
...
git-svn-id: trunk@25026 -
2013-07-02 11:29:15 +00:00
lacak
029eb92bd0
fcl-db: mysql: map UNSIGNED SMALLINT to ftWord fields. TestSupportWordFields
...
git-svn-id: trunk@25025 -
2013-07-02 11:20:04 +00:00
sergei
828309e61d
- MIPS: removed opcodes that are not in any known documentation.
...
git-svn-id: trunk@25023 -
2013-07-01 06:09:53 +00:00
florian
a0292b8962
* patch by Max Nazhalov to fix more conversion issues of the C code translation, resolves #24691
...
git-svn-id: trunk@25022 -
2013-06-30 18:07:40 +00:00
marco
ee5ce52d4c
* Simple Add/remove firewall rule wrapper by d4nn13 (forum)
...
git-svn-id: trunk@25021 -
2013-06-30 16:19:01 +00:00
florian
6ab95815d8
* try to optimze (p-/+const)^ by putting const into the offset of the generated reference
...
git-svn-id: trunk@25014 -
2013-06-29 22:20:34 +00:00
florian
be2ab84474
* make actualtargetnode a normal procedure using pointers to node so it can be used also when replacing nodes
...
+ replacenode to replace nodes inline
git-svn-id: trunk@25013 -
2013-06-29 22:20:30 +00:00
nickysn
7e70a5f763
* i8086 fix after r25010: i8086 doesn't support lea sp,[sp-XXX]
...
git-svn-id: trunk@25012 -
2013-06-29 12:21:15 +00:00
Tomas Hajny
67b3017751
* RealMaxPathLen added - value queried from the system on startup
...
git-svn-id: trunk@25011 -
2013-06-28 21:02:04 +00:00
florian
94cf650d9a
* use lea to adjust stack pointer, this is equal or faster on all modern CPUs than add/sub
...
git-svn-id: trunk@25010 -
2013-06-28 17:06:57 +00:00
sergei
7810d6637a
* MIPS: improved 64-bit comparisons by using cg.a_cmp_reg_reg_label, uses less instructions and registers when comparing with zero.
...
git-svn-id: trunk@25008 -
2013-06-28 15:46:17 +00:00
sergei
7a28815182
* r24895 used wrong expression for swapping sides of comparison, and it went undetected by tests. Fixed.
...
git-svn-id: trunk@25007 -
2013-06-28 15:40:37 +00:00
sergei
40045e6269
- Removed unused variables
...
git-svn-id: trunk@25005 -
2013-06-28 11:53:10 +00:00
sergei
8bfef107b3
* TAB characters removed.
...
git-svn-id: trunk@25004 -
2013-06-28 10:58:22 +00:00
sergei
c855868a3d
* MIPS: get rid of macros in comparison operations, use immediate operands for comparison with constants when possible.
...
+ InternalError if valid GP is needed but pi_needs_got was not set in pass 1.
git-svn-id: trunk@25003 -
2013-06-28 10:22:26 +00:00
Jonas Maebe
1e167a5fd3
* updated address of FSF (mantis #24646 , patch by Alexey Svistunov)
...
git-svn-id: trunk@24987 -
2013-06-27 14:04:34 +00:00
Jonas Maebe
81597bf171
* updated address of FSF (mantis #24646 , patch by Alexey Svistunov)
...
git-svn-id: trunk@24986 -
2013-06-27 14:01:18 +00:00
Jonas Maebe
345ca6f187
* prevent going through (the expensive) InternalSetCodePage when changing
...
the code page of a string with refcount=1 and without conversion (happens
a lot in internal RTL routines)
git-svn-id: trunk@24985 -
2013-06-27 13:11:57 +00:00