Commit Graph

47295 Commits

Author SHA1 Message Date
michael
4f649f34d0 * Patch from Silvio Clecio to update to 0.9.43 headers
git-svn-id: trunk@32104 -
2015-10-20 21:12:09 +00:00
nickysn
8eceb73dd4 * also use an 8-bit zero constant for string comparisons with the empty string.
This avoids the unnecessary 32-bit comparison on 16-bit and 8-bit CPUs

git-svn-id: trunk@32103 -
2015-10-20 15:50:02 +00:00
Jonas Maebe
9437d0e4d8 * Linux/AArch64 must also copy value parameters passed by reference on the
caller side, as this is an AArch64 ABI requirement (unrelated to Darwin).
    Fixes webtbs/tw3523 compiled with optimisations on Linux/AArch64

git-svn-id: trunk@32102 -
2015-10-20 12:58:53 +00:00
yury
9bece502a0 * tinterlockedmt test: Reworked test for InterlockedCompareExchange to be more robust.
git-svn-id: trunk@32101 -
2015-10-20 12:43:52 +00:00
Jeppe Johansen
eadd93dbae Most if not all instructions for thumb use only 2 operand rw forms. Changed get_oper_type to match that. It was previously creating bad spilling.
git-svn-id: trunk@32100 -
2015-10-20 03:45:22 +00:00
nickysn
a20428f246 * when doing a string comparison that calls an rtl helper, compare the function
result with an 8-bit zero constant (which will be expanded to the native
  integer size by the comparison node), instead of 32-bit zero. This avoids the
  unnecessary 32-bit comparison on 16-bit and 8-bit cpus.

git-svn-id: trunk@32099 -
2015-10-20 01:22:01 +00:00
nickysn
db7b743139 * yet another longint replaced with objpasint in fpc_shortstr_compare_equal
git-svn-id: trunk@32098 -
2015-10-19 16:53:40 +00:00
nickysn
b561b3c2ba * use objpasint (generates better code on 16-bit and 8-bit cpus) instead of
longint in several generic shortstr helpers

git-svn-id: trunk@32097 -
2015-10-19 16:36:12 +00:00
pierre
854d04bb46 Fix missing aarch64 CPU in ShowHistory for one test
git-svn-id: trunk@32096 -
2015-10-19 14:47:50 +00:00
yury
325a79b81b * tinterlockedmt test: Another fix to improve threads synchronization. Should fix slow execution on some systems.
git-svn-id: trunk@32095 -
2015-10-19 11:34:52 +00:00
pierre
89f5b65bbf New aarch64-linux gcc compiled objects generated on GCC Compile Farm gcc115 machine
git-svn-id: trunk@32094 -
2015-10-19 10:40:35 +00:00
blikblum
9aa6ea2255 Implement OnFilterRecord
git-svn-id: trunk@32093 -
2015-10-18 18:53:47 +00:00
sergei
72f60de3c4 * Added two test cases from Mantis #28584. The issue itself has been fixed with r31475 and r31582.
git-svn-id: trunk@32092 -
2015-10-18 14:48:36 +00:00
yury
3344188f3e * tinterlockedmt: Minor improvement.
git-svn-id: trunk@32091 -
2015-10-18 12:41:35 +00:00
Jeppe Johansen
14020b044c Fix bug in gen_load_cgpara_loc for 64bit registers on 8bit architectures.
Added a workaround in a_load_const_reg to allow compilation for AVR.

git-svn-id: trunk@32090 -
2015-10-18 11:36:58 +00:00
yury
3fcbb7d2d4 * tinterlockedmt: Fix race conditions in the InterLockedCompareExchange test.
git-svn-id: trunk@32089 -
2015-10-18 11:07:29 +00:00
Jeppe Johansen
1a285a7d24 Fixed an off-by-one error in a_load_const_cgpara which caused some problems.
Added some minor CG optimizations.

git-svn-id: trunk@32088 -
2015-10-18 11:03:57 +00:00
sergei
be6bcb71dc * Fixed test on 64-bit targets, was always using i386 code due to incorrect CPU selection symbol (must be "cpux86_64", not "x86_64").
git-svn-id: trunk@32087 -
2015-10-18 10:02:21 +00:00
Jeppe Johansen
7fc3ed2644 Fix a broken OpCp2Op optimization. It needed the added NR_DEFAULTFLAGS allocation to not break subsequent optimizations.
Updated the code for a_load_const_cgpara in case it needed stack parameters. This was completely broken before. Now it should allow things to compile at least.

