Commit Graph

38343 Commits

Author SHA1 Message Date
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
florian
728f53daa6 * test file for popcnt
git-svn-id: trunk@22288 -
2012-09-02 20:59:33 +00:00
florian
5b13ef1025 + added sse/avx instructions sets introduced during the last years
git-svn-id: trunk@22287 -
2012-09-02 20:55:12 +00:00
florian
86a6cee8fa - removed due to BSD license header
git-svn-id: trunk@22286 -
2012-09-02 20:46:58 +00:00
nickysn
cb4dadb079 + TZipper: added support for zip file comments
git-svn-id: trunk@22285 -
2012-09-02 17:46:16 +00:00
nickysn
cf29cdf1f3 + TUnZipper: added support for zip file comments
git-svn-id: trunk@22284 -
2012-09-02 16:53:59 +00:00
nickysn
cd4ea7f340 + set the minimum required zip version for each file according to the compression algorithm used
git-svn-id: trunk@22282 -
2012-09-02 15:36:03 +00:00
Jonas Maebe
62c8e47547 + override unnecessary abstract thlcgobj methods with internal errors
git-svn-id: trunk@22281 -
2012-09-02 14:32:31 +00:00
Jonas Maebe
56378f907f * keep track of required stack frame alignment (this information is however
not yet actually used for anything)

git-svn-id: trunk@22280 -
2012-09-02 14:32:26 +00:00
Jonas Maebe
b1dc518ac4 * removed systems_need_16_byte_stack_alignment and use target_info.stackalign instead
git-svn-id: trunk@22279 -
2012-09-02 14:32:21 +00:00
Jonas Maebe
bd31004fdb + describe for each supported target the default guaranteed stack alignment
git-svn-id: trunk@22278 -
2012-09-02 14:32:12 +00:00
Jonas Maebe
a5cb157091 * enable specifying the alignment mismatch of the frame/stack pointer
relative to the normal stack alignment of the target (e.g., when using
    ebp as framepointer, all addresses are offset 8 to the stack pointer) in
    the temp generator. This enables allocating temps/locals with the correct
    alignment as long as the required alignment is not bigger than the
    guaranteed stack pointer alignment (fixes mantis #15582 on systems where
    the stack pointer is at least aligned to 16 bytes; e.g., not yet on
    i386-platforms other than darwin)

git-svn-id: trunk@22277 -
2012-09-02 14:32:05 +00:00
Jonas Maebe
4cae00f97a * never use a linear table for enum<->string translation when two enums have
the same value (mantis #22570)

git-svn-id: trunk@22276 -
2012-08-31 18:51:59 +00:00
joost
a6e18e0f68 * Added PackageVariants. Those can be used to define multiple selectable
variants with different compiler-settings. 

git-svn-id: trunk@22275 -
2012-08-31 11:05:24 +00:00
michael
d02619b8af * Removed pqlib and default value. It should always load the lib loaded by postgres3dyn
git-svn-id: trunk@22274 -
2012-08-31 10:04:58 +00:00
michael
13f20b72c7 * Set library name to pqlib for all windowses
git-svn-id: trunk@22273 -
2012-08-31 10:00:38 +00:00
Jonas Maebe
9feee08eba * mark Java inner interfaces as "static abstract" like javac, solves the
"Illegal class modifiers in class SomeClass 0x209" when implementing
    such interfaces in code compiled by Eclipse's internal compiler

git-svn-id: trunk@22272 -
2012-08-30 22:30:32 +00:00
Jonas Maebe
952ac1ffa6 * only use indirect symbol loads for (weak)external and private_external
symbols on darwin/ppc and darwin/i386, and also for common symbols on
    darwin/ppc, as they're not required for other kinds of symbols on those
    platforms (gcc doesn't use them either with -O1 and higher; it does use
    them always for darwin/ppc64 except for local symbols, and hence so do we)

git-svn-id: trunk@22271 -
2012-08-30 21:30:38 +00:00
Jonas Maebe
c71cb9dc69 * fixed null termination of cmdline (based on patch by C Western,
mantis #22742) -- that function seems like a good candidate to
    put in a shared include file though

git-svn-id: trunk@22270 -
2012-08-30 21:30:31 +00:00
Jonas Maebe
8a4c12ab36 * include -Oofastmath in -O4
git-svn-id: trunk@22268 -
2012-08-30 08:00:33 +00:00
Jonas Maebe
01b5e2b6f6 * use the parsed node type for checking the validity of default parameter
values instead of a default based on the resulting constsym (more robust)

git-svn-id: trunk@22267 -
2012-08-29 16:09:13 +00:00
Jonas Maebe
ad054831bb * save/restore itype and implementsgetter fields of timplementedinterface
to/from ppu, because it can be required while resolving type casts
    (mantis #22741)

git-svn-id: trunk@22266 -
2012-08-29 16:07:55 +00:00
pierre
c501e6db5f Partial fix for bug report 22744
git-svn-id: trunk@22265 -
2012-08-29 14:35:06 +00:00