Jonas Maebe
5a8679131f
+ support for new/dispose with extra size parameter in macpas mode
...
(mantis #9027 )
git-svn-id: trunk@7600 -
2007-06-08 18:02:31 +00:00
Jonas Maebe
de75b34dba
* fixed another IE with indexing bitpacked arrays of composite types,
...
this time with constant rather than variable indices
git-svn-id: trunk@7599 -
2007-06-08 13:53:01 +00:00
Jonas Maebe
5b24374cc2
* workaround for a bug in the assembler, linker or gdb on Mac OS X whereby
...
files with debuginfo but without any code could mess up the symbol
tables used/built by gdb, resulting in various problems when debugging.
The same workaround is used in gcc by Apple (mantis #9011 )
git-svn-id: trunk@7597 -
2007-06-08 12:29:30 +00:00
Jonas Maebe
65e35ac401
* fixed internal error with bitpacked arrays of composite types whose
...
size is not a power of two
git-svn-id: trunk@7596 -
2007-06-08 09:11:08 +00:00
daniel
616fc0afcc
* Adjust indent.
...
git-svn-id: trunk@7591 -
2007-06-06 20:10:35 +00:00
daniel
fe5118e903
* Reduce false positives of type_h_use_div_for_int.
...
git-svn-id: trunk@7590 -
2007-06-06 19:50:04 +00:00
florian
af352cda24
Merged revisions 7586 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/ssa/compiler
........
r7586 | florian | 2007-06-05 20:19:26 +0200 (Di, 05 Jun 2007) | 1 line
* updates from Karl-Michael Schindler
........
git-svn-id: trunk@7587 -
2007-06-05 18:22:54 +00:00
florian
8e3ade9f1f
Merged revisions 7567 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/ssa/compiler
........
r7567 | florian | 2007-06-03 22:53:07 +0200 (So, 03 Jun 2007) | 2 lines
* better code generation for op_reg_reg_reg if src1 and dst are equal
........
git-svn-id: trunk@7569 -
2007-06-03 21:02:17 +00:00
florian
63b35fdb2e
+ give more sophisticated warnings about uninitalized variables when life info is available
...
git-svn-id: trunk@7562 -
2007-06-03 17:35:48 +00:00
florian
2761b9e096
* life info generation works for the whole compiler if exception catching blocks are ignored
...
git-svn-id: trunk@7561 -
2007-06-03 16:37:59 +00:00
florian
496d73dc9d
+ dfa for more node types
...
git-svn-id: trunk@7560 -
2007-06-03 10:33:50 +00:00
yury
73b8fba64b
* fixed linking with eVC++ object files (bug #8542 ).
...
git-svn-id: trunk@7556 -
2007-06-02 22:14:35 +00:00
florian
36471608c1
* fixed regression caused by r7180
...
git-svn-id: trunk@7555 -
2007-06-02 20:35:17 +00:00
pierre
43f72f56f9
* fix 'ppc386 -F' crash
...
git-svn-id: trunk@7546 -
2007-06-01 22:50:37 +00:00
Jonas Maebe
2fe79903d6
* added missing "reserved" field to new code page files to fix warnings
...
git-svn-id: trunk@7537 -
2007-05-31 15:07:48 +00:00
yury
55394d9e72
* Added FlushOutput after "Linking..." message by internal linker. Now this message is visible in Lazarus during linking.
...
git-svn-id: trunk@7518 -
2007-05-29 17:04:53 +00:00
Jonas Maebe
8bcb6e689d
* only check validity of assembler instructions in pass_2, after all
...
local operands have been resolved (mantis #8950 )
git-svn-id: trunk@7516 -
2007-05-29 16:53:28 +00:00
yury
2b84a4643a
* Fixed bug #6501 : multiple resource files are correctly linked to executable.
...
It is done in the following way:
When unit is compiled, .rc file are compiled to .res and list of unit's resource files is stored in .ppu
Before final linking all program's .res files are collected into global .res file (.res files are easily concatenated).
Then this global .res files is compiled to single .or file, which is linked to executable.
As a result global resource index is created and the problem is fixed.
Old resource processing behavior still supported when tresinfo.rcbin is not set for target.
New resource processing is activated for windows and linux. Cross compiled windres can be used to compile .rc files on linux.
git-svn-id: trunk@7515 -
2007-05-29 15:51:02 +00:00
Jonas Maebe
95da9cb07a
* fixed missing propagation of changed parameter type
...
of first readstr parameter in case it wasn't a string
git-svn-id: trunk@7514 -
2007-05-29 14:21:12 +00:00
Jonas Maebe
4ce4742bc8
* mark invisible high parameters of open arrays/arrays of const
...
of parent procedures which are implicitly accessed from within
nested procedures for range checking purposes as non-regable in
the resulttype pass of the nested procedure (as opposed to in its
pass1/pass2, because by then the regvar assignment of the parent
procedure is already finished) (mantis #8975 )
* related fix regarding checking whether the high parameter actually
exists (must check calling convention of the procedure to which the
high parameter belongs, which is not the same as checking that of
the current procedure in case of nested procedures)
git-svn-id: trunk@7512 -
2007-05-29 13:42:49 +00:00
Jonas Maebe
628ddfa160
* fixed (harmless) range error
...
git-svn-id: trunk@7511 -
2007-05-29 13:04:15 +00:00
Jonas Maebe
60d424e97d
* another check for register types (should fix new failure
...
of webtbs/tw7161)
git-svn-id: trunk@7510 -
2007-05-29 11:12:37 +00:00
peter
e1132f8fe1
* check register type to not mixup sse registers
...
git-svn-id: trunk@7505 -
2007-05-28 19:12:12 +00:00
florian
7b519c1ce3
* prevent usage of units being compiled with different fpu emulation state
...
git-svn-id: trunk@7501 -
2007-05-28 16:18:35 +00:00
florian
a3d906f1ca
- removed several ;;
...
git-svn-id: trunk@7498 -
2007-05-28 15:59:17 +00:00
Jonas Maebe
e1b7ce5aa9
* fixed dynarr_property:=nil + test
...
git-svn-id: trunk@7495 -
2007-05-28 13:48:32 +00:00
peter
a58797f989
* use linkunitofiles instead of linkotherofiles to prevent path from being stored in ppu
...
git-svn-id: trunk@7490 -
2007-05-27 15:27:08 +00:00
peter
2e55b74a87
* force Archvie bit for file to get a difference if a fileexists or not
...
git-svn-id: trunk@7485 -
2007-05-27 10:50:51 +00:00
Jonas Maebe
fa5e232055
* fixed assigning an interface to a property after better property
...
checks
git-svn-id: trunk@7484 -
2007-05-27 10:25:46 +00:00
Jonas Maebe
a767e89a5b
- removed a comment which wasn't true anymore
...
git-svn-id: trunk@7472 -
2007-05-25 12:30:14 +00:00
Jonas Maebe
4919cecb3b
+ defined FPC_SUPPORTS_UNALIGNED if the compiler supports the
...
unaligned() expression
git-svn-id: trunk@7469 -
2007-05-25 12:00:55 +00:00
Jonas Maebe
a244d54d6f
* fixed a_load_ref_reg_unaligned in case reg is used in ref
...
git-svn-id: trunk@7466 -
2007-05-25 08:49:07 +00:00
yury
cf19c0993a
* fixed bug #8919 .
...
+ test.
git-svn-id: trunk@7448 -
2007-05-24 08:15:28 +00:00
michael
001ba5de84
* Applied patch from Ido Kanner
...
git-svn-id: trunk@7446 -
2007-05-24 07:42:39 +00:00
peter
c83f5c8546
* use elf writer for beos
...
git-svn-id: trunk@7439 -
2007-05-24 07:08:29 +00:00
peter
ecbcdcdabb
* added status.currentmodulestate
...
git-svn-id: trunk@7435 -
2007-05-24 06:21:31 +00:00
Jonas Maebe
683de5ada2
* don't destroy source register when performing division of signed
...
number by constant power of two
git-svn-id: trunk@7431 -
2007-05-23 14:05:27 +00:00
peter
b29e4ad12f
* add used by unit to can't find unit message
...
git-svn-id: trunk@7430 -
2007-05-23 13:40:27 +00:00
peter
e2db0a3982
* cleanup current module status
...
* new set_current_module function that sets the current_module and
all related variables. Also closes scanner files if required, but
that might still need some optimization to prevent closing/opening
files too often
git-svn-id: trunk@7428 -
2007-05-23 13:33:53 +00:00
Jonas Maebe
085689af60
+ support for unaligned stores
...
* avoid some unnecessary unaligned load sequences
git-svn-id: trunk@7427 -
2007-05-23 12:03:42 +00:00
Jonas Maebe
1e10424c6b
* fixed a_load_reg_ref_unaligned() so it doesn't destroy the source
...
register anymore
git-svn-id: trunk@7426 -
2007-05-23 11:45:26 +00:00
Jonas Maebe
528eb2ec50
* shl/shr count on sparc is "mod <bitsize>" -> fix subsetref routines to
...
take that behaviour into account
git-svn-id: trunk@7424 -
2007-05-23 09:32:48 +00:00
peter
b09df37cef
* size of secrel32 added
...
git-svn-id: trunk@7421 -
2007-05-22 20:36:39 +00:00
florian
9f56a89617
+ added cyrillic code page tables
...
+ support -Fm<x> to load unicode tables from rtl/ucmaps, they must be in the same dir as the compiler though
git-svn-id: trunk@7420 -
2007-05-22 19:38:39 +00:00
Jonas Maebe
5cf2511283
- removed/disabled all normalset code (except for bootstrapping), since
...
it's no longer needed
git-svn-id: trunk@7403 -
2007-05-20 11:19:36 +00:00
Jonas Maebe
497df2bb37
* also check for properties passed to read(ln) when reading integers
...
different from the native size, or when reading enums (because those
are handled via a temp internally -> regular var parameter checks
were not automatically performed)
git-svn-id: trunk@7398 -
2007-05-19 18:53:24 +00:00
Jonas Maebe
02a69ff049
* mwpascal is also a clearstack_pocall (fixes e.g. calling
...
CGAffineTransformMakeRotation on Darwin/i386)
git-svn-id: trunk@7397 -
2007-05-19 18:10:22 +00:00
Jonas Maebe
a0b57eddb5
* new internal set format for big endian systems. Advantages:
...
* varsets ({$packset x}) are now supported on big endian targets
* gdb now displays sets properly on big endian systems
* cleanup of generic set code (in, include/exclude, helpers), all
based on "bitpacked array[] of 0..1" now
* there are no helpers available yet to convert sets from the old to
the new format, because the set format will change again slightly
in the near future (so that e.g. a set of 24..31 will be stored in
1 byte), and creating two classes of set conversion helpers would
confuse things (i.e., it's not recommended to use trunk currently for
programs which load sets stored to disk by big endian programs compiled
by previous FPC versions)
* cross-endian compiling has been tested and still works, but one case
is not supported: compiling a compiler for a different endianess
using a starting compiler from before the current revision (so first
cycle natively, and then use the newly created compiler to create a
cross-compiler)
git-svn-id: trunk@7395 -
2007-05-19 17:15:15 +00:00
Jonas Maebe
2546dc5a8d
* allow to load the address of a bitpacked array in assembler code
...
git-svn-id: trunk@7389 -
2007-05-18 11:14:43 +00:00
florian
39dc562326
* changed some message handling to ansistring, no slow down measurable with make cycle, resolves #8890
...
git-svn-id: trunk@7370 -
2007-05-16 21:25:55 +00:00
peter
e7ead9fc9f
* nested procedures are not supported in generic methods
...
git-svn-id: trunk@7368 -
2007-05-16 20:56:00 +00:00
peter
cbb3667d73
* default dynamic linker for i386
...
git-svn-id: trunk@7367 -
2007-05-16 20:34:21 +00:00
peter
377aae4ba0
* only add .o extension if no extension is provided. fixes 8520
...
git-svn-id: trunk@7366 -
2007-05-16 20:11:09 +00:00
peter
6c916a032d
* support - and + after -S options
...
git-svn-id: trunk@7365 -
2007-05-16 19:20:32 +00:00
Jonas Maebe
6555f37cff
* do not search variant operators when looking for an overloaded
...
operator for a non-variant type (was already intended that way,
but checks didn't work) (mantis #7070 ) + tests
* some tab->spaces in defcmp.pas
git-svn-id: trunk@7359 -
2007-05-16 13:59:35 +00:00
Jonas Maebe
fdc813db9a
* no need to synchronise the upper bound of a for-loop after the loop
...
anymore if it is a regvar, because it cannot be a regvar anymore
after the fix for tw8883
git-svn-id: trunk@7358 -
2007-05-16 12:13:28 +00:00
yury
df36385c89
* fixed mantis #8887 . (please merge to fixes).
...
git-svn-id: trunk@7356 -
2007-05-16 09:04:34 +00:00
peter
ea92a0e1a7
* prefer overloaded methods in current object over
...
inherited overloaded methods
git-svn-id: trunk@7355 -
2007-05-16 08:12:14 +00:00
Jonas Maebe
2c5a284060
* upper bound of for-loop cannot be a regvar, because the regvar may
...
be modified inside the loop (mantis #8883 )
git-svn-id: trunk@7352 -
2007-05-15 20:25:30 +00:00
tom_at_work
8c70e81c9c
* 6 bit sized members of packed records can never be split over more than 2 bytes too
...
git-svn-id: trunk@7350 -
2007-05-15 19:03:55 +00:00
peter
83ccc62cf0
* during specialization use the symtable stack at
...
definition time, fixes tgeneric14
git-svn-id: trunk@7348 -
2007-05-15 17:39:09 +00:00
pierre
e0783f446e
+ new program to ease cross RTL compilation tests
...
git-svn-id: trunk@7346 -
2007-05-15 13:41:26 +00:00
peter
bf7275576c
* use sysutils instead of dos
...
git-svn-id: trunk@7342 -
2007-05-15 07:18:55 +00:00
peter
aa72495049
* fix resourcestring assignment in typedconst
...
git-svn-id: trunk@7339 -
2007-05-15 06:52:36 +00:00
Jonas Maebe
20206500aa
* don't change a sequence of shifts and sub/adds into a lea() in case
...
the flags are read afterwards (broke shldl/sub/sbb sequence generated
for 64 bit "*2", which appears in bitpacked size calculation)
git-svn-id: trunk@7336 -
2007-05-14 20:37:42 +00:00
Jonas Maebe
7bd8d0200e
* handle mod/div between a cardinal/qword and a smaller unsigned variable
...
(byte, word, postive subrange) as an unsigned operation (mantis #8870 )
git-svn-id: trunk@7334 -
2007-05-14 19:24:33 +00:00
Jonas Maebe
c80d4225ca
+ support for ISO Extended Pascal ReadStr() and WriteStr() routines
...
git-svn-id: trunk@7333 -
2007-05-14 17:34:01 +00:00
peter
c831b2fb00
* set symoptions for all implicit created parameters
...
git-svn-id: trunk@7321 -
2007-05-12 22:16:06 +00:00
daniel
182fca72f2
* Change spill_* routines to return Taicpu instead of Tai to increase
...
strong typing.
* Fix PowerPC R0 register allocation
git-svn-id: trunk@7317 -
2007-05-12 15:43:16 +00:00
yury
821c91c230
* fix Mantis #8760 : do not put actually empty sections in executable by internal linker.
...
* .bss section no longer required by internal linker.
git-svn-id: trunk@7316 -
2007-05-12 13:32:52 +00:00
Jonas Maebe
acad2913d6
* a loadsize of 1 can never cause alignment problems in subsetref
...
routines
git-svn-id: trunk@7308 -
2007-05-11 09:17:01 +00:00
peter
b3c650bd98
* fix shortstring:=char
...
git-svn-id: trunk@7302 -
2007-05-10 06:01:42 +00:00
florian
d469e3a7ef
+ do life dfa for exit
...
git-svn-id: trunk@7299 -
2007-05-07 20:30:19 +00:00
florian
c0d27b5482
* life info dfa for break and continue
...
git-svn-id: trunk@7298 -
2007-05-07 20:07:53 +00:00
florian
62d54389c8
+ life dfa for if, label and goto
...
git-svn-id: trunk@7297 -
2007-05-07 19:14:21 +00:00
florian
85406e8a15
* updates from Karl-Michael Schindler
...
git-svn-id: trunk@7295 -
2007-05-07 12:02:32 +00:00
florian
45cda67f3f
+ first basically working (not all node types yet) dfa implementation determining life information
...
git-svn-id: trunk@7294 -
2007-05-06 21:33:39 +00:00
florian
867e00dee3
* backup commit of more dfa stuff
...
git-svn-id: trunk@7287 -
2007-05-06 10:59:09 +00:00
florian
87bdf13f9f
+ first draft for dfa
...
git-svn-id: trunk@7282 -
2007-05-05 20:50:09 +00:00
yury
b2605b8ff6
* Internal linker now correctly links to gcc import libraries. It fixes win32 IDE with debugger support.
...
git-svn-id: trunk@7278 -
2007-05-05 19:21:30 +00:00
Vincent Snijders
e18966c372
* write resource object file to unit output directory
...
git-svn-id: trunk@7276 -
2007-05-05 19:04:43 +00:00
pierre
115d95004f
* try to fix cygwin import lib problem in internal linker
...
git-svn-id: trunk@7270 -
2007-05-04 22:49:56 +00:00
tom_at_work
a42d80dbf9
* do not use R13 as available register because it is reserved for tls on ppc64/linux
...
git-svn-id: trunk@7266 -
2007-05-04 21:51:04 +00:00
Jonas Maebe
544dd57a96
* r0 is also volatile
...
git-svn-id: trunk@7262 -
2007-05-04 16:52:26 +00:00
Jonas Maebe
0caee5b45b
+ support to use r0 for ppc/ppc64 when compiling the compiler with
...
-duser0. Not active by default because generates wrong code due
to bug in the register allocator
git-svn-id: trunk@7261 -
2007-05-04 14:52:05 +00:00
Jonas Maebe
63f80f3472
* do not require exactly the same range type for indexed properties
...
referring to an array field, but instead simply convert the index
to the array range type (mantis #8810 )
git-svn-id: trunk@7260 -
2007-05-04 14:21:39 +00:00
Jonas Maebe
3a4508b1bb
* fixed compile error when assigning to a widestring property which
...
directly writes to a field for tf_winlikewidestring targets (caused
by the stricter property checks)
git-svn-id: trunk@7259 -
2007-05-04 13:15:11 +00:00
Jonas Maebe
76b190b723
- removed caretn and related code
...
git-svn-id: trunk@7257 -
2007-05-04 10:53:25 +00:00
pierre
390a4236e2
* do not use F field to get TObjectReader FileName as it is freed inside openfile method
...
git-svn-id: trunk@7255 -
2007-05-03 23:55:55 +00:00
daniel
3ad8257ecb
* Fix replace spilling of shld/shrd.
...
git-svn-id: trunk@7252 -
2007-05-03 20:56:09 +00:00
Jonas Maebe
82e01b4ad9
+ support for refcounted records returned by functions in 2 registers
...
(mantis #8685 )
git-svn-id: trunk@7251 -
2007-05-03 15:05:44 +00:00
Jonas Maebe
de1af478c3
* do not allow passing properties as var parameters (mantis #8777 )
...
* do not allow assignments to fields of structured properties (e.g.
property prop: trec read frec; ... instance.prop.frec.a:=5)
* clarified some related error messages
+ several extra tests for the above and related things
git-svn-id: trunk@7250 -
2007-05-03 14:08:03 +00:00
Jonas Maebe
21f87ef1de
* fixed instances of passing properties as var parameter
...
git-svn-id: trunk@7249 -
2007-05-03 11:02:38 +00:00
Jonas Maebe
ae54e01b72
* don't use inc/dec on a property with a write method
...
git-svn-id: trunk@7245 -
2007-05-02 17:31:02 +00:00
florian
b195e09236
* release buf already when closing the file
...
* better error handling
git-svn-id: trunk@7231 -
2007-05-01 12:47:06 +00:00
daniel
c23bbe24bf
+ Add peoplehole optimization to optimize "smallset+[x]" and "smallset-[x]".
...
git-svn-id: trunk@7188 -
2007-04-29 10:32:18 +00:00
peter
8a02ac0a5a
* don't use generic section rule for .stab and .stabstr
...
git-svn-id: trunk@7187 -
2007-04-29 09:48:59 +00:00
Tomas Hajny
81a711881d
* added missing word in message explanation
...
git-svn-id: trunk@7186 -
2007-04-29 09:48:53 +00:00
florian
23aa57ff75
+ support of dispatch call using <variant>.<id>
...
git-svn-id: trunk@7185 -
2007-04-28 20:09:52 +00:00
florian
0d9609d614
* convert extended to double when passing it to automation dispatchers
...
* fix code generation for automation dispatching of doubles
git-svn-id: trunk@7184 -
2007-04-28 19:35:51 +00:00