Commit Graph

38215 Commits

Author SHA1 Message Date
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
florian
5facc6ad5e * BsrX(0) should return 255 instead of $ffffffff
git-svn-id: trunk@22316 -
2012-09-04 15:16:59 +00:00
florian
d67af82228 * patch by Jeppe Johansen: Thumb2-only targets don't support the BLX <label>, and have to use BL <label>, resolves #22770
git-svn-id: trunk@22314 -
2012-09-04 14:57:26 +00:00
florian
1bb6248186 * disable hand optimized assembler for arm thumb2 as well
git-svn-id: trunk@22313 -
2012-09-04 14:29:52 +00:00
sergei
b1b175dacc + Internal linker support for weak symbols.
+ Allow unresolved external symbols in RemoveUnreferencedSections, such symbols are marked as 'dynamic' if referenced. This approach allows to collect unused sections early and generate import structures only for actually used symbols.

git-svn-id: trunk@22312 -
2012-09-04 13:16:56 +00:00
florian
d63ebe6464 * bsr implementation for armv5+ using clz
git-svn-id: trunk@22310 -
2012-09-04 12:56:38 +00:00
florian
91156f8652 + cpuflag CPUARM_HAS_CLZ for arm
git-svn-id: trunk@22309 -
2012-09-04 12:56:27 +00:00
florian
9be3ca04ad * split FPC_HAS_INTERNAL_BSX_* defines into FPC_HAS_INTERNAL_BSF_* and FPC_HAS_INTERNAL_BSR_*
git-svn-id: trunk@22308 -
2012-09-04 12:56:18 +00:00
florian
1c8c2d6dbb * tcgshlshrnode.second_integer: don't load the right expression into a register if it is already a LOC_CREGISTER
git-svn-id: trunk@22307 -
2012-09-04 10:43:48 +00:00
florian
b6a4602989 * ignore alignment entries in FindLabel
git-svn-id: trunk@22306 -
2012-09-04 10:43:44 +00:00
florian
59012afe26 * better heuristics to decide when a mul by a constant shall be replaced by shift/add/sub sequences
git-svn-id: trunk@22300 -
2012-09-03 13:39:52 +00:00
florian
2f8027c63f + more sophisticated code to optimize multiplications on arm
+ the multiplication optimization needs a popcnt function
+ simple test

git-svn-id: trunk@22299 -
2012-09-03 13:39:45 +00:00
florian
0214dd68f9 * fix building of zipper.pp as suggested by Jeppe Johansen
git-svn-id: trunk@22298 -
2012-09-03 12:34:16 +00:00
pierre
6290526821 Fix variable alignment for varargs
git-svn-id: trunk@22297 -
2012-09-03 12:15:54 +00:00
florian
10dbdb5c9a * fix compilation on x86-64
git-svn-id: trunk@22294 -
2012-09-03 09:52:06 +00:00
florian
2db4606eb0 * fix bootstrapping with 2.6.0
git-svn-id: trunk@22293 -
2012-09-03 09:16:46 +00:00
sergei
6f4e8927cd * Specify explicitly whether properties of an ObjSection should be considered when adding it to ExeSection, instead of deciding it implicitly.
git-svn-id: trunk@22292 -
2012-09-03 09:12:50 +00:00
florian
76bea5c4fd * x86-64 and i386 use the popcnt instruction of possible
git-svn-id: trunk@22291 -
2012-09-02 20:59:48 +00:00
florian
ff12d63248 + generic popcnt support
git-svn-id: trunk@22290 -
2012-09-02 20:59:44 +00:00
florian
b782918434 * first draft to support the popcnt instruction, works so far for x86 with a real popcnt instruction
git-svn-id: trunk@22289 -
2012-09-02 20:59:39 +00:00