Commit Graph

174 Commits

Author SHA1 Message Date
Pierre Muller
ab0549fe61 Add dummy version for symbian
(cherry picked from commit 13368fbb8a)
2024-01-05 21:56:32 +01:00
svenbarth
432fcd52bc Merged revision(s) 45409, 46897-46898, 47007, 47011, 47065, 47084 from trunk:
* fix for Mantis #37042: apply patch and test (adjusted for Big Endian) by Bi0T1N to add support for TBitConverter
........
* avoid range check error when using SwapEndian with 16-bit constants
+ added test
........
* readd SmallInt typecasts to SmallInt overload of SwapEndian
........
* when removing a method from the synchronization queue using TThread.RemoveQueuedEvent then both the Code and the Data need to match (Delphi does the same)
+ added test
........
* simplify TThread.RemoveQueuedEvent - decide what to delete and not what to leave (better corresponds with the docs)
........
+ add ability to specify a SQLite VFS when opening a SQLite database
........
* fix test: TThread.WaitFor calls CheckSynchronize as well, so the thread needs to signal when it's done with removing entries from the queue
........

git-svn-id: branches/fixes_3_2@47782 -
2020-12-15 22:31:59 +00:00
pierre
d1f31fab15 Merge commits 42525 and 45891 that add
checks for fpu exceptions for arm and aarch64.
------------------------------------------------------------------------
r42525 | florian | 2019-07-28 21:06:36 +0000 (Sun, 28 Jul 2019) | 2 lines

+ software handling of exceptions on arm
* reworked software handling of exceptions so they can be check lazily
------------------------------------------------------------------------
--- Merging r42525 into '.':
U    compiler/arm/cgcpu.pas
U    compiler/arm/narmadd.pas
U    compiler/arm/narminl.pas
U    compiler/arm/narmmat.pas
U    compiler/ncgcal.pas
U    compiler/procinfo.pas
U    rtl/arm/arm.inc
--- Recording mergeinfo for merge of r42525 into '.':
 U   .
Summary of conflicts:
  Tree conflicts: 1
------------------------------------------------------------------------
r42891 | florian | 2019-09-01 17:26:11 +0000 (Sun, 01 Sep 2019) | 1 line

+ support for software floating point exception handling on AArch64 (-CE)
------------------------------------------------------------------------
--- Merging r42891 into '.':
U    compiler/aarch64/cgcpu.pas
U    compiler/aarch64/ncpuadd.pas
U    compiler/aarch64/ncpuinl.pas
U    compiler/aarch64/ncpumat.pas
U    rtl/aarch64/aarch64.inc
U    rtl/aarch64/math.inc
U    rtl/aarch64/mathu.inc
--- Recording mergeinfo for merge of r42891 into '.':
 G   .

git-svn-id: branches/fixes_3_2@46225 -
2020-08-04 10:30:50 +00:00
pierre
a77f220a51 ------------------------------------------------------------------------
r41140 | pierre | 2019-01-30 10:48:21 +0000 (Wed, 30 Jan 2019) | 1 line

 Fix cycling of arm compiler starting with release ppcarm 3.0.4
------------------------------------------------------------------------
--- Merging r41140 into '.':
U    rtl/arm/setjump.inc
--- Recording mergeinfo for merge of r41140 into '.':
 U   .

git-svn-id: branches/fixes_3_2@44375 -
2020-03-27 21:49:47 +00:00
Jonas Maebe
8ef53e60e2 --- Merging r41136 into '.':
U    rtl/arm/setjump.inc
--- Recording mergeinfo for merge of r41136 into '.':
 U   .

git-svn-id: branches/fixes_3_2@44365 -
2020-03-26 21:33:22 +00:00
florian
ff86c80176 * cpu specific header file for the system unit: cpuh.inc, moved several declarations into it
git-svn-id: trunk@37542 -
2017-11-01 16:33:30 +00:00
yury
2ae3ce79bb * ARM: Never use the "BLX label" instruction. Use "BL label" instead.
The linker will always change BL to BLX if necessary, but not vice versa (linker version dependent).
  "BLX label" ALWAYS changes the instruction set. It changes a processor in ARM state to Thumb state,
  or a processor in Thumb state to ARM state.

