Commit Graph

38234 Commits

Author SHA1 Message Date
florian
a1da9b7710 * better cse handling of short boolean evaluated boolean expressions
git-svn-id: trunk@22369 -
2012-09-10 18:42:50 +00:00
marco
e4c0132109 * workaround breakage due to fpgetenv deprecation in combination with
-Se.

git-svn-id: trunk@22368 -
2012-09-10 17:40:07 +00:00
masta
c3a91c5022 Remove the postfix check in MovStrMov peephole optimizer for ARM
We don't need to check for the postfix, PF_NONE/PF_H/PF_B are all ok for us and
can be intermixed. This allows the peephole optimizer to work for
strb and strh instructions.

git-svn-id: trunk@22367 -
2012-09-10 14:57:43 +00:00
masta
0f40429389 Improve handling of set operations with constant values on ARM
tarmaddnode.second_cmpsmallset always forced a value into a register
even when it could be represented as a constant, resulting in wasted
registers.

mov r1, #5
cmp r0, r1

If possible we'll now create:
cmp r0, #5

git-svn-id: trunk@22366 -
2012-09-10 12:37:50 +00:00
marco
1a895a875b * move fpgetenv(pchar) to unit system for syscall based *nix rtls.
It was already available for libc based *nix rtls

git-svn-id: trunk@22365 -
2012-09-10 09:21:56 +00:00
marco
e245802fa8 * deprecated old shortstring getenv func.
git-svn-id: trunk@22364 -
2012-09-10 09:01:24 +00:00
Jonas Maebe
670509cbf1 - disabled multithreading because it has causes crashes
git-svn-id: trunk@22363 -
2012-09-09 23:33:51 +00:00
florian
67744ef46e * fix methodpointers in registers on big endian targets
git-svn-id: trunk@22362 -
2012-09-09 17:54:35 +00:00
joost
a74b6e8573 * Added ability to add targets to a packagevariant
git-svn-id: trunk@22361 -
2012-09-09 12:57:08 +00:00
florian
9ebf2aa984 * project file updates
git-svn-id: trunk@22360 -
2012-09-08 21:58:45 +00:00
joost
8459c12af7 * Fixed compilation of programs when using a buildunit
git-svn-id: trunk@22359 -
2012-09-08 15:50:06 +00:00
joost
982c7ca9a9 * Added ability to inherit package-variants from dependencies.
git-svn-id: trunk@22358 -
2012-09-08 15:43:50 +00:00
joost
dfb01f7391 * Package variants are stored in the package-dictionary, so there are more
places now where the package-dictionary should be used instead of the 
   global one.

git-svn-id: trunk@22357 -
2012-09-08 15:26:29 +00:00
marco
eae11f81bb * Size_t (IMalloc interface mainly) to PTRUINT, mantis #22835
git-svn-id: trunk@22355 -
2012-09-08 10:49:26 +00:00
joost
aa6b8b3fce * Do not use the GlobalDictionary during compilation of a package, this is not thread-safe
git-svn-id: trunk@22353 -
2012-09-07 18:59:16 +00:00
florian
34996baa05 * remove more than a decade outdated project files
git-svn-id: trunk@22352 -
2012-09-07 17:13:40 +00:00
florian
d93cee995b * fix register method pointer for ppc64 and x86_64-linux
git-svn-id: trunk@22351 -
2012-09-07 15:15:10 +00:00
Jonas Maebe
95c69f1f9e * fixed function return location for small records on darwin/i386 and
iphonesim/i386 when not using cdecl/cppdecl/mwpascal calling conventions

git-svn-id: trunk@22350 -
2012-09-06 21:41:42 +00:00
Jonas Maebe
f2e1ec2771 * merged changes to systemh.inc/compproc.inc from r22289/r22290/r22310
git-svn-id: trunk@22349 -
2012-09-06 21:41:35 +00:00
joost
8a4bd096fc * Files which should not be compiled on the current target can not trigger
a compile of the package. This also avoids checks on the file-age of
   unknown source files, which effectively leads to checking the age of
   directories.

