Commit Graph

37459 Commits

Author SHA1 Message Date
pierre
a7c9e4768e * Patch from Fuxin Zhang
git-svn-id: trunk@21527 -
2012-06-07 23:02:29 +00:00
pierre
8259e69539 Non thread safe implementation of InterlockedXXX functions
git-svn-id: trunk@21526 -
2012-06-07 23:00:22 +00:00
pierre
f971854db6 * Patch from Fuxin Zhang
git-svn-id: trunk@21525 -
2012-06-07 22:59:02 +00:00
Jonas Maebe
50659b7e7f * give an error if a routine definition defines default values for
parameters that do not appear in forward/interface definitions
    (mantis #19434)
  * added test for #17136 already works

git-svn-id: trunk@21524 -
2012-06-07 22:36:39 +00:00
Jonas Maebe
df9c8652be * add default parameter values defined in implementation also to interface
(they don't have effect when they only appear in the implementation, and
     therefore this situation will cause an error in the future)

git-svn-id: trunk@21523 -
2012-06-07 22:36:15 +00:00
sergei
807a2f243f * Fixed control flow after r21492, was causing IE 200602252 if compiling with "-g -Xg" (Mantis #22224)
- Also removed accidentally committed debug code.

git-svn-id: trunk@21522 -
2012-06-07 22:30:50 +00:00
florian
6e8594a9af * patch by Nico Erfurth: Minor fix for FoldShiftProcess peephole optimizer on ARM
Use UpdateUsedRegs and drop the check for reloading of the register, as
this is done in RegUsedAfterInstruction now.

git-svn-id: trunk@21520 -
2012-06-07 18:21:46 +00:00
florian
5b02a7cb9b * patch by Nico Erfurth: Check for register reloading in RegUsedAfterInstruction on ARM
This slightly changes the semantics of RegUsedAfterInstruction.
We now check if the `current value` of the register will be used later.
It will do `the right thing` for all the normal use cases.

git-svn-id: trunk@21519 -
2012-06-07 18:20:35 +00:00
Mattias Gaertner
9636202165 fcl-image: tiff: read/write PageName, fixed typos
git-svn-id: trunk@21517 -
2012-06-07 17:23:16 +00:00
Mattias Gaertner
fd18003cd6 tiff: fixed decompressing packbits, skip jpeg tags
git-svn-id: trunk@21514 -
2012-06-07 16:09:33 +00:00
florian
72746e635d * optimize TAOptObj.UpdateUsedRegs to avoid multiple passes through the asmlist
git-svn-id: trunk@21513 -
2012-06-07 15:19:55 +00:00
Jonas Maebe
572012fad3 * mark units as used in case only static symbols from inside object,
record or enum symtables are used (such as class helper methods)
    (mantis #21808)

git-svn-id: trunk@21512 -
2012-06-06 20:16:50 +00:00
florian
2a2a1e5788 * patch by Nico Erfurth: Optimize SwapEndian for ARM
The new version uses a pure pascal version for the 32bit case.
With the lastest compiler optimizations this generates optimal
4-instruction code which can be inlined. The rev-versions for
armv6+ are gone now, the inlineable pascal-code is faster than
the call-overhead for the rev-implementation.

The 64-bit versions received an updated assembly version which saves 4
cycles total on <armv6.

git-svn-id: trunk@21511 -
2012-06-06 19:46:06 +00:00
florian
45c70ec81c * patch by Nico Erfurth: Support the usage of BIC instead of AND on ARM
BIC clears the specified bits, while AND keeps them. The usage of BIC
allows a broader range of shifterconsts to be used on the ARM cpu, often
saving a cycle.

Previously code like:
Data:=Data and $FFFFFF00

would result in

mvn r1, #255
and r0, r0, r1

This patch changes this to

bic r0, r0, #255

git-svn-id: trunk@21510 -
2012-06-06 19:45:26 +00:00
florian
fefc130efc * patch by Nico Erfurth: Handle BIC properly in taicpu.spilling_get_operation_type
BIC was handled as a read only operation, which caused it to overwrite
live register content sometimes.

git-svn-id: trunk@21509 -
2012-06-06 19:44:53 +00:00
florian
8cae4c9f23 * patch by Nico Erfurth: Fix for MovStrMov Peephole optimizer on ARM
The loop checked for the wrong instruction for .opcode = A_STR. Making
the whole optimizer non functional but at least not destructive.

git-svn-id: trunk@21508 -
2012-06-06 19:44:20 +00:00
florian
83fb4c289d * patch by Nico Erfurth: Implement FoldShiftProcess Peephole optimizer for ARM
This optimizer folds shift/roll operations into following data
instructions.

It will change code like:

mov r0, r0, lsl #16
add r1, r0, r1

into

add r1, r1, r0, lsl #16

Source registers will be reordered when necessary, also SUB/SBC will be
replaced with RSB/RSC and vice versa when reordering is required.

It could be expanded to support more operations like LDR/STR.

git-svn-id: trunk@21507 -
2012-06-06 19:43:36 +00:00
florian
5393efb128 * patch by Nico Erfurth: Support A_MOV and A_MVN in RedundantMovProcess
This changes the ARM Peephole optimizer RedundantMovProcess to also
recognize and modify something like the following sequence.

mov r0, r1
mov r0, r0, lsl #8

this would be changed into

mov r0, r1, lsl #8

git-svn-id: trunk@21506 -
2012-06-06 19:43:05 +00:00
florian
4ea1d22c5a * patch by Nico Erfruth: Support BX for function returns on armv5+
BX is supported from ARMv4T onwards, but i don't have a armv4t device to
test it.

Using BX instead of mov pc,lr allows for a better pipeline utilization
by enabling the CPUs branch predictor to work properly.

git-svn-id: trunk@21505 -
2012-06-06 19:42:26 +00:00
Jonas Maebe
12553a9367 * don't give -CO warnings or hints for ordinal constants, because those
are already checked by range checking (and were checked wrongly by -CO
    checking) (mantis #19581)

git-svn-id: trunk@21504 -
2012-06-06 19:28:22 +00:00
Jonas Maebe
ca29bb10af - zapped some gremlins in comments
git-svn-id: trunk@21503 -
2012-06-06 18:55:38 +00:00
Jonas Maebe
3414f91590 * minor reformatting, and removed superfluous assigned test (the value is
already used before that test)

git-svn-id: trunk@21502 -
2012-06-06 18:51:14 +00:00
Jonas Maebe
9412d4abd2 * add a reference to the procsym corresponding to the chosen overloaded
procdef, so that the unit containing it is marked as "used" (mantis #15966)

    Even better would be if the unit containing the originally found procsym
    were not also marked as used, but that would require a significant
    rewrite (all symbols found using symboltable helpers are automatically
    marked by those routines)

git-svn-id: trunk@21501 -
2012-06-06 18:46:01 +00:00
Jonas Maebe
df99ef17b6 + mfpvr, mfdcr, mtdcr, mfdec and mtdec opcodes (mantis #18878)
git-svn-id: trunk@21500 -
2012-06-06 18:17:55 +00:00
Jonas Maebe
769a4ecc6a * reduced complexity/running time of the test
git-svn-id: trunk@21499 -
2012-06-06 18:17:36 +00:00
svenbarth
aa0f1bdf26 pdecl.pas, readconstant: If we are parsing a constant declaration in a generic and we encounter an intrinsic then this intrinsic is left as is (thus the node p returned by comp_expr will be a inlinen instead of an expected ordconstn, stringconstn, etc.). Nevertheless we need to create a symbol for the constant (which isn't done otherwise). In the case of SizeOf a constant "0" will be created. This fixes Mantis #21593.
git-svn-id: trunk@21498 -
2012-06-06 15:00:28 +00:00
svenbarth
7332a0f801 ninl.pas, tinlinenode.pass_typecheck: an intrinsic which has a generic type parameter as argument is left as is (e.g. a call) and thus this needs to be respected when typechecking a SizeOf. Fixes Mantis #21592.
git-svn-id: trunk@21497 -
2012-06-06 14:41:12 +00:00
svenbarth
bf9cb352b3 ptype.pas, single_type: If the generic dummy type is used in mode Delphi then generate an error. This fixes Mantis #21363.
git-svn-id: trunk@21496 -
2012-06-06 13:15:18 +00:00
Mattias Gaertner
a5e05d0d65 fpimage: tiff: fixed writing bits per channel
git-svn-id: trunk@21494 -
2012-06-06 00:01:41 +00:00
Tomas Hajny
95bb7a9129 * don't check for returned string in case of wildcards and multiple matches (order depends on the underlying filesystem and not guaranteed)
git-svn-id: trunk@21493 -
2012-06-05 22:24:57 +00:00
sergei
7d3294b504 * Moved 4 procedures for basic reading/writing TObjSection contents into ogcoff.pas, so they don't have to be reimplemented for every output format.
git-svn-id: trunk@21492 -
2012-06-05 19:52:40 +00:00
michael
efe5362670 * Fixed bug #19376: when quoting, quote character should be doubled
git-svn-id: trunk@21491 -
2012-06-05 18:43:55 +00:00
michael
f97c4b7b57 * Applied patch from Reinier Olislaghers to quote memo fields (bug 19759)
git-svn-id: trunk@21490 -
2012-06-05 18:35:22 +00:00
Mattias Gaertner
54ba30ec10 fpimage: tiff: write tiles
git-svn-id: trunk@21489 -
2012-06-05 18:33:33 +00:00
Jonas Maebe
8329e60d28 * also support running the "full" and "fulldb" targets with -jX by
serializing their individual steps

git-svn-id: trunk@21488 -
2012-06-05 14:47:41 +00:00
michael
a0facbf1af * Applied rename patch from Luiz Americo
git-svn-id: trunk@21487 -
2012-06-04 19:04:44 +00:00
sergei
5b035afc9b * sizeof(tagVariant) should be 24 for 64 bit targets, so it is assignment-compatible with Variant type. Resolves #22050.
git-svn-id: trunk@21486 -
2012-06-04 18:22:36 +00:00
Mattias Gaertner
71f5e86a7f fcl-image: tiff: register handler, write hostname, maker, model, software
git-svn-id: trunk@21485 -
2012-06-04 17:09:38 +00:00
sergei
263b46be86 * ogelf.pas: Changed MaybeSwap* into procedures, makes them more suitable for reuse in the upcoming reader (and reduces amount of copying while writing, too).
git-svn-id: trunk@21484 -
2012-06-04 10:27:14 +00:00
Mattias Gaertner
ca0cc29a26 fcl-image: tiff: reading CMYK, handling of unorderd tags, alpha mode 1, multiple pages, tiles
git-svn-id: trunk@21483 -
2012-06-04 09:39:09 +00:00
florian
31b1678757 * write parameter refs to ppu (only 1=used; 0=unsed), fixes parameter usage checking of inlined procedures loaded from units
git-svn-id: trunk@21482 -
2012-06-03 18:56:44 +00:00
florian
e96dc4204e * version update
git-svn-id: trunk@21481 -
2012-06-03 18:55:44 +00:00
Jonas Maebe
4fe93bbff0 * clarified that you should only clean between test suite runs for the
same platform, not between any two runs

git-svn-id: trunk@21480 -
2012-06-03 18:03:39 +00:00
Jonas Maebe
04df0d537e * more finegrained parallelism support for testsuite runs: the tests are no
longer split per directory, but in chunks of 100 tests (configurable via
    the new CHUNKSIZE=xxx Makefile parameter), which then all can be checked
    in parallel
   o dependencies between tests are handled by always putting tests whose
     name is the same except for the last character into the same chunk
   o as previously, -jx can only be used for the "all" target, other targets
     cannot be executed in parallel
   o the "units" directory has been renamed "tstunits" because otherwise
     "make distclean" will remove it entirely now that the main tests
     makefile also compiles a program

git-svn-id: trunk@21479 -
2012-06-03 17:56:28 +00:00
marco
c7a90ef5d2 * if wifexited, pass exitcode unmodified. Bug #22055, though it doesn't close that.
git-svn-id: trunk@21478 -
2012-06-03 16:18:51 +00:00
marco
1edca76490 * Patch from #22183 by Luiz. Fix a copy paste error and
change some redundant AS statements to casts. (redundant 
  because they were found by find for the respective type)

git-svn-id: trunk@21476 -
2012-06-03 14:54:44 +00:00
marco
0b60e0dbcf * addition of stdole2 and eventsink to winceunits. Patch by Ludo #22157
I btw doubt this kind of cross package including of units proper in
   fpmake ?

git-svn-id: trunk@21474 -
2012-06-03 14:29:27 +00:00
marco
347ab7651a * changed delp from unit dos to unit sysutils. (path lengths)
git-svn-id: trunk@21472 -
2012-06-03 12:36:56 +00:00
marco
6033d3df0d * adding a copyright banner and a short description.
git-svn-id: trunk@21471 -
2012-06-03 11:25:37 +00:00
marco
bc56239af7 * removed checkcvs. We stopped using CVS 7 years ago, and don't check $Log:'s
that often anymore. There is nothing worth keeping from this source (which is by me btw)

git-svn-id: trunk@21470 -
2012-06-03 11:16:17 +00:00