sergei
11b72b5515
x86_64 internal ELF linker:
...
* Split generation of regular and TLSIE GOT entries. Although code for both is similar to some extent, mixing them in a single method turns it into spaghetti.
* Several fixes to content and dynamic relocations of TLSIE entries.
git-svn-id: trunk@25180 -
2013-07-29 08:34:00 +00:00
michael
db0585f388
* Clear request/response variables in case of an error
...
git-svn-id: trunk@25179 -
2013-07-29 08:16:59 +00:00
joost
5459dc4401
* Fix for selecting OneByOne mode
...
git-svn-id: trunk@25178 -
2013-07-28 22:36:46 +00:00
florian
c2f7ccb253
* coalesce more aggressive
...
git-svn-id: trunk@25177 -
2013-07-26 19:06:20 +00:00
sergei
70dda94474
* x86_64-win64: don't allocate outgoing parameter area in nostackframe procedures, it fails compilation if range/overflow/etc checking is enabled (which always sets pi_do_call) due to check introduced in r22677.
...
git-svn-id: trunk@25176 -
2013-07-26 10:24:31 +00:00
svenbarth
53ea24a0b1
Correctly specialize generics if locally declared types are used (e.g. two procedures could both define a different "TRec" type which is used to specialize a generic inside the procedures).
...
symtype.pas, tdef:
+ add method "fullownerhierarchyname" which allows to retrieve the owner hierarchy name including procedure/function/method names
+ add method "fulltypename" which uses "fullownerhierarchyname" to return a full type name
symdef.pas, tstoreddef:
* implement "fullownerhierarchyname" (including caching of the result)
pgenutil.pas, parse_generic_specialization_types_internal:
* use "tdef.fulltypename" instead of "tdef.typename" to have unique values for each parsed type and thus for the specialization itself
+ tests
git-svn-id: trunk@25175 -
2013-07-26 09:02:24 +00:00
lacak
a4ef523461
fcl-db: base: for UniDirectional DataSet initialize BufferCount=1; + adapt also test (checked with Delphi, where for UniDirectional sql dataset (f.e.TSQLTable) on Next is also generated deDataSetScroll:-1 not deDataSetScroll:0)
...
git-svn-id: trunk@25174 -
2013-07-26 07:34:07 +00:00
lacak
6fca40b729
fcl-db: base: formatting (unification char-case)
...
git-svn-id: trunk@25173 -
2013-07-26 07:14:12 +00:00
florian
6f5bcaae2b
* UMUL et al. have only register restrictions on arm below v6
...
git-svn-id: trunk@25171 -
2013-07-24 20:18:12 +00:00
sergei
404c3efa58
* MIPS: handle get_frame internally, so it sets pi_needs_stackframe flag on current procedure. This makes possible not to force pi_needs_stackframe on every procedure and thus omit saving/restoring $fp register when it is not necessary.
...
git-svn-id: trunk@25170 -
2013-07-24 15:25:12 +00:00
marco
b33431775f
* workaround for Lazarus include file browsing bug (Mantis #24778 ).
...
Committed because it is very unintrusive and actually improves the style
of the unit, though in essence it is a lazarus problem.
git-svn-id: trunk@25168 -
2013-07-24 14:24:36 +00:00
Jonas Maebe
832b902df6
* ordered the declarations the same was as in bunxh.inc, so it's easier
...
to see what's missing
+ added missing declarations for fpexecv (causing an unnecessary
slowdown in executeprocess due to it calling the ansistring overload),
fplink, fpwait and fpsetrlimit
* changed sigset parameters of FpSigSuspend and FpSigTimedWait from const
into constref, since they must be passed by reference
git-svn-id: trunk@25167 -
2013-07-24 13:49:35 +00:00
lacak
59b2c38530
fcl-db: sqldb: formatting
...
git-svn-id: trunk@25166 -
2013-07-24 11:02:02 +00:00
lacak
bc7fd7afa8
fcl-db: sqldb: - Move private method "GetStatementInfo" to protected and make it virtual to allow TSQLConnection descendants override it
...
- Rename new property "CheckParams" to "ParamCheck" to align with other components such as Zeos, IBObjects, IBX, ADODB, ElevateDB, SQLMemTable and many others.
git-svn-id: trunk@25165 -
2013-07-24 10:40:08 +00:00
Jonas Maebe
35b771e421
* previously, we preferred pchar->shortstring to pchar->ansistring in
...
case of {$h-}. Now this is no longer done because it caused
pchar->ansistring and pchar->unicodestring to have the same
overload preference, which regularly caused problems with the
added unicodestring overloads in the RTL in the cpstrrtl branch.
* fixed tw3328.pp (it was missing a {$mode delphi}), which failed
before this patch but compiles new
+ extra variants of that test for the compiler changes
git-svn-id: trunk@25164 -
2013-07-24 09:39:34 +00:00
lacak
7e137889ff
fcl-db: tests: formatting (reorder methods, so related tests are together)
...
git-svn-id: trunk@25163 -
2013-07-23 11:11:24 +00:00
sergei
b0153f1482
* RTL, fpc_val_int64_shortstr and fpc_val_qword_shortstr: variable 'u' does not have to be 64-bit because it only takes values 0 to 15. Changing to sizeint improves code quality on 32-bit targets.
...
* fpc_val_uint_shortstr and fpc_val_qword_shortstr: variable 'prev' is not needed, removed.
* ShortCompareText: variable 'i' type changed from integer to sizeint; integer is 16-bit here, resulting in suboptimal code on non-x86.
git-svn-id: trunk@25159 -
2013-07-22 10:13:03 +00:00
nickysn
6daadff427
* compilation of unit objects in the i8086 medium memory model fixed (via the use of codepointer)
...
git-svn-id: trunk@25158 -
2013-07-21 17:43:44 +00:00
Jeppe Johansen
d89b9a4311
Add support in ARM assembler reader for ldr reg, =literal syntax
...
git-svn-id: trunk@25157 -
2013-07-21 16:06:57 +00:00
Jeppe Johansen
fdcc68cfd7
Disabled preindex/postindexed peephole optimizations for Thumb and Thumb2
...
git-svn-id: trunk@25156 -
2013-07-21 14:21:16 +00:00
Jeppe Johansen
0977d76f42
Mark global symbols with assembler references as non-regable
...
git-svn-id: trunk@25155 -
2013-07-21 13:41:10 +00:00
sergei
dddc78514d
* Internal ELF linker: for MIPS targets, place .got section after .data. This corresponds to behavior of ld, and reduces amount of processing when adding GOT slots for local symbols (which requires re-doing layout for all sections that come after .got)
...
git-svn-id: trunk@25154 -
2013-07-21 13:10:57 +00:00
nickysn
4953fd0bb0
* use CodePointer in Classes.TReader.FindMethod() and TFindMethodEvent for i8086 medium memory model compatibility
...
git-svn-id: trunk@25153 -
2013-07-20 22:10:22 +00:00
nickysn
ef2423128f
* use CodePointer instead of Pointer in TObject.MethodName() and .MethodAddress() for i8086 medium memory model compatibility
...
git-svn-id: trunk@25152 -
2013-07-20 22:08:38 +00:00
nickysn
2e97de9522
+ added an i8086 specific override of thlcgcpu.location_force_mem, which handles 6-byte (medium/compact memory model) method pointers
...
git-svn-id: trunk@25151 -
2013-07-20 19:40:27 +00:00
nickysn
f5a0702f9a
+ added i8086 specific implementation of Tcgtypeconvnode.second_nil_to_methodprocvar, which supports memory models with far code and/or far data
...
git-svn-id: trunk@25150 -
2013-07-20 16:58:41 +00:00
nickysn
91d7b2bc94
+ added i8086 medium/compact model 6-byte (mixed near + far) method pointer support in tcgloadnode and tcgassignmentnode
...
git-svn-id: trunk@25149 -
2013-07-20 15:06:14 +00:00
sergei
8e6d4b41e2
+ MIPS: started the peephole optimizer.
...
git-svn-id: trunk@25148 -
2013-07-20 13:44:21 +00:00
sergei
9494fadf08
* MIPS: set pi_do_call flag for assembler procedures with stackframes, so in PIC mode it further receives pi_needs_got in PIC mode and allocates the GP save temp.
...
* Deallocate GP save temp in epilogue to avoid warnings when compiled with -dEXTDEBUG
* g_concatcopy: don't check alignment, this allows single byte or word locations to be copied with 2 instructions. Larger unaligned references are supposed to be handled in g_concatcopy_unaligned instead.
git-svn-id: trunk@25147 -
2013-07-20 13:42:41 +00:00
Károly Balogh
4df92ddc08
dummy GetLastOSerror to make fcl-whatever build, and header cleanup/fixes
...
git-svn-id: trunk@25146 -
2013-07-19 22:55:44 +00:00
Károly Balogh
4f041157c4
build ctypes on Amiga too
...
git-svn-id: trunk@25145 -
2013-07-19 22:54:34 +00:00
Károly Balogh
9363585d19
don't try to build SVN on Amiga for now
...
git-svn-id: trunk@25144 -
2013-07-19 22:49:33 +00:00
sergei
f80ce76a69
+ MIPS: emulate "flags", i.e. support LOC_FLAGS location. This allows to generate differently optimized code for branching and for conversion to register, typically saving a register and instruction per compare.
...
git-svn-id: trunk@25131 -
2013-07-19 14:06:47 +00:00
sergei
9a6edd0fb8
* MIPS: handle restoring GP after calls without GAS macro processing, removes ugly workaround for GAS bug.
...
git-svn-id: trunk@25130 -
2013-07-19 08:04:06 +00:00
michael
4afefd6cbe
* Added AddText as suggested in bug ID #24764
...
git-svn-id: trunk@25129 -
2013-07-19 07:16:06 +00:00
nickysn
4b93fa1323
* set all the i8086 calling conventions' volatile registers to be the same as the 'pascal' calling convention; this should make cdecl compatible with 16-bit C compilers
...
git-svn-id: trunk@25128 -
2013-07-18 21:01:41 +00:00
sergei
dffe9cbc55
* Output sizes in map files without truncation and without leading zeros, plus a few more tweaks to make it look more like map files generated by ld. Resolves #24747 .
...
git-svn-id: trunk@25127 -
2013-07-17 14:52:02 +00:00
sergei
8b1463aedc
* tprocdef.customprocname: fixed bug introduced in r21069 that was causing result to always contain 'procedure' or 'function' word. These should be included only if pno_proctypeoption flag is given. Resolves #24640 .
...
git-svn-id: trunk@25126 -
2013-07-17 12:41:55 +00:00
reiniero
2240c24252
fcl-db: dbase: Remove erroneous language ID $20 Czech as it does not appear in references. Fixes issue #0024730 : Incorrect dbf Language ID to Locale convert table for Czech locale Windows
...
git-svn-id: trunk@25125 -
2013-07-17 11:57:20 +00:00
reiniero
29795e1b30
fcl-db: cosmetic: dbase: add reference to language IDs/codepages for DBaseIV
...
git-svn-id: trunk@25124 -
2013-07-17 11:48:03 +00:00
sergei
f49be98507
* MIPS: avoid temp if possible also when converting unsigned 32-bit integers to real.
...
git-svn-id: trunk@25123 -
2013-07-17 11:19:19 +00:00
sergei
c3350d13f9
* MIPS: floating point parameters on stack should be loaded to/from FPU registers directly, without using temp.
...
git-svn-id: trunk@25122 -
2013-07-17 11:00:46 +00:00
nickysn
3e0cc1e5f6
* fixes for the compilation of unit variants in the i8086 medium memory model
...
git-svn-id: trunk@25120 -
2013-07-16 15:16:24 +00:00
nickysn
e8005f9485
* fixed compilation of unit typinfo in the i8086 medium memory model
...
git-svn-id: trunk@25119 -
2013-07-16 15:13:11 +00:00
nickysn
d377ffdbec
+ added types CodePtrInt and CodePtrUInt, defined as integers with the same size as a CodePointer
...
git-svn-id: trunk@25118 -
2013-07-16 14:58:58 +00:00
nickysn
79db53b049
* TPropInfo.GetProc, .SetProc and .StoredProc changed to CodePointer for compatibility with the i8086 medium memory model
...
git-svn-id: trunk@25117 -
2013-07-16 14:50:16 +00:00
nickysn
59d014dd10
+ extended test tfarptr2 to also test comparisons with nil
...
git-svn-id: trunk@25112 -
2013-07-16 13:44:23 +00:00
nickysn
2a64ba0ad3
* do a 32-bit comparison on far and huge pointers
...
git-svn-id: trunk@25110 -
2013-07-16 07:57:49 +00:00
nickysn
0d565aeba9
+ extended test tfarptr2.pp
...
git-svn-id: trunk@25109 -
2013-07-15 22:36:12 +00:00
nickysn
56fbf8d4fe
+ added test tfarptr2.pp, which tests far pointer equality comparison
...
git-svn-id: trunk@25108 -
2013-07-15 22:13:17 +00:00