git-svn-id: trunk@32086 -
2015-10-17 23:29:15 +00:00
yury
9193954d1c * pas2jni: Detect the default units path.
git-svn-id: trunk@32084 -
2015-10-17 20:36:29 +00:00
yury
ab4c8623ec * pas2jni: Fixed reading of the ppudump's output in some cases.
git-svn-id: trunk@32083 -
2015-10-17 18:40:21 +00:00
joost
3ec197480b * Re-generated Makefile for r32081
git-svn-id: trunk@32082 -
2015-10-17 18:03:20 +00:00
joost
a0d1296d2a * Re-created Makefile.fpc for libmicrohttpd with standard template
git-svn-id: trunk@32081 -
2015-10-17 18:01:09 +00:00
yury
36622eaba9 * arm-android: Compile for ARMv5T by default to be compatible with all versions of Android.
git-svn-id: trunk@32078 -
2015-10-17 16:27:53 +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
44777f3797 * Use ThreadSwitch.
git-svn-id: trunk@32076 -
2015-10-17 16:03:18 +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
joost
55f47e0efc * Added missing include file to fpmake.pp
git-svn-id: trunk@32074 -
2015-10-17 15:05:27 +00:00
yury
e3d06cdba7 + Stress test for Interlocked* functions using multiple threads.
git-svn-id: trunk@32073 -
2015-10-17 14:48:04 +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
joost
57204b2404 * Fixed fppkg --config-file option
git-svn-id: trunk@32071 -
2015-10-17 13:39:29 +00:00
Jeppe Johansen
4c8fc04a24 Fix a bunch of alignment problems for arm-embedded, mostly armv6m which uses the generic Move and FIllChar routines.
git-svn-id: trunk@32070 -
2015-10-17 12:11:32 +00:00
joost
56c9903c0c * Fixed compilation of libmicrohttpd on Linux
git-svn-id: trunk@32069 -
2015-10-17 09:37:35 +00:00
michael
5a13124fec * Fix dependency on rtl-extra for windows
git-svn-id: trunk@32068 -
2015-10-17 09:02:22 +00:00
michael
de800d14cb * Added libmicrohttpd, from Silvio Clecio.
git-svn-id: trunk@32067 -
2015-10-17 08:13:58 +00:00
Jonas Maebe
1294dc1ede * when inserting a non-empty ansistring into an empty ansistring, the
destination must get the code page of the source (mantis #28850)

git-svn-id: trunk@32066 -
2015-10-16 19:15:40 +00:00
Jonas Maebe
b2144d1da0 * give an internalerror if we try to write a tdef that doesn't belong to any
symtable to a ppufile

git-svn-id: trunk@32065 -
2015-10-16 19:15:37 +00:00
Jonas Maebe
9b310ea9b4 * simplified tx86pointerdef.createx86
git-svn-id: trunk@32064 -
2015-10-16 19:15:34 +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
nickysn
7e6ba9db2a * do an even better optimization (swap registers in the result, saving 2 mov
instructions) on i8086 for 64-bit shl/shr with a constant in the range 32..47

git-svn-id: trunk@32062 -
2015-10-15 21:13:28 +00:00
nickysn
ff5eed1c00 * user xor reg,reg to zero out registers in the i8086 optimized 64-bit shl code
git-svn-id: trunk@32061 -
2015-10-15 21:02:53 +00:00
nickysn
6ece867305 * in the i8086 64-bit shl code, use jcxz instead of test cx,cx+jz when
optimization target is 386 or earlier (or when optimizing for size)

git-svn-id: trunk@32060 -
2015-10-15 20:51:20 +00:00
nickysn
dc92c3eb09 + i8086 optimization for the code generated for 64-bit shl/shr with a constant in the range 32..47
git-svn-id: trunk@32059 -
2015-10-15 15:59:27 +00:00
nickysn
44f6f607c5 * optimized the generated code on i8086 for 64-bit shl/shr with constant >=48
git-svn-id: trunk@32058 -
2015-10-15 15:15:11 +00:00
nickysn
457107d165 * check UseIncDec before generating an INC instruction in tx86addnode.emit_generic_code
git-svn-id: trunk@32057 -
2015-10-15 13:11:47 +00:00
Jonas Maebe
d80e318945 * adapted ppudump to the changes in r32031
git-svn-id: trunk@32056 -
2015-10-14 16:44:05 +00:00
Jonas Maebe
231039b224 * since T(Tag)HashSet always forces the size to a power of 2, use "and"
rather than "mod" to select the hash bucket

git-svn-id: trunk@32055 -
2015-10-14 16:44:02 +00:00
yury
9431648b6c * Fixed conversion from float to currency when the currency type is 64-bit integer. Issue #28748.
git-svn-id: trunk@32054 -
2015-10-13 22:30:46 +00:00
joost
6e1ae237c3 * Fix for compilation of fpmake.pp by fppkg without libtar unit
git-svn-id: trunk@32053 -
2015-10-13 20:49:32 +00:00
yury
7688639a10 * Return a real base address for ELF executables by GetModuleByAddr() instead of hard-coded 0.
* Obtain a real processaddress for ELF images by OpenExeFile() instead of hard-coded 0.
* It fixes line info information for Position Independent Executables (PIE).

git-svn-id: trunk@32052 -
2015-10-13 20:08:03 +00:00