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