Commit Graph

40772 Commits

Author SHA1 Message Date
nickysn
d0fa5fff8c * use Tai_const.Create_nil_dataptr in TVMTWriter.intf_gen_intf_ref for writing the nil value for the GUID ptr of Corba interfaces
git-svn-id: trunk@25201 -
2013-07-31 15:18:13 +00:00
nickysn
875e676441 * use Create_nil_dataptr in objectdef_rtti_class_full() when writing the current vmt address for objects that have no vmt
git-svn-id: trunk@25200 -
2013-07-31 15:10:46 +00:00
nickysn
a000d65447 * use Taiconst.Create_nil_codeptr when writing nil values for abstract methods in TVMTWriter.do_gen_published_methods
git-svn-id: trunk@25199 -
2013-07-31 14:51:18 +00:00
marco
0c3f9d73c9 * old comment removed. closesocket is considered stable now.
git-svn-id: trunk@25198 -
2013-07-31 07:54:58 +00:00
Tomas Hajny
9c68645784 * more complete fix for bug #24802 (use SocketClose instead of FileClose on all platforms)
git-svn-id: trunk@25197 -
2013-07-31 00:32:25 +00:00
Tomas Hajny
2015c55bf1 + additional constants added to unit sockets to make it more complete and improve compatibility with implementation for other platforms
git-svn-id: trunk@25196 -
2013-07-31 00:14:09 +00:00
nickysn
259bb5421e * tobjectdef.vmtmethodoffset updated to take into account the current i8086 memory model code pointer size
git-svn-id: trunk@25195 -
2013-07-30 23:26:34 +00:00
nickysn
b85f87620c * use Tai_const.Create_nil_dataptr for creating the nil pointers located before the method table in the class vmt
git-svn-id: trunk@25194 -
2013-07-30 23:09:52 +00:00
nickysn
0bdd9db7a2 * terminate the list of virtual method pointers in the vmt with Tai_const.Create_nil_codeptr
git-svn-id: trunk@25193 -
2013-07-30 23:04:25 +00:00
nickysn
728e8c62a7 * virtual method pointers in the objpas.TVmt record declared as codepointer; the vmtXXX constants also fixed
git-svn-id: trunk@25192 -
2013-07-30 23:02:32 +00:00
nickysn
9b364f4989 * use Tai_const.Create_nil_dataptr instead of Tai_const.Create_sym(nil) when writing nil for the parent vmt pointer
git-svn-id: trunk@25191 -
2013-07-30 22:48:05 +00:00
Tomas Hajny
c8221c4196 * fix breakage of the OS/2 RTL
git-svn-id: trunk@25190 -
2013-07-30 22:43:23 +00:00
Károly Balogh
614afca755 ARM: try to inline 64bit multiplication for the most common cases instead of calling FPC_MUL_ helpers (results in 5-10x speedup)
git-svn-id: trunk@25189 -
2013-07-30 14:40:50 +00:00
Jonas Maebe
fcbc435435 * only call findclose if findfirst succeeded
git-svn-id: trunk@25188 -
2013-07-30 13:39:32 +00:00
marco
ba263f162b * call closesocket for mswindows instead of fileclose. Probably needs to be checked for Amiga and OS/2 too.
git-svn-id: trunk@25187 -
2013-07-30 13:38:16 +00:00
sergei
1f8a67f552 + Property TObjSymbol.ObjData, allows to access owning TObjData for external/common symbols, i.e. ones with ObjSection=nil.
* For common symbols, report objdata of the original ObjSymbol, not of the resolving one, so the map file shows where it comes from.
+ TElfExeOutput.OrderOrphanSections method, handles object sections not mentioned in script similar to ld.
- t_linux.pas: removed sections that are not part of ld scripts, they are now handled by OrderOrphanSections.

git-svn-id: trunk@25184 -
2013-07-30 09:23:48 +00:00
nickysn
42e82c9de3 * when a i8086 reference uses only one register, choose it from the set [BX,BP,SI,DI] as it can be treated either as a base or an index, depending on what's convenient
git-svn-id: trunk@25183 -
2013-07-29 21:03:10 +00:00
sergei
5b6e50c9da * It is incorrect to use var_align() in linker code: it depends on current_settings.alignment, which is valid only while compiling, not while linking. Replaced with size_2_align().
git-svn-id: trunk@25182 -
2013-07-29 15:51:30 +00:00
sergei
e7f6b06969 + MIPS internal linker: support TLS IE/LE and GPREL32 relocations, is now able to link tw14265.
git-svn-id: trunk@25181 -
2013-07-29 09:30:40 +00:00
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