Commit Graph

38668 Commits

Author SHA1 Message Date
florian
b58273fdeb * fix memory leak of video unit as proposed by Michael Karst, resolves #22876
git-svn-id: trunk@22927 -
2012-11-04 18:42:47 +00:00
florian
a523d81b87 * fix sincos also for x86-64-linux
git-svn-id: trunk@22926 -
2012-11-04 18:02:20 +00:00
florian
a9fed57090 * fix sincos for x86-64 windows resolves #23268
* changed to intel assembler to be more readble
* test for sincos extended

git-svn-id: trunk@22925 -
2012-11-04 16:27:29 +00:00
svenbarth
22552e468b m68k/cgcpu.pas, tcg68k.g_concatcopy:
* in case of copying from the parameter location to the local location we need to use the alignment size for the source as byte/word values are passed as LongInts (this is how the ABI is specified)

git-svn-id: trunk@22924 -
2012-11-04 16:11:16 +00:00
svenbarth
30f006d751 m68k/cgcpu.pas, tcg64f68k.a_op64_const_reg:
* use the correct register for the high value

git-svn-id: trunk@22923 -
2012-11-04 16:08:37 +00:00
florian
ddc054be79 * patch by Cyrax for easy redirection of heaptrc output, resolves #22168
git-svn-id: trunk@22922 -
2012-11-04 14:07:57 +00:00
florian
0b30b0fd5a * re-enable jump tables for x86-64, they are fixed, see also
http://www.hu.freepascal.org/lists/fpc-devel/2012-June/029141.html

git-svn-id: trunk@22921 -
2012-11-03 22:14:45 +00:00
joost
55d03b775e * Within the LaTeX help-text, underscores have to be escaped.
git-svn-id: trunk@22920 -
2012-11-03 17:07:59 +00:00
lacak
a8404dbf7f fcl-db: implemented GetConnectionInfo for TMSSQLConnection
(basic support, more options later)

