Commit Graph

40703 Commits

Author SHA1 Message Date
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