Commit Graph

10308 Commits

Author SHA1 Message Date
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