git-svn-id: trunk@36086 -
2017-05-04 15:55:55 +00:00
florian
7213a13081 * split fpc_mul_<64 bit> into separate procedures with and without overflow checking
git-svn-id: trunk@35454 -
2017-02-19 19:15:14 +00:00
florian
84bb46a35d + cpu unit for arm (linux only so far)
git-svn-id: trunk@33184 -
2016-03-06 13:33:20 +00:00
florian
1c067e96bf * fix VFPv4 support
git-svn-id: trunk@33182 -
2016-03-06 13:33:16 +00:00
Jeppe Johansen
03d4ada29e Use a temporary variable to avoid potential problems of overwriting the argument.
git-svn-id: trunk@33119 -
2016-02-25 10:38:18 +00:00
florian
3f2057a2f2 * do not generate blx instructions, the generation of blx instead of bl was introduced some years ago but today it proves to be wrong: if necessary, the linker converts the bl into a blx, this is also how gcc and clang handle it
git-svn-id: trunk@32788 -
2015-12-29 13:32:21 +00:00
yury
2dafb8d674 * arm-android: Use kuser_memory_barrier by default.
git-svn-id: trunk@32077 -
2015-10-17 16:07:04 +00:00
yury
c9a0c5e7a6 * arm: Support for the kuser_memory_barrier kernel function for memory barriers.
git-svn-id: trunk@32075 -
2015-10-17 15:40:05 +00:00
yury
0d9d730efe * arm-android: Use kuser_cmpxchg for Interlocked* functions when RTL is compiled for the ARMv5t CPU.
git-svn-id: trunk@32072 -
2015-10-17 14:38:17 +00:00
Károly Balogh
c81290bc94 fix InterlockedCompareExchange on ARM-Linux: kuser_cmpxchg destroys r3, which needs to be restored, if we have to loop
git-svn-id: trunk@32063 -
2015-10-16 18:53:35 +00:00
yury
e1a0b1204a * Removed unused vars in RTL.
git-svn-id: trunk@31750 -
2015-09-17 16:48:53 +00:00
yury
9f2ef7c546 * ARM assembler routines are PIC compatible now.
git-svn-id: trunk@31703 -
2015-09-15 18:06:36 +00:00
Jeppe Johansen
53fd543440 Fix fillchar for >ARMv3
git-svn-id: trunk@31573 -
2015-09-07 20:25:03 +00:00
Jeppe Johansen
dac294c680 Fix ARMv3/ARMv2A support.
git-svn-id: trunk@31561 -
2015-09-06 20:33:26 +00:00
Jeppe Johansen
44ad5af04d Fix some minor UMULL, and FPv4_S16 define problems
git-svn-id: trunk@31560 -
2015-09-06 20:14:16 +00:00
Jeppe Johansen
3ef4033e7d Test the proper CPUARM capability when chosing between blx and bl.
git-svn-id: trunk@30273 -
2015-03-22 13:42:28 +00:00
Jeppe Johansen
9478099e5a Undo recent VFP assembler changes to make bootstrapping from 3.0.1 possible.
git-svn-id: trunk@30183 -
2015-03-14 10:04:17 +00:00
Jeppe Johansen
914e9e7b49 Merged from trunk
git-svn-id: branches/laksen/armiw@30146 -
2015-03-08 12:33:46 +00:00
florian
9eab90d8c4 * always pass the architecture to the arm assembler
* encode pld/ldrd in arm.inc using .long, so it causes no errors with older architectures settings of the assembler

git-svn-id: trunk@29780 -
2015-02-21 21:58:30 +00:00
Jeppe Johansen
ff7af306df Add FPA support.
git-svn-id: branches/laksen/armiw@29366 -
2015-01-01 11:18:04 +00:00
Jeppe Johansen
71cdedea82 Add missing NOP, and B instruction forms.
Move ThumbFunc flag from section to symbol.
Make .w forms optional the other way around. If .w is explicitly put on an instruction the assembler should always chose a wide form.

git-svn-id: branches/laksen/armiw@29341 -
2014-12-27 13:23:02 +00:00
Jeppe Johansen
9e5979e8be Implemented UAL syntax support in the ARM assembler reader. Can be toggled with a field for now, but not implemented yet. Still using pre-UAL syntax for now.
Switched codegeneration of VFPv2 and VFPv3 to use UAL mnemonics and syntax.
Updated VFP code in RTL to use UAL syntax too.
Added preliminary ELF support for ARM.
Added support for linking of WinCE COFF files. Should work for with a standard ARMv4-I target.

