Jonas Maebe
e1aefdbac5
* Improved escape analysis so the improved tretopt no longer fails.
...
The downside is that because it is context-insensitive, several
(correct) optimizations which were performed in the past no longer
are now (and while some new ones are done now, the downside is bigger
-- but at least the code should be correct in all cases now)
git-svn-id: trunk@8385 -
2007-09-05 13:29:22 +00:00
peter
0a9b94ca92
* save and restore aktobjectdef
...
git-svn-id: trunk@8384 -
2007-09-04 18:31:20 +00:00
peter
b513ebe9c6
* missing not
...
git-svn-id: trunk@8383 -
2007-09-04 18:30:57 +00:00
peter
8c24a15e26
* allow -l-
...
git-svn-id: trunk@8382 -
2007-09-04 18:29:58 +00:00
Jonas Maebe
11cb2a5614
* moved the setting of many target-specific defines to
...
TOption.TargetDefines and call it before parsing the config file,
so extra defines like UNIX and WINDOWS are already defined while
parsing the config file (mantis #9450 )
git-svn-id: trunk@8371 -
2007-09-03 18:24:07 +00:00
Jonas Maebe
c10b375615
* give an error for high(ansistring) and high(widestring)
...
(mantis #9579 )
git-svn-id: trunk@8370 -
2007-09-03 16:37:24 +00:00
Jonas Maebe
1ee8207ffa
* fixed mantis #9522 : no longer allow typecasting ordinal constants
...
to complex types (caused a lot of internal errors later on, and
was also Delphi-incompatible)
git-svn-id: trunk@8369 -
2007-09-03 15:55:26 +00:00
Jonas Maebe
df84ca49b4
* fixed tests/cg/opt/tretopt, and also in more cases
...
perform the transformation of x:=f(hiddencomplexresult, ..)
-> f(x, ...) (the compiler now performs some very
conservative escape analysis for such types)
git-svn-id: trunk@8361 -
2007-09-02 21:27:37 +00:00
Jonas Maebe
cc0bd74ea0
- removed unused variable after div-by-zero simplify patch
...
git-svn-id: trunk@8359 -
2007-09-02 21:06:50 +00:00
Jonas Maebe
30e618ccb6
* fixed typecast error in last char/widechar/widestring patch
...
git-svn-id: trunk@8358 -
2007-09-02 20:29:26 +00:00
marco
6f9c7ede62
* fixed bug #9577 using short boolean eval. While fixing also fixed next IF.
...
git-svn-id: trunk@8357 -
2007-09-02 19:22:04 +00:00
Jonas Maebe
cadcfa76d8
* optimized TLinkedList.clear so it can use regvars for everything in
...
its loop (helps a lot on ppc)
git-svn-id: trunk@8354 -
2007-09-02 16:16:25 +00:00
Jonas Maebe
c7a5b0cf33
* forgot to commit (-CF<x> support)
...
git-svn-id: trunk@8351 -
2007-09-02 07:49:50 +00:00
Jonas Maebe
21abdd2f4e
+ support for specifying the minimal precision for floating point
...
constants. The default is currently 32 bits/single, which corresponds
to the old behaviour (constants which cannot be exactly represented
in the default/chosen precision will also still be automatically
upgraded to higher precision). Supported constructs:
* Command line switch -CF<x>
* Compiler directive {$MINFPCONSTPREC <x>}
whereby in both cases <x> can be default, 32 or 64. 80 is not supported
because there is no generic way to figure out whether the current target
actually supports 80 bit precision floating point calculations while
parsing the command line switches (pbestreal can still change in case of
win64 or -Cfsse2)
git-svn-id: trunk@8349 -
2007-09-01 19:38:27 +00:00
Jonas Maebe
12575526da
* also generate an implicit exception frame in case only the function
...
result is refcounted, since it may need to be finalized in case of
an exception (mantis #9385 )
git-svn-id: trunk@8347 -
2007-09-01 14:18:09 +00:00
Jonas Maebe
c5b3180f5f
* save/load LinkOtherFrameworks to/from ppu files
...
git-svn-id: trunk@8344 -
2007-08-31 17:03:33 +00:00
Jonas Maebe
ac22ff09da
* detect division by zero in tmoddiv.simplify (mantis #9499 )
...
git-svn-id: trunk@8341 -
2007-08-30 17:21:29 +00:00
Jonas Maebe
b1631b6918
* fixed wrong uninitialized warnings with passing array elements
...
as out-parameters
git-svn-id: trunk@8337 -
2007-08-29 20:23:59 +00:00
Jonas Maebe
e4487e628d
* fixed overload choosing error on 64 bit
...
git-svn-id: trunk@8327 -
2007-08-29 06:30:38 +00:00
yury
1159ee9744
* Small improvement to previous commit.
...
git-svn-id: trunk@8325 -
2007-08-28 21:06:15 +00:00
yury
614dbe6a8c
* Fixed inclusion of multiple resource files with icons or cursors. Patch by Sergei Gorelkin modified by me to reduce memory usage. Bug #9459 .
...
git-svn-id: trunk@8324 -
2007-08-28 20:54:32 +00:00
Jonas Maebe
5bc156efea
* always demote type conversions which cannot represent part of the
...
source value to convert_l3, instead of only those with a destination
type whose size is < source size (like Delphi) + test -> fixes
toperator6 along with a host of wrong tordconst typeconversions in
the compiler sources themselves (although most are harmless)
git-svn-id: trunk@8323 -
2007-08-28 19:38:40 +00:00
Jonas Maebe
0bfce99477
* fixed bug in ppc jumptable generation for case statements with
...
negative cases caused by wrong automatic type conversion from
longint to unsigned tconstexprint (+ test for such jump tables)
* fixed darwin/ppc64 jumptables in case of jmptablenorange
git-svn-id: trunk@8311 -
2007-08-26 11:15:14 +00:00
michael
95c712faa1
* Escaped some TeX special characters in documentation
...
git-svn-id: trunk@8305 -
2007-08-25 13:33:46 +00:00
Jonas Maebe
399201ad7d
* removed rodata support for ppc64 again because it doesn't work on
...
linux/ppc64. Added explanation why it doesn't work and what's needed
git-svn-id: trunk@8304 -
2007-08-24 17:19:52 +00:00
Jonas Maebe
30bc89cfe5
* fixed dependency checking for source files in subdirectories relative
...
to the makefile location + regenerated all Makefiles
* hopefully fixed fpmkunit dependencies
git-svn-id: trunk@8297 -
2007-08-22 07:04:23 +00:00
Jonas Maebe
2b91a9ef37
+ jumptable support for darwin/ppc64
...
git-svn-id: trunk@8285 -
2007-08-14 17:32:24 +00:00
Jonas Maebe
eddc507a13
* disallow widechar sets (Delphi 7 compatible, and were handled wrongly
...
by FPC previously)
* tbs/tb0474 now fails -> renamed to tbf/tb0201 (+ new test tbf/tb0202)
git-svn-id: trunk@8284 -
2007-08-14 14:27:59 +00:00
Jonas Maebe
eec25e454d
* slightly optimized ppc jumptable code (one compare+jump replaced
...
by a subtraction)
git-svn-id: trunk@8283 -
2007-08-14 14:17:09 +00:00
Jonas Maebe
3a7ad5212d
* removed some instructions from the list which considers r0 as 0
...
git-svn-id: trunk@8282 -
2007-08-14 14:15:35 +00:00
Jonas Maebe
1c71bb36a1
* also check for valid min/maxlabel range for jumptable in case
...
of cs_opt_size
git-svn-id: trunk@8281 -
2007-08-14 13:58:56 +00:00
Jonas Maebe
fc53d14e58
* also enable .rodata for ppc64
...
git-svn-id: trunk@8278 -
2007-08-13 15:02:39 +00:00
Jonas Maebe
d73e79f163
* fixed regression of webtbs/tw4254: if a constant (wide)string can't be
...
converted to a pchar at compile time, remove the cstring_to_pchar node
because it expects a stringconstn in pass_generate_code
git-svn-id: trunk@8275 -
2007-08-13 09:13:07 +00:00
Jonas Maebe
815cd2b39d
+ support for widestring manager based widechar conversions
...
(widechar<->char, widechar<>*string), based on patch from
Rimgaudas Laucius (mantis #7758 )
* no longer perform compile-time widechar/string->char/ansi/
shortstring conversions if they would destroy information
(they can't cope with widechars with ord>=128). This means
that you can now properly constant widechars/widestrings
in source code with a {$codepage } set without risking that
the compiler will mangle everything afterwards
* support ESysEINVAL return code from iconv (happens if last
multibyte char is incomplete)
* fixed writing of widechars (were converted to char -> lost
information)
git-svn-id: trunk@8274 -
2007-08-12 20:01:08 +00:00
Jonas Maebe
c408d9bb1d
* fixed regression of webtbs/tw2789 caused by r8270 (setting vs_read
...
without vsf_must_be_valid means that it's not really read, but
only used by sizeof or so)
git-svn-id: trunk@8273 -
2007-08-12 19:52:57 +00:00
Jonas Maebe
a8191abd16
* fixed parsing of "rcl/rcr rm,imm" (mantis #9025 )
...
git-svn-id: trunk@8272 -
2007-08-12 13:50:52 +00:00
Jonas Maebe
12791bf4f1
* avoid spurious uninitialised warnings about array elements used as
...
for-loop counters
git-svn-id: trunk@8270 -
2007-08-12 13:19:30 +00:00
Jonas Maebe
097c2db374
* make sure warnings/hints in set_varstate are always given at the
...
correct position
git-svn-id: trunk@8269 -
2007-08-12 13:18:39 +00:00
Jonas Maebe
3f701c96d4
* explicitly check for stringconstn next to stringdef in nadd, because
...
a stringconstn is often an arraydef. The result is that they again
get the same typeconversion behaviour as string variables, which is
important in case of overloaded operators (#9021/#9026)
git-svn-id: trunk@8268 -
2007-08-12 11:31:19 +00:00
Jonas Maebe
9c90a93932
* fixed bug which caused SSA to be less effective for integer
...
registers on 64 bit cpus
git-svn-id: trunk@8253 -
2007-08-09 11:57:52 +00:00
yury
e7ef9757c9
* Corrected comment.
...
git-svn-id: trunk@8252 -
2007-08-09 10:33:18 +00:00
Jonas Maebe
e205481027
* fixed sparc bootstrap
...
* use -Av9 assembler option so it accepts the memory barrier opcodes
git-svn-id: trunk@8244 -
2007-08-08 09:48:37 +00:00
Jonas Maebe
98ad33a0c7
+ added lwsync instruction to the compiler
...
* fixed compilation of ReadDependencyBarrier
git-svn-id: trunk@8243 -
2007-08-08 09:15:48 +00:00
micha
d95b9082bb
* add memory barrier prototypes + implementation for i386 and sparc + use lwsync for powerpc64
...
git-svn-id: trunk@8240 -
2007-08-07 20:37:08 +00:00
peter
2e9968d46c
* arrays always by addr
...
git-svn-id: trunk@8232 -
2007-08-06 19:44:25 +00:00
peter
f5d5e377d2
* fix linux x86_64 for records and arrays
...
git-svn-id: trunk@8224 -
2007-08-05 19:38:21 +00:00
Jonas Maebe
881f884f4c
* also pass -arch parameter when creating bundles
...
git-svn-id: trunk@8223 -
2007-08-05 11:05:20 +00:00
Jonas Maebe
4cdd590091
* use app_type instead of RelocSection for creating bundles, as
...
RelocSection is automatically set for all shared libraries
git-svn-id: trunk@8219 -
2007-08-04 09:13:34 +00:00
Jonas Maebe
84ddacd017
+ support for creating a bundle instead of a library on Darwin (-Wb)
...
git-svn-id: trunk@8217 -
2007-08-03 12:42:49 +00:00
Jonas Maebe
f1f1299e97
* generalised -W description to "target-specific options"
...
* mention for each -W option to which targets it applies
* show all available -W options for all target architectures they apply to
* reworded some option descriptions
* all option descriptions now start with a capital for consistency
git-svn-id: trunk@8216 -
2007-08-03 12:13:27 +00:00
peter
4e6c57b9ee
* cleanup x86_64 structures in registers
...
git-svn-id: trunk@8214 -
2007-08-02 20:46:48 +00:00
Jonas Maebe
fc70aa545c
* changed boolean fields in ttempinfo to a set for easier
...
extensibility without increasing the size of the record
git-svn-id: trunk@8199 -
2007-07-29 19:37:06 +00:00
Jonas Maebe
70886d0152
* now also disable use8byteconcatcopy by default
...
git-svn-id: trunk@8197 -
2007-07-29 19:09:12 +00:00
florian
70b0bd1c5d
* throw better error when variable values are used as typed consts, resolves #9333
...
git-svn-id: trunk@8188 -
2007-07-29 14:29:19 +00:00
Jonas Maebe
ceeac6e8e4
* don't use 8 byte copies in concatcopy by default, because
...
a misaligned 8 byte load/store is much more expensive than
a misaligned 4 byte load/store
git-svn-id: trunk@8182 -
2007-07-28 15:47:04 +00:00
Jonas Maebe
661c2eba37
* clean up of previous fix
...
git-svn-id: trunk@8177 -
2007-07-28 10:48:12 +00:00
Jonas Maebe
4b62d5e43d
* only create PASCALFINALIZE for programs and libraries
...
git-svn-id: trunk@8176 -
2007-07-28 10:47:31 +00:00
marco
727b68c9b0
* small fix for OS X related typo.
...
git-svn-id: trunk@8175 -
2007-07-28 10:09:23 +00:00
florian
4151029ee5
+ .fini section support
...
git-svn-id: trunk@8174 -
2007-07-28 08:40:10 +00:00
tom_at_work
5428135ca7
* always use the non-dotted name for function calls and disable putting constants into the got (should be: toc) for now; fixing cycle with "-Cg"
...
git-svn-id: trunk@8172 -
2007-07-27 20:28:08 +00:00
Jonas Maebe
62c4f85eb5
* renamed opd section (linux/ppc64) to .opd (same as used by gcc)
...
git-svn-id: trunk@8171 -
2007-07-27 17:32:39 +00:00
florian
c00b667201
* update from Karl-Michael Schindler
...
git-svn-id: trunk@8170 -
2007-07-27 14:17:06 +00:00
Jonas Maebe
9c69c9dcf8
* fixed handling of paths/files with spaces in their name in link.res
...
on platforms where the `cat link.res` trick is used. Those must
/not/ be quoted, because otherwise the shell assumes those quotes
are part of the filename, and will escape the quotes themselves.
Instead, write everything out without quotes, but set IFS to
<newline> before doing the cat, so that only a new line is seen
as a separator between items. The shell will then insert the
necessary quotes to escape the spaces. One disadvantage: this
means that other options, such as e.g. "-arch ppc" under Darwin,
must now be written split over two lines to avoid the shell
passing such parameters (which consist of two separate strings)
as one single parameter (with an escaped space) to ld.
git-svn-id: trunk@8166 -
2007-07-25 16:25:14 +00:00
Jonas Maebe
a3c9dc5ec6
+ support for {$linkframework x} to link to framework x (Darwin only)
...
+ support for {$frameworkpath x} and -Ffx to add x to the directories to
search for frameworks (Darwin only)
git-svn-id: trunk@8165 -
2007-07-25 15:42:30 +00:00
michael
bedf0151cc
* Implemented support for custom RC compiler and .RES linker
...
git-svn-id: trunk@8164 -
2007-07-25 12:06:57 +00:00
peter
c020d709b4
* default widestring-ansistring conversion needs to use the same algorithm
...
as the rtl to behave the same on compile time and runtime
git-svn-id: trunk@8161 -
2007-07-23 21:57:48 +00:00
peter
1249bf70ff
* shorten mangledname names much quicker for nested procedures
...
git-svn-id: trunk@8160 -
2007-07-23 21:36:16 +00:00
peter
1dd62b8686
* write also asmblocklabel for a connected labelsym
...
git-svn-id: trunk@8159 -
2007-07-23 21:01:32 +00:00
peter
0fc65c5eec
* for tp mode don't allow unitname reuse
...
git-svn-id: trunk@8158 -
2007-07-23 20:38:05 +00:00
florian
5e60b52f28
* ignore pic directive/switch if the platform doesn't support pic, resolves #9281
...
git-svn-id: trunk@8157 -
2007-07-23 20:25:04 +00:00
florian
8b11f99765
* let the dfa do the detection of unset function results if possible
...
git-svn-id: trunk@8156 -
2007-07-23 20:23:50 +00:00
florian
a2ac6c698d
* fixed dfa for raise nodes
...
git-svn-id: trunk@8155 -
2007-07-23 20:22:36 +00:00
peter
89eddc7504
* check for valid reference before parsing extra constant values
...
git-svn-id: trunk@8154 -
2007-07-23 20:16:23 +00:00
peter
703b8855cc
* allow local procsym in delphi mode
...
git-svn-id: trunk@8148 -
2007-07-23 09:15:32 +00:00
florian
b6cca14944
* proper handling of dummy result node in dfa, resolves #8717 and #8079
...
+ tests
git-svn-id: trunk@8147 -
2007-07-23 08:57:31 +00:00
peter
ad4846a50e
* don't allow generics as parent classes
...
git-svn-id: trunk@8144 -
2007-07-22 23:10:24 +00:00
peter
8bd95f4dd4
* keep signess of orginal variable in shl/shr operation
...
git-svn-id: trunk@8143 -
2007-07-22 22:56:35 +00:00
peter
725f1d7176
* remove wrong $esle x86_64 causing uninitialized variable
...
git-svn-id: trunk@8141 -
2007-07-22 20:57:05 +00:00
peter
67e16340be
* revert r8118
...
git-svn-id: trunk@8139 -
2007-07-22 19:59:00 +00:00
peter
5e36a73b80
* create a new vmt entry also if return type differs
...
* search all parent classes for matching interface implementations
git-svn-id: trunk@8138 -
2007-07-22 19:47:55 +00:00
peter
98cc116dd2
* fix passing string to open array of string
...
git-svn-id: trunk@8137 -
2007-07-22 19:44:56 +00:00
florian
be6d2dd0f9
* reverted wrong commit in r8133
...
git-svn-id: trunk@8135 -
2007-07-22 17:00:51 +00:00
florian
447276c5bb
* Jcc reads the flags, this was not in the dat yet, resolves #9278
...
* disabled 4 ops variant of insertq for now
git-svn-id: trunk@8133 -
2007-07-22 16:40:44 +00:00
peter
f70a4a64a0
* swapendian for 2.0.x
...
git-svn-id: trunk@8132 -
2007-07-22 16:13:43 +00:00
daniel
5add416dab
* Fix mul opsize
...
git-svn-id: trunk@8131 -
2007-07-22 11:48:10 +00:00
daniel
6065bee1c2
* qword(-int64) can cause an overflow error in case of low(int64). Harmless, so
...
disable overflow checking around it.
git-svn-id: trunk@8124 -
2007-07-22 08:32:49 +00:00
florian
4b9669a081
* give proper error location if something is wrong with the type argument list, resolves #9112
...
git-svn-id: trunk@8122 -
2007-07-21 21:49:59 +00:00
daniel
21293f5818
+ Add common type integer promotion.
...
- {$intpromotion common_type} or -CIcommon_type switches to common type promotion.
- {$intpromotion native_integer} or -CIcommon_type switches to current behaviour.
- Default in tp mode is common_type, native_integer in other modes
- Compiler can cycle with -CIcommon_type
- Still needs checking on other architectures than i386
git-svn-id: trunk@8118 -
2007-07-21 19:16:24 +00:00
florian
fa2a2b0bd0
* generics without specialization can't be used as a type, resolves #9225
...
git-svn-id: trunk@8116 -
2007-07-21 17:39:49 +00:00
daniel
4c81c227fa
- Remove long2hex, replace by hexstr.
...
git-svn-id: trunk@8111 -
2007-07-21 10:29:09 +00:00
daniel
5ce54c6a20
+ For muln, don't load left operand in register unless necessary.
...
(mul supports memory operands).
git-svn-id: trunk@8110 -
2007-07-21 09:20:33 +00:00
Jonas Maebe
49a2084ea0
* fixed calling inline functions (with exit statements) from inside
...
finally blocks
* fixed the handling of function results of inlined functions with
exit statements
+ test for the above two issues and for bug fixed in r8091
* copy may_be_in_reg field inside ttempcreatenode.dogetcopy (allows
some more temps which were needlessly forced into memory to be in
registers)
git-svn-id: trunk@8108 -
2007-07-20 16:49:35 +00:00
Jonas Maebe
20dbda751a
* fixed sparc compilation after addr_lo/hi changes
...
git-svn-id: trunk@8107 -
2007-07-20 12:30:16 +00:00
michael
61dae2cf4f
* Patch from Ido Kanner to update translations
...
git-svn-id: trunk@8098 -
2007-07-18 21:12:15 +00:00
Jonas Maebe
1a522594ec
* fixed tonnode.getcopy crash in case there is no exception variable
...
git-svn-id: trunk@8091 -
2007-07-18 19:03:49 +00:00
Jonas Maebe
71193c0f2c
* fixed bootstrapping with 2.0.4
...
* fixed ppc64 compilation (by reintroducing a bogus ptrint warning, that
code really is correct)
git-svn-id: trunk@8090 -
2007-07-18 12:15:55 +00:00
joost
787b968e70
* Replaced "uname m" from which the output was not very consistent with "fpc -PP"
...
git-svn-id: trunk@8084 -
2007-07-17 17:39:35 +00:00
Jonas Maebe
28bab3fb4f
- removed some unused variables
...
* fixed some (harmless) ptrint warnings
- removed some commented code in agppcmpw
* added one missing field in a typed constant in cp1251
git-svn-id: trunk@8081 -
2007-07-17 13:57:15 +00:00
florian
2b2c6f7f53
* don't add empty symtables when specializing generics
...
git-svn-id: trunk@8066 -
2007-07-15 17:16:21 +00:00
daniel
a05d228679
- Remove IE from g_concatcopy again.
...
git-svn-id: trunk@8065 -
2007-07-15 16:15:13 +00:00
yury
3e60b4a8dd
* Don't optimize (eliminate) arm fpu move instruction if it performs float type conversion. It fixes tb0519.pp on arm-linux.
...
git-svn-id: trunk@8059 -
2007-07-14 21:52:15 +00:00
daniel
f0633187f4
+ Change constants in g_concatcopy to make the right decisions on x86_64.
...
* Fix move copy in g_concatcopy for x86_64.
git-svn-id: trunk@8058 -
2007-07-14 21:29:57 +00:00
daniel
4a3870eb12
* Fix bug #9261 .
...
git-svn-id: trunk@8056 -
2007-07-14 20:57:56 +00:00
tom_at_work
49b84c3116
* remove obsolete code
...
git-svn-id: trunk@8053 -
2007-07-14 19:18:15 +00:00
daniel
4f6eb50391
+ Internalerror if g_concatcopy is called with len=0.
...
git-svn-id: trunk@8052 -
2007-07-14 18:56:16 +00:00
yury
afdd053172
* fixed unary minus in softfloat mode (bug #8737 ).
...
git-svn-id: trunk@8047 -
2007-07-14 10:09:37 +00:00
yury
bd0cafd545
* fixed ARM stackframe optimization when float registers are used.
...
git-svn-id: trunk@8032 -
2007-07-12 21:55:34 +00:00
tom_at_work
1cc1d4ebf2
* use automatic ppc64/linux got/toc entry generation by the linker if possible - removes the need of some workarounds
...
git-svn-id: trunk@8031 -
2007-07-12 21:00:55 +00:00
yury
1782305ae2
* Completely fixed float constants in softfloat mode when compiler was compiled in hardfloat mode on arm-linux host.
...
git-svn-id: trunk@8015 -
2007-07-10 21:05:12 +00:00
Tomas Hajny
aadcefe08f
* correction for typo in licence information
...
git-svn-id: trunk@8014 -
2007-07-10 20:39:44 +00:00
Legolas
cdf4841517
* Changed .elf extension to .nef (Not Executable File) for intermediate file builds in the NDS compiler (used on no$gba debugger for symbol table)
...
* Added nds target to ppudump.pp
* Fixed rtl compilation for nds target
* Changes in prt09.as
git-svn-id: trunk@8002 -
2007-07-09 22:17:36 +00:00
yury
e14906c484
* Handle .fpc section by internal elf obj writer the same way as external assembler handles this section.
...
git-svn-id: trunk@8001 -
2007-07-09 22:05:08 +00:00
yury
fd6862acb9
* fixed debugging problem on arm-linux.
...
git-svn-id: trunk@7997 -
2007-07-09 21:17:07 +00:00
Almindor
7f548cf517
* adds amd64 to the list of uname -m possible results in samplecfg
...
git-svn-id: trunk@7996 -
2007-07-09 21:14:59 +00:00
Almindor
bfb7294e19
* exchange "arch" with "uname -m" in samplecfg to work on non-linux
...
git-svn-id: trunk@7995 -
2007-07-09 21:09:26 +00:00
yury
658853c139
* Initialize fpu regvars from staticsymtable by loading initial value from memory location.
...
git-svn-id: trunk@7988 -
2007-07-09 13:27:19 +00:00
tom_at_work
2d1f9b20a3
* merged trefaddr.addr_lo/addr_hi with trefaddr.addr_low/addr.high; some related bugfixing/cleanup
...
git-svn-id: trunk@7983 -
2007-07-08 20:50:58 +00:00
daniel
f31889df57
* Pass const params by pointer if calling convention<>register. This is
...
needed for the windows unit as Delphi compatibility requires const
parameters for some procedures and Delphi assumes parameters > 4 to be
passed as pointer.
git-svn-id: trunk@7982 -
2007-07-08 17:26:08 +00:00
daniel
20a804152d
* Don't assume pointers are 8 bytes.
...
git-svn-id: trunk@7981 -
2007-07-08 09:36:27 +00:00
yury
09fa6b5893
* Fixed Abs and Sqrt in hardfloat mode on arm.
...
git-svn-id: trunk@7980 -
2007-07-08 08:17:32 +00:00
daniel
44e07cd098
* Fix bug #9141 and pass const params <=16 in by value.
...
git-svn-id: trunk@7979 -
2007-07-07 21:01:46 +00:00
daniel
6e0a7bb0eb
* Nil constants that are type converted to a method procvar are now
...
properly converted. The conversion is done at runtime to generate
a two pointer memory reference as result location, something
which the code generator can handle very well, which minimizes
the chance of side effects.
git-svn-id: trunk@7978 -
2007-07-07 20:57:05 +00:00
yury
b86574cf36
* Fixed float constants in softfloat mode when compiler was compiled in hardfloat mode on arm-linux host.
...
git-svn-id: trunk@7977 -
2007-07-07 19:19:49 +00:00
florian
499cbcbbe1
* make cycle OPT=-gwl -Co -Cr on x86-64 fixed
...
git-svn-id: trunk@7976 -
2007-07-07 19:16:49 +00:00
yury
2829f4e46f
* Fixed arm optimizer bug (mantis #9209 ). No testsuite regressions with -O2.
...
* Removed unused local vars.
+ test.
git-svn-id: trunk@7970 -
2007-07-06 13:09:28 +00:00
sekelsenmat
6096874424
Removed winlikewidestrings from symbian
...
git-svn-id: trunk@7969 -
2007-07-06 11:22:08 +00:00
Tomas Hajny
85e6a6b019
* don't use obsolete switches in default configuration files
...
git-svn-id: trunk@7963 -
2007-07-05 19:23:09 +00:00
daniel
eb42e583b1
- Disable smaller_possible_range_check hints/warnings because of too much
...
false positives.
git-svn-id: trunk@7960 -
2007-07-05 18:47:02 +00:00
Jonas Maebe
9fedea7b9f
+ "set" support in dwarf debug info if compiler is compiled with
...
-dGDB_SUPPORTS_DWARF_SETS (not default, because supported only as of
gdb 6.6, and earlier versions refuse to debug programs containing
DW_TAG_set_type tags)
git-svn-id: trunk@7957 -
2007-07-05 13:17:27 +00:00
Jonas Maebe
0d1ff3a0f1
- removed tai_file/tai_loc, no longer needed
...
git-svn-id: trunk@7945 -
2007-07-04 08:14:48 +00:00
Jonas Maebe
ce478cd249
* fixed wrong range check warnings/errors for open strings
...
git-svn-id: trunk@7944 -
2007-07-04 08:09:45 +00:00
daniel
1f8fdf43c5
* Make elecount aword to handle u32bit typeconversions of array indexes.
...
git-svn-id: trunk@7941 -
2007-07-03 22:06:23 +00:00
daniel
bbf7c50479
+ Internalerror on encountering a variant array in a vecn.
...
git-svn-id: trunk@7936 -
2007-07-03 19:58:47 +00:00
Jonas Maebe
695d7c4d6d
+ support for bitpacked records in dwarf debug info
...
git-svn-id: trunk@7935 -
2007-07-03 18:21:17 +00:00
Jonas Maebe
ac778e906d
* changed debug info for shortstrings to the format that gdb
...
expects (so gdb now recognises shortstrings in dwarf debug info
and shows them as strings rather than as records)
git-svn-id: trunk@7934 -
2007-07-03 15:25:05 +00:00
daniel
06b3478226
* Fix tarray7
...
* Use is_special_array.
git-svn-id: trunk@7932 -
2007-07-03 13:35:15 +00:00
daniel
a0da139ec6
* Fix most test suite regressions.
...
git-svn-id: trunk@7931 -
2007-07-03 11:31:46 +00:00
daniel
4ed25e3a78
* Fix tbs/tb0540.
...
git-svn-id: trunk@7926 -
2007-07-02 21:32:27 +00:00
florian
e4524a0d26
* check left and right loc for 64 bit when assigning a constant, resolves #9145
...
git-svn-id: trunk@7925 -
2007-07-02 21:24:29 +00:00
daniel
afeb9d5786
- Remove hexstr implementation.
...
git-svn-id: trunk@7922 -
2007-07-02 19:23:30 +00:00
yury
787aac7478
* Patch from Vincent to enable resources support for win64 using gorc resource compiler.
...
git-svn-id: trunk@7921 -
2007-07-02 11:02:30 +00:00
daniel
df1e31034a
* Fix endian issue in ppuload/ppuwrite.
...
git-svn-id: trunk@7919 -
2007-07-02 06:18:38 +00:00
daniel
b64558620f
* Fix set endian handling.
...
git-svn-id: trunk@7918 -
2007-07-01 22:30:43 +00:00
florian
fe59d1fe9e
* updates from Karl-Michael Schindler
...
git-svn-id: trunk@7916 -
2007-07-01 21:04:33 +00:00
daniel
3029d2393a
* Update for constexprint changes.
...
git-svn-id: trunk@7915 -
2007-07-01 20:58:55 +00:00
yury
28f0d47d83
* Don't be too strict while reading COFF symtable if obj file does not have COFF string table (to be compatible with LD and MS linkers). It fixes bug #9175 .
...
git-svn-id: trunk@7913 -
2007-07-01 19:57:09 +00:00
Jonas Maebe
e23a8655e8
* fixed generic in-code in case left = LOC_JUMP
...
* fixed generic and x86 in-code in case genjumps=true and
complexity(right)>complexity(left) (not sure if possible
in practice currently, but better safe than sorry)
git-svn-id: trunk@7912 -
2007-07-01 19:35:22 +00:00
daniel
997240d094
- Remove unused variable.
...
git-svn-id: trunk@7910 -
2007-07-01 18:26:28 +00:00
florian
7cbe76b8dc
* pass only a pointer to a result when the result is used when invoking idispatch, resolves #9162
...
git-svn-id: trunk@7908 -
2007-07-01 15:37:36 +00:00
Jonas Maebe
c6ffa724f3
* clarified pointer->integer warning
...
git-svn-id: trunk@7907 -
2007-07-01 15:27:21 +00:00
florian
76a3d55199
* allow enum => pointer type casts in delphi mode, resolves #8465
...
git-svn-id: trunk@7905 -
2007-07-01 14:43:46 +00:00
Jonas Maebe
f5beba1eeb
* fixed check for not adding "." and ".." to dircache
...
* adapted TDirectoryCache.FindNext for new case-aware code
* fixed bug in FileExistsNonCase (previous revision's fix was not
complete)
git-svn-id: trunk@7903 -
2007-07-01 14:31:56 +00:00
Jonas Maebe
fb00c0e253
* fixed case aware file searching in case filename also contains a path
...
(fixes webtbs/tw1279 regression after yesterday's changes)
git-svn-id: trunk@7891 -
2007-07-01 09:56:55 +00:00
daniel
d4280b3dec
* Limit warning to orddefs to reduce false positives.
...
git-svn-id: trunk@7887 -
2007-07-01 09:34:13 +00:00
daniel
9a3c692bb3
* Make pointer to array conversion 64-bit safe.
...
git-svn-id: trunk@7886 -
2007-07-01 09:25:24 +00:00
daniel
4ea8448c6d
+ Warn when converting pointers to signed types.
...
git-svn-id: trunk@7884 -
2007-07-01 09:05:11 +00:00
yury
b5e38fd2c8
* Fixed resources support on Linux when internal assembler is used.
...
* Enabled multiple resources support on Linux.
git-svn-id: trunk@7883 -
2007-06-30 23:01:22 +00:00
daniel
1cd65c647d
* Convert guid load/save to endian safe code.
...
git-svn-id: trunk@7880 -
2007-06-30 21:45:20 +00:00
Jonas Maebe
3fa669594a
* store the original filename on case-aware systems in the dircache, so
...
we can return it from FileExistsNonCase in case of {$define usedircache}
(which is the default). This is needed so we write the correct file
names in the debug info, which is required by gdb (mantis #9172 )
git-svn-id: trunk@7879 -
2007-06-30 21:41:47 +00:00
daniel
52458b965f
* ... and when writing too.
...
git-svn-id: trunk@7875 -
2007-06-30 20:43:15 +00:00
daniel
a90fe1dc41
* Add endian swapping for deflistsize and symlistsize.
...
git-svn-id: trunk@7874 -
2007-06-30 20:38:59 +00:00
daniel
935902de35
* Reals can need endian conversions too.
...
git-svn-id: trunk@7873 -
2007-06-30 19:48:27 +00:00
daniel
9b50dc572b
* Change rest of compiler to system unit swapendian routines.
...
- Remove endian swapping routines from cutils.
git-svn-id: trunk@7859 -
2007-06-30 08:13:46 +00:00
daniel
b7b45919d0
* Convert to system unit endian swap routines.
...
* Endian conversion should be done while reading only, not while writing.
git-svn-id: trunk@7858 -
2007-06-30 07:54:50 +00:00
daniel
e002e6b9f4
* Also execute setfirsttemp on non-Windows platforms. Fixes -O2 cycle on Linux.
...
git-svn-id: trunk@7848 -
2007-06-29 17:46:27 +00:00
Jonas Maebe
b99c1e9fed
* fixed calculation of offset of constant indexing of bitpacked arrays of
...
non-ordinal types (mantis #9174 )
git-svn-id: trunk@7847 -
2007-06-29 15:34:11 +00:00
daniel
75af9f2a4d
* Fixed another placed where chained paralocs where not being processed.
...
git-svn-id: trunk@7845 -
2007-06-29 06:33:12 +00:00
yury
f0e554caef
* Collect resource files only when program or library is compiled.
...
git-svn-id: trunk@7841 -
2007-06-28 11:16:51 +00:00
yury
4cc9bcd526
* Always strip DLLs when external linker (LD) is used.
...
git-svn-id: trunk@7840 -
2007-06-28 10:26:05 +00:00
daniel
62b6fcead8
* Fix operator count.
...
git-svn-id: trunk@7835 -
2007-06-27 20:31:58 +00:00
daniel
56880a75f9
* When adding the start offset of the parameters, process chained
...
paralocs too.
git-svn-id: trunk@7834 -
2007-06-27 20:28:45 +00:00
Jonas Maebe
26a4f693da
* more packed set operand size problems fixed (include/exclude, mantis
...
#9167 )
git-svn-id: trunk@7833 -
2007-06-27 19:50:09 +00:00
Jonas Maebe
b6ccf54ae9
* fixed error in register renaming in case the first changed instruction
...
is an "addl %reg2,%reg1" (was changed into "leal (%reg2,%reg1),%reg2",
now into "leal (%reg1,%reg1),%reg2")
git-svn-id: trunk@7832 -
2007-06-27 18:30:10 +00:00
Jonas Maebe
8caad93eaf
* fixed several problems with packed set operand sizes
...
* added LOC_CONSTANT to the list of allowed locations for the left
hand side of an in-node, so it doesn't get forced into a register
anymore in that case
git-svn-id: trunk@7831 -
2007-06-27 17:26:18 +00:00
yury
04147151e4
* Fixed stabs generation for DLLs by internal assembler (use RELOC_ABSOLUTE in all cases).
...
* Do not generate relocs by internal linker for sections which are not loaded in memory.
git-svn-id: trunk@7829 -
2007-06-26 22:51:21 +00:00
yury
11b56e2cc8
* Fixed previous commit: loop through all resources in .res file.
...
git-svn-id: trunk@7827 -
2007-06-26 18:08:06 +00:00
yury
ca81009e5e
* Properly handle .res files, which are not fully correct.
...
* Better error handling while working with resource files.
* Compile .rc files included in the main module before collecting all resources.
git-svn-id: trunk@7825 -
2007-06-26 17:41:24 +00:00
daniel
45832d4314
+ New hint; for exmaple int64:=longint+longint says "Converting the operands to
...
int64 before addition could prevent an overflow error."
git-svn-id: trunk@7817 -
2007-06-26 07:52:04 +00:00
daniel
504d845e86
* Consider conversion from integer to integer te_equal, if the base types
...
are equal and the range of the from type fits in the to type. I.e.
conversion from -10..10 to shortint is considered equal. This is correct
because in this case, the from type can be used wherever the to type is
used, i.e. the compiler never needs to do conversion at compile or run
time.
git-svn-id: trunk@7814 -
2007-06-25 20:57:21 +00:00
florian
70284da435
* allow <any ordinal>(class/interface) type casts likewise it is allowed for class references and pointers
...
git-svn-id: trunk@7811 -
2007-06-25 20:08:34 +00:00
florian
03951d793a
* don't try to range check ordconst nodes being actually classes
...
git-svn-id: trunk@7797 -
2007-06-24 19:27:22 +00:00
daniel
e542a502c6
* Prevent some operations between qwords and signed types.
...
git-svn-id: trunk@7796 -
2007-06-24 18:40:07 +00:00
florian
d50f869bbd
+ allow local const symbols to override class members in delphi mode
...
git-svn-id: trunk@7793 -
2007-06-24 15:14:47 +00:00
Jonas Maebe
62b9198b55
* fixed loading the address of class methods (mantis #9139 )
...
git-svn-id: trunk@7789 -
2007-06-24 12:11:08 +00:00
daniel
cd2880cbbd
- Because int_to_type handles qwords now, the trial and error to parse a constant
...
can be simplified.
git-svn-id: trunk@7787 -
2007-06-24 11:59:55 +00:00
florian
463fc20ecc
* return proper vardef value for wordbool, resolves #9125
...
git-svn-id: trunk@7778 -
2007-06-22 18:51:58 +00:00
Jonas Maebe
20a35f9701
* fixed public/export support for initialised variables/typed
...
constants (mantis #9113 )
git-svn-id: trunk@7772 -
2007-06-22 17:10:15 +00:00
yury
84306f80e9
* fixed tw8391.pp for i386.
...
git-svn-id: trunk@7768 -
2007-06-21 23:22:48 +00:00
yury
86d49c2a0c
* Activated safecall support for ARM CPU.
...
git-svn-id: trunk@7762 -
2007-06-21 17:32:35 +00:00
yury
d1c2f41c66
* Fixed passing variant parameters by value for ARM. It fixes tw7806.pp.
...
git-svn-id: trunk@7758 -
2007-06-21 15:06:43 +00:00
yury
5b5050a09c
* Fixed integer to single conversion for arm-wince. It fixes tw8055.pp test.
...
git-svn-id: trunk@7757 -
2007-06-21 14:08:58 +00:00
yury
206d027e9e
* for ARM CPU records must be aligned in stack depending of record size to prevent misaligned error when the record is passed as parameter in registers. It fixes tcalext* tests for ARM.
...
git-svn-id: trunk@7749 -
2007-06-20 20:31:06 +00:00
yury
38b8731ba0
* Restored relocs generation for dlls by internal linker. It fixes bug #9048 .
...
* It is possible to generate relocs for exe with internal linker using -WB switch.
git-svn-id: trunk@7743 -
2007-06-20 15:47:10 +00:00
yury
93e72c2079
* Fixed bug introduced by r7667. Do not release pushed return value be callee for cdecl on win32. It fixes error3 of bug #9098 .
...
git-svn-id: trunk@7734 -
2007-06-19 21:06:44 +00:00
yury
a4dfa3b4fd
* fixed bug #9107 : procedure which have pushed parameters in its body fails if only -OoSTACKFRAME switch is used.
...
+ test.
git-svn-id: trunk@7731 -
2007-06-19 12:09:11 +00:00
yury
ff3bd9fa6f
* fixed compilation for arm targets.
...
git-svn-id: trunk@7729 -
2007-06-18 23:38:54 +00:00
yury
3b7e458f02
* Properly set location of float return value if it is passed as var parameter (it is always happens for safecall functions). It fixes bugs #8523 and #8977 .
...
+ test.
git-svn-id: trunk@7728 -
2007-06-18 23:23:46 +00:00
yury
9bbff8042f
* Set return value of safecall procedure if implicit try/finally blocks are disabled.
...
git-svn-id: trunk@7727 -
2007-06-18 21:40:33 +00:00
yury
9844174e5e
* It is needed to destroy exception object in safecall procedure as well.
...
git-svn-id: trunk@7722 -
2007-06-18 17:26:15 +00:00
yury
78fe68859b
* Pop the last exception object in safecall procedure.
...
git-svn-id: trunk@7721 -
2007-06-18 16:12:49 +00:00
yury
a7d1508959
* Fixed safecall procedures by generating implicit try/finally and setting correct return value if exception was occurred or not. Now safecall is fully Delphi compatible.
...
git-svn-id: trunk@7720 -
2007-06-18 14:26:08 +00:00
marco
569d7e1138
* fixed deprecated
...
git-svn-id: trunk@7719 -
2007-06-17 20:40:47 +00:00
marco
4200ae288d
* fixed deprecated
...
git-svn-id: trunk@7716 -
2007-06-17 20:28:06 +00:00
florian
c1640b078b
* create init rtti for fpc_copy instead of full rtti
...
git-svn-id: trunk@7714 -
2007-06-17 15:31:06 +00:00
florian
72d49f3033
* reverted r7675
...
git-svn-id: trunk@7702 -
2007-06-17 13:17:44 +00:00
tom_at_work
3e7a771b69
* fix compilation
...
git-svn-id: trunk@7692 -
2007-06-16 19:44:02 +00:00
florian
37bd49692e
* proper fix for 8481 et. al.
...
git-svn-id: trunk@7691 -
2007-06-16 19:03:53 +00:00
daniel
92975a7c99
* Remove accidentally enabled winlikewidestring.
...
git-svn-id: trunk@7690 -
2007-06-16 18:27:00 +00:00
florian
01a4737b10
+ local symbols can hide class members in delphi mode
...
git-svn-id: trunk@7675 -
2007-06-15 21:41:55 +00:00
Jonas Maebe
62b3b307e0
* also process all subnodes of try-except and try-finally in
...
foreachnode(static) (fixes first example of mantis #9076 )
git-svn-id: trunk@7671 -
2007-06-15 17:36:09 +00:00
Jonas Maebe
ba95cc22ee
* only allow automatic type conversions of array constructors of
...
char to pchar/array of char, rather than of arbitrary array
constructors (mantis #9085 )
git-svn-id: trunk@7670 -
2007-06-15 17:16:44 +00:00
Jonas Maebe
02adc2b6ab
* fixed calling cdecl routines under win32 which return their result in
...
a structure whose address is passed by the caller (the caller is
responsible there to remove the address from the stack, unlike on
e.g. linux/i386 and darwin/i386) (mantis #9013 )
git-svn-id: trunk@7667 -
2007-06-15 12:48:12 +00:00
daniel
b034a88c9c
* Prevent range check error.
...
git-svn-id: trunk@7666 -
2007-06-15 07:53:47 +00:00
daniel
7934961490
* Fix browcol.
...
- Remove another obsolete uint64 test.
git-svn-id: trunk@7659 -
2007-06-14 08:33:19 +00:00
daniel
11c7fcef7b
* Cosmetic cleanup of constexprint leftovers.
...
git-svn-id: trunk@7657 -
2007-06-14 06:12:12 +00:00
daniel
2e57912288
* Fix remaining constexp issues: powerpc,libcurl,browcol
...
git-svn-id: trunk@7656 -
2007-06-13 21:42:02 +00:00
florian
bc678a2b90
* allow in delphi mode member classes in published sections which aren't compiled with $M+
...
git-svn-id: trunk@7655 -
2007-06-13 21:04:51 +00:00
daniel
b635d89ffa
* Fix overload selection code.
...
git-svn-id: trunk@7654 -
2007-06-13 20:49:13 +00:00
florian
078f6e05fa
* typos corrected
...
git-svn-id: trunk@7653 -
2007-06-13 20:49:09 +00:00
florian
c7037df254
+ classrefdef is assignment compatible to pointers in delphi mode
...
git-svn-id: trunk@7648 -
2007-06-13 20:21:33 +00:00
daniel
563b325382
- Remove another test for u64bit now unnecessary.
...
git-svn-id: trunk@7647 -
2007-06-13 14:04:21 +00:00
daniel
573aa1cd34
* Make powerpc compile again.
...
git-svn-id: trunk@7642 -
2007-06-13 11:05:15 +00:00
daniel
4703ae318b
* Change a loop counter from aint to integer; the "to" part of the loop
...
is of type integer. Fixes compiling ppcx64 with ppc386.
git-svn-id: trunk@7641 -
2007-06-13 08:02:21 +00:00
daniel
dc0d88b076
+ Forgot to add constexp unit.
...
git-svn-id: trunk@7640 -
2007-06-13 07:44:14 +00:00
daniel
9adb202a92
* Rework the constexprint to allow operations from low(int64) to high(qword).
...
+ Some initial work on a formaldef which also carries the typinfo of a parameter.
git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
daniel
b15740c0e5
- Remove -Mgpc from command line options.
...
git-svn-id: trunk@7637 -
2007-06-13 06:13:51 +00:00
florian
54fc70395e
* experimental patch to fix #9059 and friends in case -Oodfa is used
...
git-svn-id: trunk@7635 -
2007-06-12 09:58:31 +00:00
Jonas Maebe
a087bb50d0
* fixed stabs debug info for bitpacked records
...
git-svn-id: trunk@7634 -
2007-06-12 09:32:02 +00:00
Jonas Maebe
af97f3350b
* fixed bitsize of qwords in bitpacked records (mantis #9054 )
...
git-svn-id: trunk@7632 -
2007-06-11 09:11:42 +00:00
Jonas Maebe
8d13899d84
* fixed memory leak in conversion of realconstn to currency
...
git-svn-id: trunk@7630 -
2007-06-10 22:02:53 +00:00
Jonas Maebe
9b198fb1d7
* fixed memory leak in debug info generation for bitpacked records
...
git-svn-id: trunk@7629 -
2007-06-10 22:02:11 +00:00
florian
c7100799ed
+ forbid usage of $E on targets supporting no fpu emulation
...
- disabled -Cfsoft on i386
git-svn-id: trunk@7625 -
2007-06-10 17:03:26 +00:00
yury
eac1c293e4
* fixed "EInOutError : File not found" exception if .rc file not found.
...
git-svn-id: trunk@7624 -
2007-06-10 13:04:56 +00:00
Jonas Maebe
51ebaa592f
* fixed tests/webtbf/tb0041 broken by r7603: check whether ordinals
...
are compatible before optimizing the checks away
git-svn-id: trunk@7616 -
2007-06-09 20:17:46 +00:00
Jonas Maebe
c77d74127b
* fixed some record size checks
...
(some are still broken, but can't be fixed currently because
def.size/sym.getsize return an aint, which means low(aint)
in case of structures with a size = high(aint)+1)
git-svn-id: trunk@7614 -
2007-06-09 19:48:14 +00:00
florian
0e96eda236
+ some sse4 instructions supported, resolves #9046
...
git-svn-id: trunk@7613 -
2007-06-09 19:45:06 +00:00
florian
fe69d19f9c
* align stack properly if no stack frame is generated, should resolve #8986
...
git-svn-id: trunk@7611 -
2007-06-09 18:46:35 +00:00
Jonas Maebe
10341eabaa
* don't allow taking the address of ordinal bitpacked array elements
...
whose size is not a power of two
+ some more packed array/record tests
git-svn-id: trunk@7610 -
2007-06-09 18:13:04 +00:00
Jonas Maebe
2af8ca7a19
* allow taking the address of fields of packed records iff
...
* their offset is a multiple of 8 bits; and
* their size is a multiple of 8 bits; and
* if it's a range type, the size is also a power of 2
git-svn-id: trunk@7609 -
2007-06-09 17:52:20 +00:00
Jonas Maebe
22c1d5915e
* enable break and continue in macpas mode (mantis #9032 )
...
git-svn-id: trunk@7608 -
2007-06-09 17:23:11 +00:00
Jonas Maebe
20b99dade3
- reverted r7600, see additional comments in mantis #9027
...
git-svn-id: trunk@7606 -
2007-06-09 17:14:28 +00:00
daniel
60dee7fcf0
+ New optimization: Comparisions with evaluate to true or false if the
...
constant is outside the range of type bounds of the left expression.
I.e. "if a>0" evaluates to true if a is declared with type 1..10,
as all legal values of a are greater than zero.
git-svn-id: trunk@7603 -
2007-06-09 14:03:56 +00:00
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