florian
05a8783b1e
* patch by Nico Erfurth:
...
Improve ARM-Peephole Optimizers
1.) Introduce a ARM-specific RegUsedAfterInstruction which analyzes
instructions and reg allocation information to see if a register is
really needed afterwards to decide if some special optimizations can be
done.
2.) Introduce "RemoveSuperfluousMove"
This tries to fold mov into a previous Data-Instruction (ADD, ORR, etc)
or LDR-Instruction.
3.) Introduce new Optimizer "DataMov2Data" and modify LdrMov2Ldr to use
RemoveSuperfluousMove
4.) Expand Ldr* and Str* Optimizers to also work on {Ldr,Str}{,b,h}
git-svn-id: trunk@21314 -
2012-05-17 08:31:44 +00:00
michael
ad4876dcb5
* Applied patch from Joao Morais to customize request/response (bug 21980)
...
git-svn-id: trunk@21313 -
2012-05-17 08:07:33 +00:00
florian
798c9340cc
* patch by Nico Erfurth:
...
Inline a couple of small functions of the ARM-Compiler
These small changes improved overall compile times of the fpc suite by
about 2-3% running on an 1.2GHz Kirkwood.
git-svn-id: trunk@21312 -
2012-05-17 08:03:51 +00:00
florian
c39d12a618
* fix longjmp for -Cparmv7m, resolves #22014
...
git-svn-id: trunk@21311 -
2012-05-15 18:56:27 +00:00
florian
b2813abec2
+ patch by Bernd to add the push/pop mnemonic for arm/thumb-2, resolves #22041
...
git-svn-id: trunk@21310 -
2012-05-15 18:52:09 +00:00
florian
8832a34b67
* fix reg. allocs even for procedures without labels
...
git-svn-id: trunk@21309 -
2012-05-15 18:09:12 +00:00
florian
17dd362a5a
* white space
...
git-svn-id: trunk@21308 -
2012-05-15 18:08:52 +00:00
florian
2560266e5d
* skip comments properly when searching for places for constant pool distances
...
git-svn-id: trunk@21307 -
2012-05-15 18:08:19 +00:00
florian
2402e8e504
* fixes FindRegAlloc
...
+ GetAllocationString
* fix comment for lazarus
* change behaviour of UpdateUsedRegs in PeepHoleOptPass1
git-svn-id: trunk@21306 -
2012-05-15 18:07:52 +00:00
florian
d4c120cb34
* fix comment so it does not confuse lazarus
...
git-svn-id: trunk@21305 -
2012-05-15 18:07:25 +00:00
florian
75e62e42e4
* add debug statements
...
* avoid possible problems with unknown ra_ types
git-svn-id: trunk@21304 -
2012-05-15 18:07:08 +00:00
florian
748694a325
* fixes some issues with reg. allocation information
...
git-svn-id: trunk@21303 -
2012-05-15 18:06:41 +00:00
Jonas Maebe
08784aca44
* fixed compilation for high level code generator targets after r21287
...
git-svn-id: trunk@21302 -
2012-05-15 13:05:27 +00:00
Jonas Maebe
d6f85c35b5
- removed stray symtablestack.push() after r21282
...
git-svn-id: trunk@21301 -
2012-05-15 13:04:51 +00:00
Jonas Maebe
4f396735f4
* support LOC_(C)SUBSETREG/REF in thlcgobj.a_load_loc_ref() (should fix
...
mantis #22029 )
git-svn-id: trunk@21300 -
2012-05-15 12:13:10 +00:00
sergei
22d1077cf4
* TXMLRegistry: treat absent child text node as empty value for string and binary types. This is necessary because xml does not preserve empty text nodes. Resolves #16395 .
...
+ Test
git-svn-id: trunk@21299 -
2012-05-15 12:08:58 +00:00
sergei
c628942e15
* Fixed compilation with -CR
...
git-svn-id: trunk@21298 -
2012-05-15 08:45:38 +00:00
Jonas Maebe
0fd9228deb
* extended r21290 to also apply to Java interfaces (they can also contain
...
constants)
git-svn-id: trunk@21297 -
2012-05-14 21:27:44 +00:00
Jonas Maebe
9ba5267b61
* use libc functions instead of (wrong) translations of C code for most
...
functions (except for TCGetPGrp, which behaves differently in Pascal
compared to the C version -- although that may be a bug in itself)
(mantis #21665 )
git-svn-id: trunk@21295 -
2012-05-14 18:12:30 +00:00
Jonas Maebe
618a5e8e2e
* fixed operand order for AND-operation in smallset<=/=>smallset code
...
(fixes taddset, correction to r21095)
git-svn-id: trunk@21294 -
2012-05-14 17:41:48 +00:00
sergei
6e78f5217e
* TRegistry (XML flavor): check if FSysData is actually assigned in methods that are called from destructor. Destructor is executed when an exception occurs in constructor, but FSysData may not yet be assigned in this case.
...
git-svn-id: trunk@21293 -
2012-05-14 14:28:48 +00:00
sergei
c61c192c23
* Fixed class cast error (THTMLDocument is not a descendant of THTMLCustomElement).
...
git-svn-id: trunk@21292 -
2012-05-14 13:28:52 +00:00
marco
fedd899736
* deprecated winexec, a win16 overleft which MS deprecated 17 years ago.
...
git-svn-id: trunk@21291 -
2012-05-14 09:43:53 +00:00
paul
4312aa4e08
compiler: allow compiler to find real class definition during class members parse to handle references to self constants + test
...
git-svn-id: trunk@21290 -
2012-05-14 04:50:49 +00:00
florian
53c39d5420
* fixes peephole optimizer problems with -O3 on x86-64
...
git-svn-id: trunk@21288 -
2012-05-13 19:19:04 +00:00
Jonas Maebe
edd42aa42a
* moved subsetref/reg and bit_set/test support from cgobj to hlcgobj for
...
future use by high level code generator targets
o this in turn required that all a_load*_loc* methods are called via
hlcg rather than via cg, since a location can be a subsetref/reg and
and those are no longer handled in tcg
o that then required moving several force_location_* routines into
thlcg because they use a_load_loc*, but did not take tdef size
parameters (which are required by the thlcg a_load_loc* routines)
o the only practical consequence is that from now on, you have to
use hlcg.location_force_mem/reg() (fpureg not yet) and
hlcg.gen_load_loc_cgpara() instead of the removed versions from ncgutil,
and hlcg.a_load*loc*() instead of cg.a_load*loc* if a subsetref/reg
might be involved
git-svn-id: trunk@21287 -
2012-05-13 12:33:10 +00:00
Jonas Maebe
3ba801d37c
* fix loading 64 bit floating point parameters passed half in an integer
...
register and half on the stack into a VFP register on ARM (mantis
#21917 )
git-svn-id: trunk@21286 -
2012-05-13 12:14:34 +00:00
Jonas Maebe
ef2d665a50
+ support for REV and several other ARMv6/ARMv6T2+ opcodes (mantis #21888 )
...
git-svn-id: trunk@21285 -
2012-05-13 12:14:26 +00:00
Jonas Maebe
f95925dd91
* don't push/pop current_module.localsymtable when adding explicitly created
...
pointer/arraydefs, because these operations can have side-effects in case
of helpers (will add/remove helpers, so popping after the insertion
removed all helpers in the static symtable of the current unit)
git-svn-id: trunk@21282 -
2012-05-12 22:24:27 +00:00
marco
2ae09dc995
* Patch from Perdhevi/Lacak2 to improve keyfields existence.
...
Fixes code part of mantis #15286 , which turns into a documentation issue now.
git-svn-id: trunk@21281 -
2012-05-12 21:05:41 +00:00
marco
642a180809
Fix from Lacak2 for Mantis #21994 fixes
...
* when records are inserted into empty dataset and then all canceled by CancelUpdates AV is raised
* another fix for bug #18004 , applied in rev.20531 (improved in rev.21197)
(original approach is not good because when record is inserted and deleted and again inserted,
then same memory block can be returned, which leads to confusion, because we get same BookmarkData for distinct records)
* +test
git-svn-id: trunk@21280 -
2012-05-12 20:15:52 +00:00
Jonas Maebe
85a3fd3357
+ ossinttype/osuinttype defs that correspond to OS_SINT/OS_INT for use in
...
the high level code generator
git-svn-id: trunk@21279 -
2012-05-12 16:03:15 +00:00
Jonas Maebe
c1b1eadb98
* factored out the intialization of uinttype/sinttype/ptruinttype/ptrsinttype
...
from create_intern_types and load_intern_types (+ the version from
load_intern_types was out-of-date)
git-svn-id: trunk@21278 -
2012-05-12 16:03:02 +00:00
michael
264a013087
* Example from Reinier Olislagers to demo TFBAdmin component (bug 22012)
...
git-svn-id: trunk@21277 -
2012-05-12 12:19:45 +00:00
michael
3296858f44
* Added TFBAdmin component from Ludo Brands (bug 22012)
...
git-svn-id: trunk@21276 -
2012-05-12 12:15:56 +00:00
paul
62a91ef626
compiler: don't search symbol in other symtables than in found nested class, fix wrong test + add another one
...
git-svn-id: trunk@21275 -
2012-05-12 08:21:50 +00:00
paul
62b59235ca
compiler: fix accessing typed constants inside class declaration (bug #21941 )
...
git-svn-id: trunk@21273 -
2012-05-12 01:09:56 +00:00
svenbarth
b3595893c8
pgenutil.pas, generate_specialization: set the correct module index, so that warnings, etc. that are generated for a type declaration are printed using the module where the generic came from (this is already done for method bodies, but not for declarations)
...
git-svn-id: trunk@21271 -
2012-05-11 06:44:12 +00:00
svenbarth
810bd7ddab
+ symtable.pas, tspecializesymtable.create: SymList and DefList do not need to own the symbols and defs as they are moved to another symtable before the specialize symtable is destroyed (avoids the need to call "extract" on those lists)
...
* pgenutil.pas, generate_specialization: Correctly change the ownership of extracted symbols and defs by calling ChangeOwner on the symbol/def which does all the magic of changing the owner and adding it to the corresponding list of the given symtable. This fixes Mantis #21550
* Adjusted tw21550.pp so that it enforces the generation of debug information which (as this was the option which caused the above mentioned bug to show)
git-svn-id: trunk@21270 -
2012-05-10 06:27:32 +00:00
paul
d79eee8ed1
compiler: write a warning if unit should be compiled with built-in system codepage for ansistring constants but this codepage is not known by the compiler
...
git-svn-id: trunk@21269 -
2012-05-10 01:24:18 +00:00
joost
f011d02833
* Raise an exception when a TBufDataset is opened while there is no dataset created
...
git-svn-id: trunk@21268 -
2012-05-09 15:56:55 +00:00
joost
cbb8b23c71
* fixed the recognition of xml-files using the TBufDataset.filename property
...
git-svn-id: trunk@21267 -
2012-05-09 14:49:53 +00:00
svenbarth
4fc7515591
* pdecsub.pas, parse_proc_dec: always parse operator overload heads as block type bt_body so that operators like ">", "=>" or "<>" are resolved to the correct tokens ("<>" would be a sequence of "_LSHARPBRACKET _RSHARPBRACKET" instead of _NE otherwise). Fixes Mantis #21127
...
git-svn-id: trunk@21266 -
2012-05-09 12:32:34 +00:00
marco
343b8e299c
* Mantis #21995 , rewrite mantis #17199 changes (IB datetime milliseconds)
...
using composedatetime.
git-svn-id: trunk@21265 -
2012-05-09 12:28:28 +00:00
svenbarth
def357287e
* revert revision 21251 for pdecvar.pas: not generating the bss-data for the static symbol for a generic breaks linking with debug info enabled; I'll need to find a better solution to avoid unneeded use of space (luckily it wasn't needed to fix any bug ^^)
...
git-svn-id: trunk@21264 -
2012-05-09 12:02:41 +00:00
Jonas Maebe
db955f842f
* fixed (harmless) range check errors
...
git-svn-id: trunk@21263 -
2012-05-08 20:02:48 +00:00
Jonas Maebe
641b259aed
* adjusted thlcg.g_rangecheck() implementation so it can be used for all
...
targets and removed (the almost identical) tcg.g_rangecheck()
git-svn-id: trunk@21262 -
2012-05-08 20:02:36 +00:00
Jonas Maebe
11e9f95580
* fixed (not harmless) class cast error when indexing an array[orddef] using
...
a non-orddef (e.g., a variant)
git-svn-id: trunk@21261 -
2012-05-08 20:02:26 +00:00
Jonas Maebe
95b8b95c9c
* fixed (harmless) class cast error
...
git-svn-id: trunk@21260 -
2012-05-08 20:02:18 +00:00
Jonas Maebe
41d86f2b26
* fixed (harmless) class cast error when checking whether an aggregate
...
has the same size as one of its members to determine whether we can
exchange two temps rather than copying one to the other
git-svn-id: trunk@21259 -
2012-05-08 20:02:04 +00:00