git-svn-id: branches/laksen/armiw@29247 -
2014-12-10 20:44:34 +00:00
Jeppe Johansen
d4461efae3 Fix broken ldrd assembler syntax in RTL
git-svn-id: trunk@29187 -
2014-11-30 17:30:46 +00:00
florian
03c553606e - unneeded spaces removed
git-svn-id: trunk@28740 -
2014-10-04 13:45:17 +00:00
Károly Balogh
1a4d6d79c5 new division helpers for ARM by Nico Erfurth. on our ARMv5 core hardware they're 22%-36% faster than the generic ones for the most common case.
git-svn-id: trunk@28273 -
2014-07-29 17:39:55 +00:00
sergei
a94187c79b - ARM: cleaned out code corresponding to FPC_STRTOSHORTSTRINGPROC not defined (obsolete and removed from other targets long ago).
git-svn-id: trunk@27831 -
2014-05-31 00:38:01 +00:00
sergei
fff45fa1d3 - Don't compile fpc_abs_real and fpc_sqr_real if they are already defined (Mantis #25342).
git-svn-id: trunk@27408 -
2014-03-31 10:10:04 +00:00
sergei
8ad5e6fb26 - RTL: cleaned out FPC_FREEMEM_X. We now have a dedicated compilerproc 'fpc_freemem' for this purpose.
git-svn-id: trunk@27232 -
2014-03-23 02:11:38 +00:00
sergei
67a8c315d8 * ARM: SetExceptionMask and SetRoundingMode must return the old value of mask/mode respectively, not the new one.
git-svn-id: trunk@27217 -
2014-03-21 06:03:00 +00:00
sergei
94a045aa3d * Moved declarations of TFPURoundingMode,TFPUExceptionMask and TFPUPrecisionMode to System unit. Declarations in Math unit changed to aliases.
* Changed type of softfloat_exception_mask and softfloat_exception_flags to TFPUExceptionMask, softfloat_rounding_mode to TFPURoundingMode.
- Cleaned out numerous conversions happening when getting/setting exception mask and rounding mode.

git-svn-id: trunk@27215 -
2014-03-20 22:44:46 +00:00
sergei
7b56c90d82 - MIPS,SPARC and ARM-wince: removed remaining references to softfloat stuff.
git-svn-id: trunk@27204 -
2014-03-20 17:46:01 +00:00
sergei
0255eb880e - Removed mathuh.inc files which are identical for all targets (except m68k, see below), their contents moved into math.pp.
+ m68k/mathu.inc: added stub implementations for missing functions.

git-svn-id: trunk@27180 -
2014-03-18 20:01:15 +00:00
florian
7c606ba34c * generate rfs/wfs for thumb2 only if an fpa fpu is used
git-svn-id: trunk@27100 -
2014-03-11 21:20:49 +00:00
florian
6e32f8ee8f * patch by Bernd which fixes InterLockedxxx functions on ARMv4T, resolves #25518
git-svn-id: trunk@26792 -
2014-02-16 09:10:00 +00:00
Károly Balogh
c108a24cc8 reverted r25622 which was an accidental commit of some highly experimental debug code (sorry)
git-svn-id: trunk@25623 -
2013-10-02 18:31:28 +00:00
Károly Balogh
d004b44406 really fixed FillChar and fixed FillWord. fixes 8 tests.
git-svn-id: trunk@25622 -
2013-10-02 14:11:09 +00:00
svenbarth
7babce23da Fix compilation of arm-wince on Linux(?).
rtl/arm/arm.inc & setjump.inc:
  * don't use BX if the current CPU (default for arm-wince is ARMv3)  does not support it

git-svn-id: trunk@25393 -
2013-09-01 14:05:48 +00:00
florian
c0dda2ab77 * disable assembler versions of string routines for arm thumb
git-svn-id: trunk@23998 -
2013-03-25 17:54:32 +00:00
florian
97f21a7210 + fpc_cpucodeinit for arm thumb
git-svn-id: trunk@23984 -
2013-03-24 20:24:42 +00:00
florian
21c154d60a Merged r22903
git-svn-id: trunk@23757 -
2013-03-09 20:56:07 +00:00
florian
1eeeb309c7 * intial armv6m support, it is not working yet, constant pool insertation and conditional branch fixup is not working yet
git-svn-id: trunk@23682 -
2013-03-03 12:20:10 +00:00
florian
5af646d1d2 + add missing it* statements for thumb2 by a modified patch of Jeppe Johansen, resolves #23738
git-svn-id: trunk@23540 -
2013-01-29 20:36:38 +00:00
Jeppe Johansen
3ee29eb219 Fixed ARMv7-EM code generation and RTL compilation
Added LM4F120H5 controller type and startup code

git-svn-id: branches/laksen/arm-embedded@22903 -
2012-11-01 17:25:01 +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