git-svn-id: trunk@22919 -
2012-11-02 11:10:33 +00:00
Jonas Maebe
b8116de644 * fixed make install after r22897
git-svn-id: trunk@22918 -
2012-11-02 11:03:22 +00:00
michael
2bb25ea14f * Patch to make db library loading code more uniform
git-svn-id: trunk@22917 -
2012-11-02 11:01:20 +00:00
reiniero
920e34b3ff * FCL-DB: typo+clarification for MSSQL/Sybase db test framework databse.ini template
git-svn-id: trunk@22916 -
2012-11-02 08:29:42 +00:00
sergei
d019670495 - Removed generic implementation of TObjData.sectionname, its existence is useless because it is completely overridden by all TObjData descendants.
- Removed separate ELF section names for PIC. The only difference was .data named .data.rel; however .rel suffix has nothing to do with PIC. It only signifies that the section has relocations so such sections can be grouped together in output file and reduce number of pages for dynamic linker to visit  while resolving the relocations at load time. At the same time, no existing link scripts distinguish between .rel and any other suffix (except .rel.ro, but it's a different story), meaning that long section names will break .rel grouping.
While support for .data.rel can be added similar to existing rodata handling (separate sec_data and sec_data_norel sections), this doesn't seem worth the trouble.

git-svn-id: trunk@22915 -
2012-11-02 08:03:54 +00:00
sergei
4410fe86d2 * ELF linker: moved some code (which must be executed only once when linking with separate debug file) from MemPos_Start into AfterUnusedSectionRemoval, this removes some checks and simplifies things.
* Simplified .shstrtab handling between passes by using oso_debug_copy attribute on it.
- Don't recreate segment mapping: only debug sections are removed between passes, and they are never part of any segment.

git-svn-id: trunk@22914 -
2012-11-02 06:41:03 +00:00
svenbarth
9d4d7d748c m68k/n68kadd.pas:
+ add support for 64-bit comparisons; the code is based on the code of mips/ncpuadd.pas, but heavily adjusted for m68k

git-svn-id: trunk@22913 -
2012-11-01 21:27:02 +00:00
florian
9e35bfa252 * adapt condition
+ several missing constants added

git-svn-id: trunk@22912 -
2012-11-01 20:11:49 +00:00
florian
2ae8d604bc + shifterop for ARM64
git-svn-id: trunk@22911 -
2012-11-01 20:11:15 +00:00
florian
5e738710d4 + initial implementation of aasmcpu unit for ARM64
git-svn-id: trunk@22910 -
2012-11-01 20:10:31 +00:00
florian
046184dfe9 + ARM64 GAS instruction table unit
git-svn-id: trunk@22909 -
2012-11-01 20:09:47 +00:00
florian
e1af3ecc5d + assembler optimizer unit skeleton
git-svn-id: trunk@22908 -
2012-11-01 20:09:12 +00:00
florian
085fbbf016 + first batch of FPU/VFP instructions
git-svn-id: trunk@22907 -
2012-11-01 20:08:13 +00:00
florian
b2706861f6 + define bestrealtype for aarch64
git-svn-id: trunk@22902 -
2012-11-01 17:19:46 +00:00
florian
ca75588989 + first cpubase implementation for aarch64
git-svn-id: trunk@22901 -
2012-11-01 17:18:25 +00:00
florian
0197b84b7f + instruction table generator for arm64
+ Makefile target to build arm64 instruction tables
+ instruction table with integer instructions

git-svn-id: trunk@22900 -
2012-11-01 16:11:19 +00:00
svenbarth
4d1e42e891 rtl/m68k/setjump.inc:
* implement "fpc_setjmp" and "fpc_longjmp"
rtl/m68k/m68k.inc:
  * add "nostackframe" to "get_frame" and "sptr"
  + add "get_pc_addr"
=> allows stack traces to be displayed correctly

git-svn-id: trunk@22899 -
2012-11-01 16:00:14 +00:00
reiniero
c26abcebe7 * FCL-DB: fix for MSSQL/Sybase db test framework errors when existing FPDEV table present.
Thanks to Lacak2 for the fix idea!

git-svn-id: trunk@22898 -
2012-11-01 15:21:54 +00:00
Jonas Maebe
1c19fb9ecc * updated headers to Mac OS X 10.8 SDK (includes iOS 6 SDK info). Headers
that were removed (e.g. most of QuickDraw) were kept. Most changes are
    related to deprecation notices, or the fact that certain headers have
    become available on iOS. This version corresponds to r393 of the
    macosxintf repository.

    There were also a number of small corrections to existing declarations:
    o several opaque types have been changed from ^SInt32 into pointers to
      different empty records. That means that these types are no longer
      assignment-compatible. Some of the more prominent ones that may affect
      existing *correct* code are HIObject and ControlRef=HIViewRef. This
      may require adding typecasts to keep code compiling (the same typecasts
      are required in C)
    o CGGLContextCreate : fixed first parameter (was "var", now is value
       parameter)
    o CFHostGetAddressing: var hasBeenResolved: boolean -> booleanptr because
      can be nil
    o CFHostGetNames: var hasBeenResolved: boolean -> booleanptr because can
      be nil
    o ColorSyncIterateInstalledProfiles: var seed: UInt32 -> UInt32Ptr
      because can be nil
    o AudioStreamGetPropertyInfo: outSize and outWritable changed to pointer
      because can be nil
    o cblas (several var-parametes changed to pointers because they represent
       arrays):
      o cblas_sswap, cblas_dswap: X, Y
      o cblas_scopy, cblas_dcopy: Y
      o cblas_saxpy, cblas_daxpy: Y
      o catlas_saxpby, catlas_daxpby: Y
      o catlas_sset, catlas_dset: X
      o cblas_sscal, cblas_dscal: X
      o cblas_sgemv, cblas_dgemv: X
      o cblas_strmv, cblas_dtrmv: X
      o cblas_stbmv, cblas_dtbmv: X
      o cblas_stpmv, cblas_dtpmv: Ap, X
      o cblas_strsv, cblas_dtrsv: X
      o cblas_stbsv, cblas_dtbsv: X
      o cblas_stpsv, cblas_dtpsv: Ap, X
      o cblas_ssymv, cblas_dsymv: X
      o cblas_ssbmv, cblas_dsbmv: Y
      o cblas_sspmv, cblas_dspmv: Ap, Y
      o cblas_sger, cblas_dger: A
      o cblas_ssyr, cblas_dsyr: A
      o cblas_sspr, cblas_dspr: Ap
      o cblas_ssyr2, cblas_dsyr2: A
      o cblas_sspr2, cblas_dspr2: A
      o cblas_sgemm, cblas_sgemm: C
      o cblas_ssymm, cblas_Dsymm: C
      o cblas_ssyrk, cblas_dsyrk: C
      o cblas_ssyr2k, cblas_dsyr2k: C
      o cblas_strmm, cblas_dtrmm: B
      o cblas_strsm, cblas_strsm: B
    o vBLAS (idem)
      o SDOT: X, Y
      o SNRM2: X
      o SASUM: X
      o ISAMAX: X
      o SSWAP: X, Y
      o SCOPY: X, Y
      o SAXPY: X, Y
      o SROT: X, Y
      o SSCAL: X
      o SGEMV, A, X, Y
      o SGEMM: A, B, C
    o vDSP (idem)
      o vDSP_sve_svesq, vDSP_sve_svesqD: __vDSP_A
      o vDSP_normalize, vDSP_normalizeD: __vDSP_A, __vDSP_C

git-svn-id: trunk@22897 -
2012-11-01 11:45:57 +00:00
florian
1cb97f23e5 + cpuinfo unit for arm64
+ set basic types in the globals units for arm64

git-svn-id: trunk@22896 -
2012-10-31 22:03:56 +00:00
florian
7089d1d638 + defines for aarch64 to configure the compiler
git-svn-id: trunk@22895 -
2012-10-31 21:51:04 +00:00
florian
5af1d48158 + register definitions for AArch64 aka ARM64
+ Lazarus project for AArch64

Since AArch64 is very different from 32 Bit ARM, both won't share code in the compiler

git-svn-id: trunk@22894 -
2012-10-31 21:46:01 +00:00
svenbarth
772072d8c9 m68k/n68kmat.pas, tm68kmoddivnode:
+ add routine "call_rtl_moddiv_reg_reg" which handles the calling of "fpc_div_longint", "fpc_div_dword", "fpc_mod_longint" and "fpc_mod_dword"
  * emit_mod_reg_reg & emit_div_reg_reg: use the new method instead of doing the call oneself

=> "Str(SomeInt, SomeStr)" and "Writeln(SomeInt)" now works

git-svn-id: trunk@22893 -
2012-10-31 21:27:05 +00:00
svenbarth
49d953aea2 m68k/cgcpu.pas:
+ add methods "call_rtl_mul_const_reg" and "call_rtl_mul_reg_reg" which can call the RTL helpers "fpc_mul_longint" and "fpc_mul_longword" (based on AVR code)
  * use the new call methods for the RTL to correctly pass the parameters (on the stack, not in registers...)

git-svn-id: trunk@22892 -
2012-10-31 20:58:16 +00:00
florian
e190f76dd9 * removed spaces from sparc cpu name strings so they can be much easier used
git-svn-id: trunk@22891 -
2012-10-31 20:57:14 +00:00
svenbarth
a3a3cad8ee m68k/cgcpu.pas, tcg68k.a_load_const_ref:
* don't do a sign_extend, but use the correct move size to copy the const; this fixes the setting of the line ending style inside of "Assign"

=> output of strings does now work correctly!

git-svn-id: trunk@22890 -
2012-10-31 20:26:29 +00:00
svenbarth
17ff90deb9 aggas.pas, tgnuassembler.writetree.doalign:
+ add the case of a label instead of a jump directly in front of the align (happened in "do_open" for StdIO)

git-svn-id: trunk@22889 -
2012-10-31 20:23:41 +00:00
svenbarth
c3c7ec8839 m68k/cgcpu.pas, a_load_const_reg:
don't use the given size for MOVEQ, but only S_L

git-svn-id: trunk@22888 -
2012-10-31 19:22:27 +00:00
svenbarth
b94a120f84 m68k/cgcpu.pas, a_load_const_ref & a_load_const_reg:
use the correct size when moving a constant to a reference or register

git-svn-id: trunk@22887 -
2012-10-31 19:05:22 +00:00
lacak
d338b2c63b * adds new virtual method GetConnectionInfo into TSQLConnection
(allows retrieval of various connection related informations like type and version of DBMS, name and version of client library)
* implements this method for MySQL, PostgreSQL, SQLite, ODBC
Patch by DB-Core team

git-svn-id: trunk@22886 -
2012-10-31 09:13:32 +00:00
marco
1dfbc377e5 * regened toplevel makefile. Some spelling fixes in the versioncheck errormsg were in Makefile.fpc, but hadn't propagated to Makefile.
git-svn-id: trunk@22885 -
2012-10-31 08:09:04 +00:00
svenbarth
fb873d6f02 rtl/m68k/m68k.inc:
dummyplement Interlocked* functions; they are not locking in any way, but at least they do what they should

git-svn-id: trunk@22884 -
2012-10-31 06:24:08 +00:00
svenbarth
f204f84f6a rtl/m68k/m68k.inc, move:
completely disable the "fast loop" code for Coldfire instead of "hackfixing" it; with this StdIO starts to work (though one byte is missing at the end...)

git-svn-id: trunk@22883 -
2012-10-31 06:10:03 +00:00
svenbarth
8a631e9ba8 msg/errore.msg:
added "NativeNT" to target list for i386

git-svn-id: trunk@22882 -
2012-10-30 13:30:53 +00:00
sergei
8a56c9f7dc * TExeOutput.Order_Symbol and Order_ProvideSymbol: Instead of searching objsection by name, search for the symbol and use its objsection.
* TExeOutput.WriteExeSectionContent: To write proper gap between exe sections, don't align writer position. The desired position is present in exesection.DataPos, so pad right up to it.

git-svn-id: trunk@22881 -
2012-10-30 12:49:15 +00:00
sergei
12ad6704f6 - Removed a number of unused variables, reduces noise at compilation.
git-svn-id: trunk@22880 -
2012-10-30 11:55:59 +00:00
sergei
47cd83ae14 * Fetch PECOFF section sizes correctly (not including zero padding), resolves #22788.
git-svn-id: trunk@22879 -
2012-10-30 09:00:13 +00:00
masta
1261d6617d Properly handle MVN in RedundantMovProcess for ARM
RedundantMovProcess will now also handle MVN, folding

mov r0, r1
mvn r0, r0

into

mvn r0, r1

git-svn-id: trunk@22878 -
2012-10-29 22:53:37 +00:00
florian
6345aee80b * revert r19643: FloatToStr has to handle Nan correctly and should not cause
any exceptions (silent or not), FloatToStr has been fixed in r19783

git-svn-id: trunk@22877 -
2012-10-29 22:00:42 +00:00
masta
3a017f76d0 Look ahead more than one instruction in FoldShiftProcess for ARM
Up until now we only checked the next instruction, with the new load
scheduler this is insufficient as shift-instructions and next usage
might farther apart.

The new version uses GetNextInstructionUsingReg, this also comes with a
price as we very carefully have to check if one of the used registers is
changed and that the usage of RRX will not break when we fold and flags
get changed in between.

git-svn-id: trunk@22876 -
2012-10-29 17:57:11 +00:00
michael
7106b4dd54 * Forgot to commit
git-svn-id: trunk@22873 -
2012-10-29 09:44:16 +00:00
tom_at_work
5647d5112b Fixed error in define selecting write barrier code that has been introduced during debugging
git-svn-id: trunk@22872 -
2012-10-29 08:33:31 +00:00