Commit Graph

38751 Commits

Author SHA1 Message Date
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
lacak
a86c4af0d6 mssqlconn: implement missing methods CreateDB/DropDB
git-svn-id: trunk@22871 -
2012-10-29 07:46:58 +00:00
florian
6d055e71b9 * fix gdbint for mingw libgdb 7.2 we provide in the contribs dir
git-svn-id: trunk@22870 -
2012-10-28 21:28:40 +00:00
florian
99fbb83247 * increased IDE copyright year
git-svn-id: trunk@22869 -
2012-10-28 21:27:59 +00:00
marco
4d6b9540dd * changed all version numbers to 900044 for freebsd 9. Expanded script to deal with
all its incarnations.

git-svn-id: trunk@22868 -
2012-10-28 20:02:00 +00:00
tom_at_work
3d0dd28350 Improve memory barriers on ARM
- memory barriers are only needed on armv6 and up
 - DMB on ARMv6 is "mcr 15, 0, r0, cr7, cr10, {5}", not "mcr 15, 0, r0, cr7, cr10, {4}"
 - improve write barrier on armv7 by using "dmb st" instead of "dmb sy"
todo: The use of the correct barrier code should be determined during runtime.

git-svn-id: trunk@22867 -
2012-10-28 19:38:36 +00:00
florian
3143f0e1be * fix by Jeppe Johansen for bitscan which was broken by the last fix for normal arm code
git-svn-id: trunk@22866 -
2012-10-28 17:57:22 +00:00
tom_at_work
312e8b8ecc Add implementations for read/write barrier code for ARM
git-svn-id: trunk@22864 -
2012-10-27 22:53:44 +00:00
pierre
6d13176d9a Add support for GDB 7.5 release and change all packrecords to C
git-svn-id: trunk@22863 -
2012-10-27 22:41:19 +00:00
pierre
3915b8e7f9 Only consider -l option if -l is at start of argument
git-svn-id: trunk@22862 -
2012-10-27 21:58:24 +00:00
florian
1ecc2672bb * don't assembler or link test to avoid linker or assembler errors due to wrong architecture
git-svn-id: trunk@22861 -
2012-10-27 21:05:56 +00:00
florian
1520bcc4f0 * fix bsf for armv7+
git-svn-id: trunk@22860 -
2012-10-27 20:17:58 +00:00
florian
8221681871 + add spilling info for the RBIT instruction
git-svn-id: trunk@22859 -
2012-10-27 20:17:12 +00:00
sergei
499162ca50 * Internal linker: fixed alignment routines. Neither of existing ones is suitable for 64-bit targets: cutils.align() is 32-bit only and moreover signed, system.align() crashes on zero alignment values and handles only pointer size of source platform.
Therefore, added dedicated routines align_aword and align_qword that handle target platform size and 64-bit unsigned, respectively.
+ Also added TExeOutput.FixedSectionAlign boolean that, when set to False, ignores SectionDataAlign and SectionMemAlign and aligns every exe section to its own SecAlign value. This kind of alignment is used on ELF targets.

git-svn-id: trunk@22858 -
2012-10-27 14:21:14 +00:00
ludob
a9e6baf5c9 TSQLite3Connection add support for adding/removing user-defined COLLATIONs; Mantis #22925 patch from Lacak2
git-svn-id: trunk@22857 -
2012-10-27 11:53:14 +00:00
Jonas Maebe
df7398977a * correctly calculate the number of words spanned by a packed aggregate
that does not start at a multiple of 8 bytes (mantis #23212)

git-svn-id: trunk@22856 -
2012-10-27 09:05:28 +00:00
Jonas Maebe
2f2f394bee * fixed wrong opcode size
git-svn-id: trunk@22855 -
2012-10-27 08:12:31 +00:00
Tomas Hajny
c5ad42e82f * fix for missing space in emxbind parameters for resource files linking
git-svn-id: trunk@22854 -
2012-10-26 20:52:53 +00:00