Commit Graph

37374 Commits

Author SHA1 Message Date
florian
1b3dd8eefe * patch by Jeppe Johansen: fixes TCGMIPS.getfpuregister
git-svn-id: trunk@21419 -
2012-05-28 16:23:11 +00:00
florian
181bc24945 * fix mips(el) stat record
git-svn-id: trunk@21418 -
2012-05-28 16:22:11 +00:00
florian
2162df1802 * patch by Jeppe Johansen: fix gen_load_cgpara_loc for mips(el)
git-svn-id: trunk@21417 -
2012-05-28 16:21:30 +00:00
florian
00638e023f * set correct PPSUF for MIPS(EL), based on a patch by Jeppe Johansen
git-svn-id: trunk@21416 -
2012-05-28 16:19:37 +00:00
florian
7cc227be17 . remove obsolete tests
git-svn-id: trunk@21415 -
2012-05-28 14:34:55 +00:00
florian
10023597d2 * fix import in wince system unit, patch by Gennadiy, resolves #22131
git-svn-id: trunk@21414 -
2012-05-28 14:29:55 +00:00
florian
ff2469f533 * compile mipsel rtl always with -Ur
git-svn-id: trunk@21413 -
2012-05-28 14:18:59 +00:00
Jonas Maebe
5dc75a92a3 * don't write size suffix for popcnt on Darwin, its assembler doesn't
support it (fixes webtbs/tw13186)

git-svn-id: trunk@21412 -
2012-05-28 14:00:02 +00:00
florian
7bdbb3448e * minimum compiler version to build the compiler is 2.6.0
git-svn-id: trunk@21411 -
2012-05-28 13:30:51 +00:00
sergei
6571b4d140 * Factored code to create internal link script for debug sections into a separate procedure.
git-svn-id: trunk@21410 -
2012-05-28 13:28:21 +00:00
Jonas Maebe
9f0fb9cf10 - removed "<<<<<<< HEAD" leftover from a conflicting merge
git-svn-id: trunk@21409 -
2012-05-28 12:08:14 +00:00
sergei
8814f56081 * Fixed oso_debug section attribute being not preserved while reading/writing DJCOFF object files.
* Fixed header data positions for DJCOFF executables, they need adjustment by stub size.
* Fixed symbol values in DJCOFF executables, they must be absolute.
* Fixed missing oso_common flag on TExeOutput.commonObjSection, causing incorrect COFF relocations to this section.

git-svn-id: trunk@21408 -
2012-05-28 11:46:52 +00:00
Jonas Maebe
3a2afe27aa + new -varparas option that adds overloads for imported methods whereby
Java array parameters are translated into single element var-parameters

git-svn-id: trunk@21407 -
2012-05-28 10:21:25 +00:00
Jonas Maebe
252483ffd8 + support for running the testsuite in parallel. Note that only the "all"
target can be run in parallel, so "clean", "digest" and/or "dbdigest"
    have to be run in separate make invocations if you wish to use -j for
    running the testsuite

git-svn-id: trunk@21406 -
2012-05-28 09:14:56 +00:00
florian
48aae2d031 * fixed rules and dependencies for linux
git-svn-id: trunk@21405 -
2012-05-28 08:44:13 +00:00
florian
9e180fb318 * remove unneeded zero extensions from 16 to 32 Bit
git-svn-id: trunk@21404 -
2012-05-28 07:21:27 +00:00
florian
28e9d10c1f + added missing dependencies and rules to wince makefile
git-svn-id: trunk@21399 -
2012-05-27 17:55:38 +00:00
florian
926f628abb + added missing dependencies to win64 makefile
git-svn-id: trunk@21398 -
2012-05-27 17:27:40 +00:00
florian
551bd5e0c2 + added missing dependencies to win32 makefile
git-svn-id: trunk@21397 -
2012-05-27 17:22:04 +00:00
sergei
35e3e363dd * Changed writing section symbols to use storage class COFF_SYM_LOCAL (3), this is what is used by both GCC and MSVC. Previously used COFF_SYM_SECTION (104) is accepted by GNU binutils, but only for PE targets (and silently converted to COFF_SYM_LOCAL), for DJGPP it issues warnings.
* Assign section indexes independent from symbol indexing.
* Fixed section flags not assigned while reading DJGPP object files.
* Fixed objData type for TDJCoffexeoutput.
* Fixed entry point address of DJGPP executables.
* Fixed filling exe section headers for DJGPP.

