Commit Graph

40853 Commits

Author SHA1 Message Date
florian
11ff8a4ec1 + support register parameters with multiple locations
git-svn-id: trunk@25238 -
2013-08-11 16:12:39 +00:00
florian
86c36995dd * i8086 has no 32 bit rol/ror support so disabled inlined ror/rol for now
git-svn-id: trunk@25237 -
2013-08-11 16:12:37 +00:00
florian
6377c180bf * disable packages which do not build on msdos
git-svn-id: trunk@25236 -
2013-08-11 16:12:34 +00:00
svenbarth
ff3bb9322a Fix for Mantis #24848.
ngenutil.pas, AddToStructsInit:
  * don't add class constructors/destructors to the init table if they belong to a generic type

+ test

git-svn-id: trunk@25234 -
2013-08-11 11:20:12 +00:00
reiniero
83e843fe2a * fcl-db: TParam.SetAs***: set variant datatype before value assignment. Mantis #24728. Patch by Andrew Brunner.
git-svn-id: trunk@25233 -
2013-08-11 10:14:04 +00:00
nickysn
a5517cd3d4 * SI and DI removed from the i8086 saved_standard_registers list, because they are volatile in TP7's default calling convention
git-svn-id: trunk@25231 -
2013-08-09 12:21:30 +00:00
Mattias Gaertner
90d78e775e instantfpc: version 1.3: compile into temporary directory to avoid clashes in parallel compilations
git-svn-id: trunk@25230 -
2013-08-09 12:02:15 +00:00
florian
57d4185d44 * allocate/deallocate cpu registers as late/early as possible, this gives the reg. allocator more flexibility
git-svn-id: trunk@25229 -
2013-08-08 20:55:45 +00:00
sergei
e1550e1aed * Restore registers in correct order (for push/pop it *does* matter), fixes crashes caused by r25224.
git-svn-id: trunk@25228 -
2013-08-08 05:35:51 +00:00
masta
b81f746e05 Inline Length(DynamicArray)
Up until now a helperfunction was called at runtime. This change inlines
the whole code in the same way Length(AnsiString) works. As dynamic
arrays do not record their length but their highest index, an additional
"OP_ADD" is this case.

git-svn-id: trunk@25227 -
2013-08-07 22:07:08 +00:00
marco
0d9211b3bc * fix for Mantis #24834 sockets field in SDLNET_SOCKETSET is double pointer.
git-svn-id: trunk@25226 -
2013-08-07 15:36:12 +00:00
Jonas Maebe
2ba22f666e + support for R_SUBMMX and R_SUBMMY in generic_regname()
git-svn-id: trunk@25225 -
2013-08-07 12:41:47 +00:00
sergei
5c4abfa75a + Implemented saving/restoring registers using PUSH/POP instructions on i386 targets with non-fixed stack. Provides some advantage in code size (e.g. the compiler becomes about 20KBytes smaller).
* This should be applicable to i8086 targets as well (but needs testing), by copying changes from i386/cgcpu.pas to i8086/cgcpu.pas and removing "$ifdef i386" lines in cgx86.pas.

git-svn-id: trunk@25224 -
2013-08-07 09:59:07 +00:00
Jonas Maebe
1ce93f7430 * when automatically generating an overriding getter/setter method (because
a property in a child class has a higher visibility than the getter/
    setter), ensure that we call the inherited method and not the method
    itself (causing a stack overflow due to infinite recursion)

git-svn-id: trunk@25223 -
2013-08-06 21:50:56 +00:00
sergei
a21a20d559 + i8086-specific version of g_stackpointer_alloc.
git-svn-id: trunk@25219 -
2013-08-06 08:11:39 +00:00
sergei
1f72143eef * In preparation for fixing Mantis #24791: Copy related code from tcgx86.g_proc_entry to tcgx86_64.g_proc_entry, and remove win64-specific stuff from tcgx86 version.
git-svn-id: trunk@25218 -
2013-08-06 07:34:50 +00:00
sergei
ea65e272dd * Changed global variable into field.
git-svn-id: trunk@25217 -
2013-08-05 16:32:37 +00:00
reiniero
83a236f9b3 * revert previous commit - was due to a misunderstanding: TestFloatParamQuery already covers the bug.
git-svn-id: trunk@25216 -
2013-08-05 09:13:46 +00:00
reiniero
9ad462590a * fcl-db: dbtestframework: add test for parameter .AsFloat; bug #24728
Memory Leak in DataSet Parameter Binding

git-svn-id: trunk@25215 -
2013-08-05 08:41:54 +00:00
joost
531ce2dfc2 * If one include-file is resolved, do not stop resolving the other include-files
git-svn-id: trunk@25214 -
2013-08-04 20:46:15 +00:00
joost
23f065faa0 * Resolve files for all targets before the creation of an archive
git-svn-id: trunk@25213 -
2013-08-04 18:20:25 +00:00
nickysn
a8729ca784 + added test for the div/mod bug fixed in r24247
git-svn-id: trunk@25212 -
2013-08-04 12:46:37 +00:00
florian
912268b1b9 * make loop unrolling dependent on the cpu optimization type instead of the instruction set
git-svn-id: trunk@25211 -
2013-08-03 20:49:20 +00:00
nickysn
db541b59fa - disallow calling tai_symbol_end.Createname with a symbol name that isn't yet defined
git-svn-id: trunk@25210 -
2013-08-03 12:27:43 +00:00
florian
b262b4d76b * fix loop unrolling of for in loops
git-svn-id: trunk@25209 -
2013-08-02 21:21:14 +00:00
paul
24f8623490 rtl, utils: apply patch from Inoussa (mantis #24158):
*  Fix the crash of the Unicode Manager and "cldrparser". Tested on WinCE/ARM emulator (That does produce unaliged exception).

git-svn-id: trunk@25208 -
2013-08-02 16:19:24 +00:00
Jonas Maebe
fb8fb29574 * record/use the code page of string constants typecasted to an ansistring
type with a non-default code page
   TODO: ensure that string constants typecasted to ansistring become
     ansistrings rather than typeless string constants

git-svn-id: trunk@25207 -
2013-08-02 13:23:32 +00:00
michael
41b3ebe844 * Fixed bug #24813
git-svn-id: trunk@25205 -
2013-08-02 07:21:32 +00:00
michael
5fa6d73619 * Fixed bug #24814
git-svn-id: trunk@25204 -
2013-08-02 07:17:36 +00:00
Tomas Hajny
00a0bf992f * SHUT_* constants added for improved compatibility to other platforms
git-svn-id: trunk@25203 -
2013-08-01 20:42:40 +00:00
Tomas Hajny
5f1b12573f * fix for a typo in previous commit (SocketClose->CloseSocket)
git-svn-id: trunk@25202 -
2013-07-31 18:39:41 +00:00
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