pierre
4d8ebe5d1e
Do not modify $sp inside function body for mipscpu
...
git-svn-id: trunk@21536 -
2012-06-07 23:17:52 +00:00
pierre
c1269b0305
* Patch from Fuxin Zhang: po_assembler special code also disabled for mips and mipsel CPUs
...
git-svn-id: trunk@21535 -
2012-06-07 23:13:16 +00:00
pierre
ac38901d2a
* Patch from Fuxin Zhang: set first_pram_offset to 0 for mips and mipsel CPUs
...
git-svn-id: trunk@21534 -
2012-06-07 23:11:16 +00:00
pierre
1e1e0f969e
* Patch from Fuxin Zhang: remove cpuflags define for mips and mipsel CPUs
...
git-svn-id: trunk@21533 -
2012-06-07 23:08:18 +00:00
pierre
d6d237d688
* Patch from Fuxin Zhang: FPC_HAS_INTERNAL_SAR set for mips and mipsel CPUs
...
git-svn-id: trunk@21532 -
2012-06-07 23:07:32 +00:00
pierre
160037eb9d
* Patch from Fuxin Zhang: Mips specific MAP_XXX constants
...
git-svn-id: trunk@21531 -
2012-06-07 23:05:27 +00:00
pierre
a9be2fd137
* Patch from Fuxin Zhang: Mips specific MAP_XXX constants
...
git-svn-id: trunk@21530 -
2012-06-07 23:05:11 +00:00
pierre
6a985f1ece
* Patch from Fuxin Zhang: Mips specific MAP_XXX constants
...
git-svn-id: trunk@21529 -
2012-06-07 23:04:51 +00:00
pierre
bd060f4627
Stat record matching closer system include file
...
git-svn-id: trunk@21528 -
2012-06-07 23:03:41 +00:00
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