git-svn-id: trunk@21396 -
2012-05-26 14:22:13 +00:00
Jonas Maebe
a2426178dc * don't insert type conversions in add nodes if both arguments are constant
and if the result does not depend on the types of the arguments (to
    prevent "qwordconst>int64const" being turned into
    "int64(qwordconst)>int64const" and thereby potentially change the outcome)
    (mantis #19622)

git-svn-id: trunk@21395 -
2012-05-26 14:14:59 +00:00
Jonas Maebe
9e0184884e * correctly change the signdness information of tordconstnodes that are
simplified via typeconvnode (corrects resultdef of "qword(1) shl 33",
    mantis #22133)
  * simplify shl/shr nodes after their resultdef has been set, so the
    resultdef used during simplify is set (fixes same expression as above
    when it is calculated by an inline function)

git-svn-id: trunk@21394 -
2012-05-26 13:31:23 +00:00
Jonas Maebe
baa8fa39a8 * converted code to trash variables (-gt) to operate at the node tree level,
and also use this code to trash local variables in inlined routines
   o fixes mantis #22088
   o makes it possible to also implement it for the jvm target in the future

git-svn-id: trunk@21393 -
2012-05-26 11:32:39 +00:00
Jonas Maebe
f2c82e32cd - removed g_indirect_sym_load() from hlcgobj/hlcg2ll because this cgobj
method is only used anymore internally in cgobj.tcg and its descendants
  * made tcg.g_indirect_sym_load() protected to ensure it stays that way

git-svn-id: trunk@21392 -
2012-05-26 11:32:33 +00:00
Jonas Maebe
8234a842e6 * fixed conversion of empty ansistring/widestring constants to pchar on
the jvm target + test

git-svn-id: trunk@21391 -
2012-05-26 11:32:20 +00:00
michael
5aeb9c860d * Added FreeContentStream property to TResponse.
git-svn-id: trunk@21390 -
2012-05-26 10:41:54 +00:00
Jonas Maebe
11968c4261 * use A_J instead of A_B (without explicitly defined condition) to jump to
wrapped interface methods

git-svn-id: trunk@21389 -
2012-05-25 14:50:50 +00:00
marco
ced0992642 * extraction example by Reinier Olislagers. Mantis #21304
git-svn-id: trunk@21387 -
2012-05-24 19:26:22 +00:00
michael
032528115f * Patch from Mattias Gaertner to improve quicksort memory use (Bug 22119)
git-svn-id: trunk@21386 -
2012-05-24 19:18:44 +00:00
florian
21b94f675f + add for MLA the same register interferences as for MUL
* register interferences for MUL/MLA are only needed for less than ARMv6

git-svn-id: trunk@21385 -
2012-05-24 19:14:58 +00:00
marco
2d890ae0b3 * Some more interfaces (include IOleCOmmandTarget). Patch by Ludo.
Mantis #22109

git-svn-id: trunk@21384 -
2012-05-24 19:01:01 +00:00
sergei
bbb08bbf66 ogcoff.pas:
- removed empty destructor and checks for nil before .Free (they are done in tobject.free itself)
+ added COMDAT definitions.

git-svn-id: trunk@21383 -
2012-05-24 16:34:13 +00:00
Jonas Maebe
3c6c4dff30 * fixed assembler code that was enabled in r20968 (push/pop changed ebx
and edi)

git-svn-id: trunk@21382 -
2012-05-24 15:34:33 +00:00
Jonas Maebe
ffe68ca284 * do not search overloaded assignment/conversion operators for internal
type conversions (those should always re-interpret the raw bits),
    except for variants (because those are sometimes generated internally)
    -- done so that -gt code at the node tree level can insert explicit
    typecasts to integer types without triggering overloaded explicit
    typecast operators such as in tests/test/terecs14

git-svn-id: trunk@21381 -
2012-05-24 15:34:27 +00:00
Jonas Maebe
0037de6ac9 * disable range/overflow checking for subsetreg/ref code, to prevent
spurious errors when calculating masks (was also the case for the old
    code in cgobj)

git-svn-id: trunk@21380 -
2012-05-24 15:33:49 +00:00
joost
4bbaeeccc6 * Reinstated the thest that was removed in r21365. Better not replace tests with
new ones, but add new tests

git-svn-id: trunk@21376 -
2012-05-24 09:16:38 +00:00
florian
638d0d49c0 + take advantage of the mla instruction when calculating array offsets
git-svn-id: trunk@21375 -
2012-05-23 20:48:26 +00:00
sergei
71c8b9cf8a * ogelf.pas: cleaned up code that creates default sections.
git-svn-id: trunk@21374 -
2012-05-23 14:21:44 +00:00
marco
283ed5971a * Fixed gotcha in r21364. SQL Null instead of nil. Mantis #22108 by Ludo
git-svn-id: trunk@21373 -
2012-05-23 12:37:02 +00:00
pierre
de9d8f2880 Regenerated after: Add x86_64 cpu specific units
git-svn-id: trunk@21372 -
2012-05-23 09:16:57 +00:00
pierre
7a9f1556e2 Add x86_64 cpu specific units
git-svn-id: trunk@21371 -
2012-05-23 09:13:06 +00:00
pierre
312c6bb7f8 x86_64 subdirectory added
git-svn-id: trunk@21370 -
2012-05-23 09:09:46 +00:00
pierre
5aaf3b797e Regenerated after: Add missing x86_64 specific cpu unit dependency on sysutils
git-svn-id: trunk@21369 -
2012-05-23 08:54:54 +00:00
pierre
f6231e154f Add missing x86_64 specific cpu unit dependency on sysutils
git-svn-id: trunk@21368 -
2012-05-23 08:54:26 +00:00
pierre
1ca3b765ec Regenerated after: Add x86_64 specific units
git-svn-id: trunk@21367 -
2012-05-23 08:49:24 +00:00
pierre
d99aeffbe4 Add x86_64 specific units
git-svn-id: trunk@21366 -
2012-05-23 08:48:57 +00:00
marco
9e5316afd1 * Patch from Mantis #22105 by Lacak2 that improves oldvalue testing.
git-svn-id: trunk@21365 -
2012-05-23 06:49:49 +00:00
marco
283b37139f * Patch from Ludo Brands implementing TCustomBufdataset.lookup
Mantis #22099

git-svn-id: trunk@21364 -
2012-05-23 04:57:36 +00:00
florian
c75486db89 * patch by Nico Erfurth:
Reorder unaligned Load sequence on ARM

The old version produced code like that:

ldrb rDEST, [rBASE]
ldrb rTemp, [rBASE, #1]
orr  rDEST, rDEST, rTEMP lsl #8 (2 stall cycles)
ldrb rTemp, [rBASE, #2]
orr  rDEST, rDEST, rTEMP lsl #16 (2 stall cycles)
ldrb rTemp, [rBASE, #3]
orr  rDEST, rDEST, rTEMP lsl #24 (2 stall cycles)

This creates a lot of stall-cycles on ARM Implementations with load
delay slots like Marvel Kirkwood or Intel XScale. With the usual up to 2
stall-cycles this code requires a total of 13 cycles (7 instructions + 6 stall
cycles) in best case.

The new code uses a second temp register to avoid the stall cycles.

ldrb rDEST, [rBASE]
ldrb rTemp1, [rBASE, #1]
ldrb rTemp2, [rBASE, #2]
orr  rDEST, rDEST, rTEMP1 lsl #8
ldrb rTemp1, [rBASE, #3]
orr  rDEST, rDEST, rTEMP2 lsl #16
orr  rDEST, rDEST, rTEMP1 lsl #24 (1 stall cycle)

The rescheduling and second register bring the total cycles down to 8.
If a later rescheduling should happen for the last orr it even can go
down to 7.

git-svn-id: trunk@21363 -
2012-05-22 19:09:20 +00:00
sergei
dc03282cb7 + Support assembling expressions ".long L2-L1" where label L1 belongs to the current objsection and L2 comes from any objsection. This is done using relative relocations and is compatible with GNU AS.
* Also fixed ogcoff.pas to handle these relative relocations correctly.

git-svn-id: trunk@21362 -
2012-05-22 14:59:24 +00:00