git-svn-id: trunk@22348 -
2012-09-06 20:35:22 +00:00
Jonas Maebe
e7cb2e9a28 * test for mantis #22807 (bug fixed in jasmin)
git-svn-id: trunk@22347 -
2012-09-06 18:50:29 +00:00
pierre
971cc159f9 Using global assmelber labels for debug line is not required for smartlinked sections
git-svn-id: trunk@22346 -
2012-09-06 15:44:38 +00:00
florian
7840b4657a * the improved arm optimizer might move instructions around so the old hacky test if a label with its data has been already embedded into the code by checking if the offset is 0 does not work anymore so a new field for tai_label has been introduced for this purpose
git-svn-id: trunk@22345 -
2012-09-06 15:12:17 +00:00
florian
7361e19799 + support for handling OS_128/OS_S128 on 64 Bit CPUs as far as needed for method pointers in registers
git-svn-id: trunk@22344 -
2012-09-06 15:12:12 +00:00
florian
4514a55ec6 * call method pointers located in registers correctly
git-svn-id: trunk@22343 -
2012-09-06 15:12:06 +00:00
florian
e18a9cccaa * fix expectlocs for method pointers
git-svn-id: trunk@22342 -
2012-09-06 15:12:02 +00:00
florian
370d42035a * when creating method pointers, put them into registers
git-svn-id: trunk@22341 -
2012-09-06 15:11:58 +00:00
florian
4d4561923e * nil method pointers can be kept in registers
git-svn-id: trunk@22340 -
2012-09-06 15:11:54 +00:00
florian
d6b548ce13 * don't force parameters into memory when loading them if both have the size OS_64/OS_S64
git-svn-id: trunk@22339 -
2012-09-06 15:11:50 +00:00
florian
be2003a404 * output register pairs correctly
git-svn-id: trunk@22338 -
2012-09-06 15:11:46 +00:00
florian
7901662eb3 + mark method pointers as regable
git-svn-id: trunk@22337 -
2012-09-06 15:11:42 +00:00
pierre
a3ef2b42a8 Remove more TABs in sources
git-svn-id: trunk@22336 -
2012-09-06 08:11:59 +00:00
pierre
bf46526cc7 Set register_used boolean only for calleeside
git-svn-id: trunk@22335 -
2012-09-06 08:11:15 +00:00
pierre
c72f27e53e Remove more TABs in source
git-svn-id: trunk@22334 -
2012-09-06 08:07:38 +00:00
pierre
80b0891c7c Remove TABs in source
git-svn-id: trunk@22333 -
2012-09-06 08:06:08 +00:00
sergei
c41b407119 * Changed TObjSection.WriteStr method to write a zero byte after the string.
+ Added TObjSection.WriteBytes method that writes just a string (without zero byte).
* ogelf.pas: Fixed st_value of COMMON symbols, it must contain required symbol alignment.
+ ogelf.pas: Some more definitions.

git-svn-id: trunk@22332 -
2012-09-06 06:06:04 +00:00
joost
8ce4a5e196 * Search the UnitConfigFile in the right location when installing with PackageVariants
git-svn-id: trunk@22331 -
2012-09-05 19:10:13 +00:00
florian
57ee96ef86 * compilation on non x86 fixed
git-svn-id: trunk@22330 -
2012-09-05 18:49:48 +00:00
florian
03bf93488b * workaround for broken in operator
git-svn-id: trunk@22329 -
2012-09-05 15:00:04 +00:00
florian
3b980cae63 * floating point compares use flags as well so allocate flags
git-svn-id: trunk@22328 -
2012-09-05 15:00:00 +00:00
florian
8818b58e5d * Bsf/Bsr on x86 handle now correctly 0 as argument, resolves #22783
* generic Bsf implementations handle now correctly 0 as argument
* test extended

git-svn-id: trunk@22327 -
2012-09-05 13:51:45 +00:00
pierre
39e32a9b3e Do not use nostackframe with local variable in get_fsr function
git-svn-id: trunk@22326 -
2012-09-05 12:24:45 +00:00
pierre
fe97069b12 Correct exceoption mask elements
git-svn-id: trunk@22325 -
2012-09-05 12:24:15 +00:00
michael
cecc6b778c * improved KDE detection
git-svn-id: trunk@22324 -
2012-09-05 11:37:48 +00:00
florian
de34eab23d + optimize and ...,255/strb ... sequence if possible
git-svn-id: trunk@22323 -
2012-09-05 11:24:03 +00:00
florian
93d0033282 * improve AndAnd2And optimization by checking if the first destination register is allocated after the second and
git-svn-id: trunk@22322 -
2012-09-05 11:23:05 +00:00
florian
8a6c65b008 * fix r22319: hp1 must have the same condition as p
git-svn-id: trunk@22321 -
2012-09-05 09:05:26 +00:00
florian
9773b92cbe * improved for loop unrolling
git-svn-id: trunk@22320 -
2012-09-04 21:34:00 +00:00
florian
2f1989c1a6 * hp1 can have any condition in this case so don't access hp1.condition because it
is not guranteed that hp1 is actually a tai_instruction before calling MatchInstruction

git-svn-id: trunk@22319 -
2012-09-04 18:58:28 +00:00
florian
bc47125943 * use BsrDWord in software mod/div
* use a for loop instead of an until loop so code generation is potentially better

git-svn-id: trunk@22318 -
2012-09-04 18:58:20 +00:00