Commit Graph

10073 Commits

Author SHA1 Message Date
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
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
daniel
f3660976bc + Allow replace spilling for "opcode register,const" and "opcode const,register"
git-svn-id: trunk@7183 -
2007-04-28 19:11:17 +00:00
florian
01de46a0f4 * don't allow logical operators on char, resolves #8780
git-svn-id: trunk@7181 -
2007-04-28 18:43:58 +00:00
florian
2eb40fc025 * forbid file types as function results
git-svn-id: trunk@7180 -
2007-04-28 18:32:03 +00:00
daniel
c43855a8f7 * Improve comment for [0..31]-x optimization
git-svn-id: trunk@7177 -
2007-04-27 13:35:25 +00:00
daniel
ea79e69176 + Add optimization to optimize [0..31]-x set expression to use one less
register. This construction is used in our Shootout meteor contest
    implementation.

git-svn-id: trunk@7176 -
2007-04-26 21:48:18 +00:00
peter
29ffdefacb * secrel32 relocation support required by dwarf2 under windows
git-svn-id: trunk@7172 -
2007-04-25 09:06:36 +00:00
peter
04f5026a0d * support dwarf2 sections
git-svn-id: trunk@7171 -
2007-04-25 08:02:59 +00:00
peter
71a11fafe9 * support long section names in executable
git-svn-id: trunk@7170 -
2007-04-25 07:32:13 +00:00
florian
f4868c2414 * don't generate pointer checks for newly initialized by new pointers, resolves #8757
git-svn-id: trunk@7168 -
2007-04-24 20:19:25 +00:00
florian
d83a869018 * don't write def for constant widestrings
git-svn-id: trunk@7167 -
2007-04-24 08:53:59 +00:00
sekelsenmat
812ca1e7a7 Improved Symbian OS support. Added c bindings. Simple softwares for the emulator now work
git-svn-id: trunk@7157 -
2007-04-23 05:33:02 +00:00
florian
8800db8fa0 * allow external in cppclasses
* don't insert vmt pointer for C++ constructor/destructor calls

git-svn-id: trunk@7156 -
2007-04-22 19:55:05 +00:00
florian
59d4afc172 * formatting
git-svn-id: trunk@7155 -
2007-04-22 19:50:51 +00:00
florian
00076c1076 * pass this to C++ methods always by reference
git-svn-id: trunk@7154 -
2007-04-22 19:49:56 +00:00
florian
0b92495b77 * gcc 3.x cpp name mangling
git-svn-id: trunk@7153 -
2007-04-22 18:53:44 +00:00
florian
1ce644ddda * don't do section smartlinking on symbian
git-svn-id: trunk@7151 -
2007-04-21 20:55:24 +00:00
pierre
8b0b45c2b8 + CondAsmOptStr added for IDE
git-svn-id: trunk@7145 -
2007-04-20 15:23:53 +00:00
pierre
922761915b + CondAsmOptStr added for IDE
git-svn-id: trunk@7144 -
2007-04-20 15:23:37 +00:00
Jonas Maebe
34b3a14ffc * fixed typo in opcode tables (hbrx -> lhbrx)
git-svn-id: trunk@7143 -
2007-04-20 15:14:40 +00:00
Jonas Maebe
8077765f13 * fixed loading spilled registers from offsets outside the smallint
range for ppc32 and ppc64 (mantis #8633)

git-svn-id: trunk@7142 -
2007-04-20 13:22:45 +00:00
pierre
d4ee12c000 * stabs info for this if in register
git-svn-id: trunk@7127 -
2007-04-17 23:09:51 +00:00
pierre
a7f5951cb0 * force empty .idata section at end of each dll to be in executable with oso_keep option
git-svn-id: trunk@7126 -
2007-04-17 23:09:09 +00:00
florian
c29455b111 * handle rtti for sets with a size of 1 and 2 properly, resolves #8660
git-svn-id: trunk@7125 -
2007-04-17 20:34:58 +00:00
pierre
0b8e1aa0b4 * fix for tw3661 failure for linux
git-svn-id: trunk@7122 -
2007-04-17 14:25:06 +00:00
Jonas Maebe
2b0c01b903 * simplified and fixed a_load_reg_reg()
git-svn-id: trunk@7121 -
2007-04-17 13:35:42 +00:00
Jonas Maebe
4e44015b8e * fixed register and operation sizes of a_load_ref_reg_unaligned()
and a_load_reg_ref_unaligned()

git-svn-id: trunk@7120 -
2007-04-17 13:35:16 +00:00
pierre
8c96f76180 * try to be more strict for _ID lists
git-svn-id: trunk@7114 -
2007-04-16 10:11:36 +00:00
pierre
e3a22ba730 * fix for tbs/tb0526.pp problem
git-svn-id: trunk@7110 -
2007-04-15 23:35:21 +00:00
florian
ef4e5b2829 * return proper var* value for variants in tvariantdef.getvardef
git-svn-id: trunk@7106 -
2007-04-15 19:34:47 +00:00
florian
ca8d020231 * some node optimizer stuff cleaned up
git-svn-id: trunk@7104 -
2007-04-15 14:41:00 +00:00
florian
2a244b25fc * properly inherit interface types, resolves #6690
git-svn-id: trunk@7102 -
2007-04-14 20:37:47 +00:00
florian
f87e96dfb0 * properly release open array value parameters on x86-64 or if they contain automated types, resolves #8664
git-svn-id: trunk@7100 -
2007-04-13 19:20:56 +00:00
peter
d810064e48 * fix shift for 16bit from mazen
git-svn-id: trunk@7091 -
2007-04-12 09:58:21 +00:00
peter
1f7cde0306 * patch from mazen to fix zero extending of register moves where the destination
size is larger than the source size

git-svn-id: trunk@7090 -
2007-04-12 07:11:24 +00:00
florian
070874461c * fix for tcnvint5 on sparc
git-svn-id: trunk@7088 -
2007-04-11 19:38:04 +00:00
marco
96ac89f6d5 * 64-bit FreeBSD port files
git-svn-id: trunk@7082 -
2007-04-09 09:09:01 +00:00
Jonas Maebe
0a6256e44b - disabled linking to SystemStubs for Mac OS X since it's only available
on Mac OS X 10.4 and higher

git-svn-id: trunk@7067 -
2007-04-07 16:39:44 +00:00
florian
56e30e75af * don't crash on invalid property declarations, resolves #8451
git-svn-id: trunk@7065 -
2007-04-06 21:18:10 +00:00
florian
9140766d5a * support for unaligned loads/stores on sparc
git-svn-id: trunk@7062 -
2007-04-05 12:49:12 +00:00
florian
b54185401c + sparc lazarus project file
git-svn-id: trunk@7061 -
2007-04-05 10:22:24 +00:00
florian
52db191745 * don't take size of open array defs, resolves #8615
git-svn-id: trunk@7059 -
2007-04-04 17:16:42 +00:00
tom_at_work
1d6089705f * fixed a_load_subsetreg_reg when the part to extract is already at the LSB position where only bitmasking is required
git-svn-id: trunk@7058 -
2007-04-03 22:03:18 +00:00
florian
ef5c7a595d + more symbian stuff from Felipe Monteiro de Carvalho
git-svn-id: trunk@7057 -
2007-04-03 15:46:43 +00:00
florian
b0a068b9a0 + unused so far and untested implementation of a_load_*_unaligned
git-svn-id: trunk@7054 -
2007-04-01 19:16:18 +00:00
florian
9511c9ffd2 * made arm-wince default target for arm cross compilers hosted on windows
git-svn-id: trunk@7041 -
2007-03-31 20:56:16 +00:00
tom_at_work
9c1604ea44 * do NOT specify R0 as available volatile register. Fixes cycle on ppc64/linux. Most probably the compiler starts using it as temp register which leads to bad code since in some instructions R0 means zero, not the value of R0.
git-svn-id: trunk@7039 -
2007-03-31 14:50:02 +00:00
pierre
3473faab07 + added generation of debugging infos of parast and localst for methods
git-svn-id: trunk@7038 -
2007-03-30 21:34:55 +00:00
Jonas Maebe
4913e07019 * r7035 for darwin/ppc64
git-svn-id: trunk@7036 -
2007-03-30 12:13:22 +00:00
Jonas Maebe
1cafdf7a59 * change darwin/i386 and ppc from case_sensitive into case_aware
because the directory caching overrules the file system behaviour
    for case-insensitive systems (will do darwin/ppc64 separate because
    it can't be merged back)

git-svn-id: trunk@7035 -
2007-03-30 12:12:21 +00:00
peter
bc071f709c * fix r7009, check also if the other node is integer type
git-svn-id: trunk@7032 -
2007-03-30 06:51:23 +00:00
peter
7e71a8224e * support relative symbol calculation for uleb128/sleb128
git-svn-id: trunk@7019 -
2007-03-29 06:08:58 +00:00
Jonas Maebe
226b0268e8 * savefpuexceptions directive renamed to safefpuexceptions
git-svn-id: trunk@7017 -
2007-03-28 18:05:40 +00:00
Jonas Maebe
6b414c3e89 * "too much registers" -> "too many registers"
git-svn-id: trunk@7014 -
2007-03-28 13:17:38 +00:00
pierre
0056b833e5 * fix register parameters for GDB
git-svn-id: trunk@7013 -
2007-03-27 23:54:30 +00:00
peter
e653ab6a22 * also try to convert non-set nodes to a set in set operations
git-svn-id: trunk@7010 -
2007-03-27 18:37:30 +00:00
peter
ab22fd42d1 * simplify integer operations with constnat 0 or 1
git-svn-id: trunk@7009 -
2007-03-27 18:33:04 +00:00
peter
69a4e616ba * fix symbol substraction in stabs
git-svn-id: trunk@7008 -
2007-03-27 17:43:28 +00:00
florian
c4ed4ed7c1 * fix gprof support for win32
git-svn-id: trunk@7003 -
2007-03-25 20:26:59 +00:00
daniel
d0e162317b * Fix indentation.
git-svn-id: trunk@6998 -
2007-03-25 14:38:45 +00:00
daniel
d4de54402c * In genhightree, do typecheckpass later to prevent references to possibly
optimizes away nodes.

git-svn-id: trunk@6994 -
2007-03-25 13:11:29 +00:00
Tomas Hajny
c2cec3a8c0 * align Comment behaviour with Msg2Comment
git-svn-id: trunk@6991 -
2007-03-25 00:21:12 +00:00
marco
a6933471cd * FreeBSD/x86_64 didn't define BSD
git-svn-id: trunk@6977 -
2007-03-24 21:19:06 +00:00
florian
70b438a40f * better insert of pc relative data
git-svn-id: trunk@6975 -
2007-03-24 18:35:53 +00:00
Jonas Maebe
673d02c6b8 * re-added darwin/ppc64 support (please use up-to-date fpcmake)
git-svn-id: trunk@6973 -
2007-03-24 17:26:10 +00:00
mazen
57696aa274 * Build unixutil package for all Linux platforms instead of only Linux/i386.
git-svn-id: trunk@6972 -
2007-03-24 14:06:30 +00:00
florian
a6f503f263 * load object files always at once, speeds up Morfik project compilation by 15%
git-svn-id: trunk@6970 -
2007-03-24 10:39:55 +00:00
florian
66a6764d8a * TCFileStream.Seek should return the new position
git-svn-id: trunk@6969 -
2007-03-24 10:38:36 +00:00
pierre
f91620c22b * fix threadvar stabstr handling in internal assembler
git-svn-id: trunk@6960 -
2007-03-23 06:52:29 +00:00
Jonas Maebe
5f169f97ff * fixed SSE2 substraction when both operands are on the 80x87 fpu stack
git-svn-id: trunk@6959 -
2007-03-23 00:21:46 +00:00
florian
8c8042aaf0 * experimental fix for #8210
git-svn-id: trunk@6948 -
2007-03-21 19:19:30 +00:00
Jonas Maebe
442598d9f8 * darwin->darwin compilation does not need cross binutils (regardless
of source/target processor)

git-svn-id: trunk@6947 -
2007-03-21 19:16:51 +00:00
florian
9be265ab02 * fixed x86-64 compilation
git-svn-id: trunk@6940 -
2007-03-21 12:26:06 +00:00
peter
7d6637456b * use i?86 instead of i386
git-svn-id: trunk@6939 -
2007-03-21 11:26:46 +00:00
florian
922b387980 * WinCE compilation fixed
git-svn-id: trunk@6938 -
2007-03-20 10:09:54 +00:00
Tomas Hajny
30b78920cd * OS/2 compilation fixes (not completely finished yet)
git-svn-id: trunk@6937 -
2007-03-20 00:49:20 +00:00
daniel
2607f1f32c * Better check to avoid cross-binutils
git-svn-id: trunk@6934 -
2007-03-19 15:33:06 +00:00
daniel
9bf4565f0b + A binutils prefix is not necessary when cross-compiling from i386 to x86_64 and vice versa.
git-svn-id: trunk@6933 -
2007-03-19 14:22:57 +00:00
Jonas Maebe
96d1a246ee * fixed typos (MacOS -> Mac OS)
git-svn-id: trunk@6932 -
2007-03-19 13:45:16 +00:00
peter
6db1d803fa * removed invalid code from proc_get_importname where the result could be empty
git-svn-id: trunk@6926 -
2007-03-18 21:35:42 +00:00
florian
d55dbf92d3 * fixed assembling of cvt(t)ss2si
git-svn-id: trunk@6918 -
2007-03-18 17:35:22 +00:00
tom_at_work
208e6e504d * improve compilation on ppc64/linux
git-svn-id: trunk@6917 -
2007-03-18 15:50:49 +00:00
Jonas Maebe
9cec910eb9 * changed *string_to_*chararray helpers from functions into procedures
because on win64 the location of a function result can depend on its
    size (so some chararrays had to be returned in registers and others
    by reference, which means it's impossible to have a generic function
    declaration which works in all cases) (mantis #8533)
  * pad constant string assignments to chararrays with #0 up to the
    length of the chararray for 2.0.x compatibility (fixes
    tests/test/tarray3)

git-svn-id: trunk@6915 -
2007-03-18 12:20:01 +00:00
Tomas Hajny
f55b4d9ece * comment about sec_fpc extended to cover current meaning
git-svn-id: trunk@6907 -
2007-03-17 22:10:02 +00:00
Jonas Maebe
2f12e94947 * don't warn about uninitialised open array out parameters when
only getting their length

git-svn-id: trunk@6904 -
2007-03-17 21:57:45 +00:00
florian
53b2b1e882 * several packed array and varset related ies on sparc fixed
git-svn-id: trunk@6899 -
2007-03-17 09:16:48 +00:00
Jonas Maebe
2e3833cd7a * slightly improved previous in checking patch
git-svn-id: trunk@6892 -
2007-03-16 22:31:51 +00:00
Jonas Maebe
428306051f * give again an error for "in" operations on incompatible set
elements/sets after introduction of support for "longint in set"

git-svn-id: trunk@6885 -
2007-03-16 19:44:43 +00:00
pierre
ce5037920a + try to implement smartlink
git-svn-id: trunk@6867 -
2007-03-15 00:11:55 +00:00
florian
63523e8a7f * regenerated
git-svn-id: trunk@6863 -
2007-03-14 21:14:13 +00:00
florian
173e023e22 * german and english error file updates from Karl-Michael Schindler
git-svn-id: trunk@6862 -
2007-03-14 21:13:31 +00:00
florian
4fc85cb084 * new test
* fix compilation on i386

git-svn-id: trunk@6861 -
2007-03-14 21:09:05 +00:00
florian
bae83ee777 * set expectloc correctly on x86-64
* decide properly if we inline trunc or not on x86-64

git-svn-id: trunk@6860 -
2007-03-14 21:05:15 +00:00
florian
f4840620f0 * location.size of trunc/round must be OS_S64
* fixed assembling of cvt*2si
+ optimized trunc/round for x86_64/sse
* only floats need no type cast for trunc/round

git-svn-id: trunk@6859 -
2007-03-14 20:56:14 +00:00
Jonas Maebe
f63b0ef160 * fixed overflow for constant in-expressions involving values >
high(uinttype) on the left side

git-svn-id: trunk@6852 -
2007-03-14 19:42:01 +00:00
Jonas Maebe
e0171f4e1f * fixed overflow when calculating the byte offset of a field in case
of very large records (e.g. a record of 1GB on a 32 bit system)

git-svn-id: trunk@6850 -
2007-03-14 17:32:16 +00:00
pierre
c97ea9ceb2 * use qword also for S_Q opsize
git-svn-id: trunk@6849 -
2007-03-14 17:10:23 +00:00
pierre
d1d6413443 * use S_IQ opsize for A_FISTP instruction
git-svn-id: trunk@6848 -
2007-03-14 17:09:42 +00:00
florian
bcb1cf0d28 * make no use of int registers in trunc to reduce register pressure
git-svn-id: trunk@6844 -
2007-03-14 10:23:52 +00:00
pierre
387c5107c0 * try to get a complete cycle with nasm
git-svn-id: trunk@6838 -
2007-03-13 23:17:55 +00:00
Jonas Maebe
31c29a280a * moved typechecking stuff from taddnode.simplify to taddnode.pass_typechec
This is needed to be able to call simplify after pass_1, because
    otherwise the inserttypeconv's inserted new type conversions which
    where never firstpassed (if you want to do something like that, you
    have to return a new node as well so it will be firstpassed properly
    -- but in this case it seems this is not needed, since inserting
    those typeconversions are part of typechecking and not of simplifying,
    and typechecking must be done before simplifying anyway)

git-svn-id: trunk@6836 -
2007-03-13 23:17:12 +00:00
pierre
f07349a774 * force S_IQ size for movq instruction, needed for nasm
git-svn-id: trunk@6835 -
2007-03-13 23:17:09 +00:00
florian
c4f65df9f9 * fixed expectloc setting
git-svn-id: trunk@6833 -
2007-03-13 22:45:41 +00:00
Jonas Maebe
168e652d42 + support for simplifying simple inline functions down to a single
constant node (rather than to just a blocknode with a statement
    assigning a constant to a temp)

git-svn-id: trunk@6832 -
2007-03-13 22:27:55 +00:00
Jonas Maebe
0f546da041 * docompare -> isequal
git-svn-id: trunk@6831 -
2007-03-13 21:56:41 +00:00
Jonas Maebe
cb16e8d3d0 * nothingn has a complexity of 0
* stop complexity calculation if we get to the end of a series of a
    statements instead of crashing

git-svn-id: trunk@6830 -
2007-03-13 21:56:25 +00:00
florian
8aa259401c * fixed x86-64
git-svn-id: trunk@6828 -
2007-03-13 21:12:40 +00:00
florian
1cd41b68f7 * compiler handled round/trunc for x86
git-svn-id: trunk@6827 -
2007-03-13 20:23:24 +00:00
Jonas Maebe
9d6026827d * fixed memory leak in dosimplify
git-svn-id: trunk@6825 -
2007-03-13 18:54:01 +00:00
Jonas Maebe
95ef3145fc * don't create debugging entries for generic typesyms, since they
refer to typedefs which aren't written out either
  * fixed longstring debuginfo and fixed overflow/range errors with
    in creating it on 64 bit systems

git-svn-id: trunk@6821 -
2007-03-13 14:51:47 +00:00
Jonas Maebe
f97d028e39 * never store/restore lr for nostackframe routines, even if debugging
is turned on

git-svn-id: trunk@6820 -
2007-03-13 14:50:26 +00:00
Jonas Maebe
691ad89ba5 * fixed rangecheck define typo
git-svn-id: trunk@6819 -
2007-03-13 14:49:03 +00:00
Jonas Maebe
1580e046ed * fixed missing swapleftright in case of substracting unsigned numbers
with overflow checking turned on

git-svn-id: trunk@6818 -
2007-03-13 12:57:06 +00:00
Jonas Maebe
1205d05ba4 * make variables not regable if they are referenced by an absolute
variable of a different size

git-svn-id: trunk@6817 -
2007-03-13 10:17:33 +00:00
Jonas Maebe
69cf42c4f7 * fixed val(s,int64) (it accepted values in the range
high(int64+1)..high(qword) if written in decimal notation) + test
  * fixed range checking of qword constants parsed by the compiler
    (they always gave a range error if > high(int64), because the compiler
     internally stores them as int64)
  * turn off range checking flag of rdconstnodes created by the parser
    from _INTCONST, because those are already range checked by the
    way they are parsed using val()

git-svn-id: trunk@6814 -
2007-03-12 22:22:43 +00:00
florian
47a9c9bc60 * use section smartlinking on arm-linux, experimental
git-svn-id: trunk@6812 -
2007-03-12 21:00:12 +00:00
florian
9f3d43ec09 + more cse invariant nodes added
git-svn-id: trunk@6805 -
2007-03-12 19:47:04 +00:00
Jonas Maebe
3b3060cec5 * fixed uninitialized result of handle_typed_read_write in
case no error occurred

git-svn-id: trunk@6802 -
2007-03-12 14:43:04 +00:00
florian
fb1afe0ea4 + set FPU* define properly
git-svn-id: trunk@6785 -
2007-03-11 17:16:23 +00:00
florian
60c5179366 * experimental ie fix for dispinterfaces with rtti
git-svn-id: trunk@6770 -
2007-03-10 16:32:49 +00:00
florian
dd45cf582f * set temp. start properly when omitting stackframe
git-svn-id: trunk@6761 -
2007-03-09 20:52:04 +00:00
florian
6cd5f3a3e7 + bool64bit support to ppudump
git-svn-id: trunk@6757 -
2007-03-09 19:39:20 +00:00
Jonas Maebe
6ba8db4dd4 * fixed a_op_const_reg(_reg)(OP_OR/OP_XOR,OS_S8/OS_S16) for ppc32
(is ok for ppc64)

git-svn-id: trunk@6756 -
2007-03-09 15:51:09 +00:00
peter
b054dcde56 * call procvar only in arguments when the return type matches or there are
no overloads, fixes 8462

git-svn-id: trunk@6748 -
2007-03-08 07:53:36 +00:00
Jonas Maebe
4c1d540a21 * changed cpurequiresproperalignment from a compile-time define into
a target flag, since some kernels may be able to handle alignment
    problems, and the alignment requirements may not be absolute (e.g. on
    ppc64, only 8 byte values need alignment, and only to 4 byte boundaries)
   -> linux/ppc64 has tf_requires_proper_alignment set in its target flags,
      darwin/ppc64 hasn't

git-svn-id: trunk@6745 -
2007-03-06 16:10:56 +00:00
Jonas Maebe
eae0ba86e7 * prefer a loadsize of 4 over 8 bytes for packed loads on 64 bit,
because unaligned 8 byte loads are much slower (at least on ppc64)
    than unaligned 4 byte loads

git-svn-id: trunk@6744 -
2007-03-06 15:51:41 +00:00
Jonas Maebe
c13ff3729b * Merged 2.3 branch changes:
+ darwin/ppc64 support
    + val/str/read(ln)/write(ln) support for enums
    + simple cse at the node tree level
    + if-node simplify support
    + simple ssa support for memory locations
    + support for optional overflow/rangecheck boolean parameters for
      operators
    * a lot of unification of the ppc32/ppc64 code generators


........
r6380 | jonas | 2007-02-08 21:25:36 +0100 (Thu, 08 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncgld.pas
   M /branches/fpc_2_3/compiler/tgobj.pas
   A /branches/fpc_2_3/tests/webtbs/tw8283.pp

  + support for replacing the memory location of a temp (including
    local variables) with that of another temp to avoid unnecessary
    copies (mantis #8283)

........
r6381 | jonas | 2007-02-08 22:53:36 +0100 (Thu, 08 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/nflw.pas
   A /branches/fpc_2_3/tests/webtbs/tw8282.pp

  + simplify support for ifn (based on patch by Florian)

........
r6386 | peter | 2007-02-09 13:48:53 +0100 (Fri, 09 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/htypechk.pas
   M /branches/fpc_2_3/compiler/ncal.pas
   M /branches/fpc_2_3/compiler/symconst.pas

  * overflow,rangecheck optional parameters for operators, patch from 8281

........
r6391 | jonas | 2007-02-09 23:52:13 +0100 (Fri, 09 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/agppcgas.pas
   M /branches/fpc_2_3/compiler/powerpc64/cpunode.pas
   D /branches/fpc_2_3/compiler/powerpc64/nppcinl.pas
   M /branches/fpc_2_3/compiler/ppcgen/ngppcinl.pas

  * merged fsqrt(s) support to common powerpc unit, activate for ppc32
    if -Op970 is used (still default for ppc64, since default cpu there
    is already ppc970)

........
r6394 | jonas | 2007-02-10 18:58:47 +0100 (Sat, 10 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/cgcpu.pas
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas
   M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas

  * adapted a_jmp_name for darwin/ppc64
  * merged g_intf_wrapper for ppc32 and ppc64, and added darwin/ppc64
    support to it

........
r6396 | jonas | 2007-02-10 20:16:06 +0100 (Sat, 10 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/cgobj.pas

  + darwin/ppc64 support for g_indirect_sym_load

........
r6397 | jonas | 2007-02-10 20:22:49 +0100 (Sat, 10 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/cgcpu.pas
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas
   M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas

  + darwin/ppc64 support to ppc64's fixref
  * moved ppc32 a_load_store to cgppc and use it for darwin/ppc64 as
    well (its relocatable symbols are only 32 bits large)

........
r6399 | jonas | 2007-02-10 22:02:37 +0100 (Sat, 10 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems.pas

  + system_x86_64_darwin identifier
  + set default source system for system_x86_64_darwin and
    system_powerpc64_darwin

........
r6404 | jonas | 2007-02-10 23:01:23 +0100 (Sat, 10 Feb 2007) | 5 lines
Changed paths:
   M /branches/fpc_2_3/compiler/aasmdata.pas
   M /branches/fpc_2_3/compiler/aggas.pas
   M /branches/fpc_2_3/compiler/cgobj.pas
   M /branches/fpc_2_3/compiler/cgutils.pas
   M /branches/fpc_2_3/compiler/cresstr.pas
   M /branches/fpc_2_3/compiler/dbgdwarf.pas
   M /branches/fpc_2_3/compiler/dbgstabs.pas
   M /branches/fpc_2_3/compiler/ncgutil.pas
   M /branches/fpc_2_3/compiler/ogelf.pas
   M /branches/fpc_2_3/compiler/pdecvar.pas
   M /branches/fpc_2_3/compiler/pmodules.pas
   M /branches/fpc_2_3/compiler/symdef.pas
   M /branches/fpc_2_3/compiler/systems.pas

  + system_x86_64_darwin identifier
  + systems_darwin set which collects all darwin variants
  + added support for darwin/ppc64 and darwin/x86_64 where needed in
    the generic code

........
r6406 | jonas | 2007-02-10 23:24:32 +0100 (Sat, 10 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/cgobj.pas

  * ifdef cpu64 -> ifdef cpu64bit

........
r6409 | jonas | 2007-02-11 00:34:04 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/pdecvar.pas

  * fixed ppc64 compilation

........
r6413 | jonas | 2007-02-11 12:41:27 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/bsd/system.pp
   M /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc
   M /branches/fpc_2_3/rtl/darwin/signal.inc

  + darwin/ppc64 support for signal routines

........
r6415 | jonas | 2007-02-11 13:54:53 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_linux.pas

  * set abi of linux/ppc64 to abi_powerpc_sysv

........
r6416 | jonas | 2007-02-11 13:55:51 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/cputarg.pas
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas
   M /branches/fpc_2_3/compiler/systems/t_bsd.pas

  + darwin/ppc64 source and target information

........
r6418 | jonas | 2007-02-11 14:19:55 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/powerpc64/math.inc

  * darwin/ppc64 compilation fixes

........
r6419 | jonas | 2007-02-11 14:22:22 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/cgcpu.pas
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas
   M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas

  * darwin/ppc64 needs the 32 bit version of a_loadaddr_ref_reg

........
r6420 | jonas | 2007-02-11 14:22:55 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/utils/fpcm/fpcmmain.pp

  + darwin/ppc64 support

........
r6426 | jonas | 2007-02-11 16:13:19 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/rappcgas.pas

  * fixed refaddr parsing for darwin/ppc64

........
r6427 | jonas | 2007-02-11 16:14:21 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/agppcgas.pas
   M /branches/fpc_2_3/compiler/powerpc64/agppcgas.pas
   A /branches/fpc_2_3/compiler/ppcgen/agppcutl.pas

  * moved ppc32/ppc64 assembler writer helpers to a common unit

........
r6430 | jonas | 2007-02-11 17:53:23 +0100 (Sun, 11 Feb 2007) | 4 lines
Changed paths:
   D /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc
   D /branches/fpc_2_3/rtl/darwin/powerpc/sighnd.inc
   A /branches/fpc_2_3/rtl/darwin/powerpc64
   A /branches/fpc_2_3/rtl/darwin/powerpc64/sig_cpu.inc
   A /branches/fpc_2_3/rtl/darwin/powerpc64/sighnd.inc
   A /branches/fpc_2_3/rtl/darwin/ppcgen
   A /branches/fpc_2_3/rtl/darwin/ppcgen/ppchnd.inc (from /branches/fpc_2_3/rtl/darwin/powerpc/sighnd.inc:6422)
   A /branches/fpc_2_3/rtl/darwin/ppcgen/sig_ppc.inc (from /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc:6422)
   M /branches/fpc_2_3/rtl/darwin/signal.inc

  * fixed ppc/ppc64 signal include handling (both real files are in
    ppcgen, dummies in powerpc and powerpc64 which include those files)
    (1st step because pre-commit filter can't handle replaced files)

........
r6431 | jonas | 2007-02-11 17:53:47 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   A /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc
   A /branches/fpc_2_3/rtl/darwin/powerpc/sighnd.inc

  * second step of signal include patch

........
r6432 | jonas | 2007-02-11 19:00:12 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/t_bsd.pas

  * changed darwin checks to use systems_darwin constant

........
r6433 | jonas | 2007-02-11 19:05:38 +0100 (Sun, 11 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas

  * handle non-multiple-of-4 offsets with 64 bit loads/stores for
    darwin/ppc64

........
r6434 | jonas | 2007-02-11 19:05:56 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   D /branches/fpc_2_3/compiler/powerpc/agppcgas.pas
   D /branches/fpc_2_3/compiler/powerpc64/agppcgas.pas
   A /branches/fpc_2_3/compiler/ppcgen/agppcgas.pas (from /branches/fpc_2_3/compiler/ppcgen/agppcutl.pas:6427)
   D /branches/fpc_2_3/compiler/ppcgen/agppcutl.pas

  * completely merged ppc assembler writers

........
r6435 | jonas | 2007-02-11 19:06:40 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/darwin/console.pp
   M /branches/fpc_2_3/rtl/darwin/termiosproc.inc

  * fixed 64 bit compilation

........
r6436 | jonas | 2007-02-11 19:09:28 +0100 (Sun, 11 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/packages/extra/Makefile.fpc

  * universal interfaces aren't 64 bit ready yet -> only compile for
    darwin/ppc and darwin/i386

........
r6438 | jonas | 2007-02-11 19:22:34 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/ctest.o
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/tcext3.o
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/tcext4.o
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/tcext5.o

  + compiled for darwin/ppc64

........
r6439 | jonas | 2007-02-11 20:24:42 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas

  * patch from Thomas to fix linux/ppc64

........
r6440 | jonas | 2007-02-11 20:25:15 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems.pas

  * fixed setting source OS for darwin/ppc64

........
r6444 | florian | 2007-02-11 22:24:20 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/globtype.pas
   M /branches/fpc_2_3/compiler/nopt.pas
   M /branches/fpc_2_3/compiler/nutils.pas
   M /branches/fpc_2_3/compiler/optcse.pas
   M /branches/fpc_2_3/compiler/psub.pas

+ first node cse implementation

........
r6445 | jonas | 2007-02-11 22:30:07 +0100 (Sun, 11 Feb 2007) | 6 lines
Changed paths:
   M /branches/fpc_2_3/compiler/cresstr.pas

  * hack to work around strange darwin/ppc64 linker bug: it seems to
    have problems if you put a global symbol at the end of a section
    without any data following (at least in case of the resource strings
    section) -> add dummy byte at the end for darwin/ppc64 (otherwise
    it messes up the address of the first symbol stub entry)

........
r6449 | jonas | 2007-02-11 23:23:44 +0100 (Sun, 11 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas

  * cpupowerpc is defined for both ppc32 and ppc64 ->
    changed to cpupowerpc32 to avoid defining source
    wrongly on ppc64

........
r6450 | jonas | 2007-02-11 23:26:34 +0100 (Sun, 11 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ppcgen/ngppcset.pas

  * disable jump tables for darwin/ppc64 for now, don't work
    yet for some reason

........
r6451 | florian | 2007-02-11 23:54:37 +0100 (Sun, 11 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncal.pas
   M /branches/fpc_2_3/compiler/nutils.pas
   M /branches/fpc_2_3/compiler/optcse.pas

* improved cse
* better complexity calculation for subscript nodes with classes or interfaces

........
r6456 | jonas | 2007-02-12 19:33:22 +0100 (Mon, 12 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/nutils.pas

  + support for notn,shln,shrn,equaln,unequaln,gtn,gten,ltn,lten in
    node_cplexity()
  * mark muln,divn,modn as more complex

........
r6469 | jonas | 2007-02-13 15:56:01 +0100 (Tue, 13 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/optcse.pas

  * fixed when cross-compiling a 64 bit compiler from a 32 bit platform

........
r6471 | jonas | 2007-02-13 16:17:16 +0100 (Tue, 13 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/cputarg.pas

  * include stabs support (can work on darwin/ppc64, but doesn't work
    yet)

........
r6473 | jonas | 2007-02-13 16:45:48 +0100 (Tue, 13 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas
   M /branches/fpc_2_3/compiler/powerpc64/cpupara.pas

  * R2 is a volatile and usable register under darwin/ppc64
  * R13 is a reserved non-volatile register under darwin/ppc64 (tls)

........
r6479 | jonas | 2007-02-13 20:40:50 +0100 (Tue, 13 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas

  * maxCrecordalign seems to have to be 8 rather 4, in spite of what
    the ABI docs say (although they are contradictory to some extent)

........
r6487 | jonas | 2007-02-14 15:57:40 +0100 (Wed, 14 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/tests/webtbs/tw8153a.pp

  * fixed for darwin/ppc64

........
r6488 | jonas | 2007-02-14 15:58:56 +0100 (Wed, 14 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/tests/webtbs/tw7851a.pp

  * fixed for darwin/ppc64

........
r6494 | jonas | 2007-02-15 19:36:55 +0100 (Thu, 15 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas

  * set default debug info for darwin/ppc64 to dwarf2 since
    it works better than stabs currently

........
r6500 | jonas | 2007-02-15 21:38:16 +0100 (Thu, 15 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/version.pas

  * updated version to 2.3.0

........
r6505 | jonas | 2007-02-15 22:39:28 +0100 (Thu, 15 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/version.pas

  * changed version to 2.3.1

........
r6511 | jonas | 2007-02-16 15:17:24 +0100 (Fri, 16 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/itcpugas.pas

  * system_powerpc_darwin -> system_powerpc64_darwin

........
r6546 | daniel | 2007-02-18 15:48:54 +0100 (Sun, 18 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncginl.pas
   M /branches/fpc_2_3/compiler/ncgld.pas
   M /branches/fpc_2_3/compiler/ncgrtti.pas
   M /branches/fpc_2_3/compiler/ncnv.pas
   M /branches/fpc_2_3/compiler/ninl.pas
   M /branches/fpc_2_3/compiler/nld.pas
   M /branches/fpc_2_3/compiler/nutils.pas
   M /branches/fpc_2_3/compiler/pinline.pas
   M /branches/fpc_2_3/rtl/inc/astrings.inc
   M /branches/fpc_2_3/rtl/inc/compproc.inc
   M /branches/fpc_2_3/rtl/inc/sstrings.inc
   M /branches/fpc_2_3/rtl/inc/text.inc
   M /branches/fpc_2_3/rtl/inc/wstrings.inc

  + Val/str/read/write support for enumeration types.

........
r6547 | daniel | 2007-02-18 17:01:20 +0100 (Sun, 18 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/inc/sstrings.inc

  * Fix val code that I broke.

........
r6571 | daniel | 2007-02-20 09:27:44 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/inc/astrings.inc
   M /branches/fpc_2_3/rtl/inc/sstrings.inc
   M /branches/fpc_2_3/rtl/inc/text.inc
   M /branches/fpc_2_3/rtl/inc/wstrings.inc

  * o2s -> ord2str, s2o -> str2ord

........
r6572 | daniel | 2007-02-20 09:33:30 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncgld.pas
   M /branches/fpc_2_3/compiler/ncgrtti.pas
   M /branches/fpc_2_3/compiler/ninl.pas
   M /branches/fpc_2_3/compiler/nld.pas

  * o2s -> ord2str, s2o -> str2ord

........
r6574 | daniel | 2007-02-20 12:07:58 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/inc/compproc.inc

  * o2s -> ord2str, s2o -> str2ord

........
r6578 | daniel | 2007-02-20 22:18:49 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/inc/text.inc

  * Change longint to valsint.

........
r6579 | daniel | 2007-02-20 22:29:09 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ninl.pas

  * Handle ordinal currency types.

........
r6580 | jonas | 2007-02-20 22:29:11 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncgrtti.pas

  * fixed compilation for cpurequiresproperalignment

........
r6581 | jonas | 2007-02-20 22:30:21 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ninl.pas

  * fixed typo

........
r6582 | daniel | 2007-02-20 22:36:19 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ninl.pas

  * Set is_real to true.

........
r6590 | jonas | 2007-02-21 20:23:54 +0100 (Wed, 21 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas

  * set tf_dwarf_only_local_labels for darwin/ppc64

git-svn-id: trunk@6720 -
2007-03-04 20:16:57 +00:00
florian
224da99c63 * regenerated
git-svn-id: trunk@6715 -
2007-03-04 19:16:28 +00:00
florian
e6e1a3a09b * fixed assembling of sse instructions on x86-64 with regs > xmm7
git-svn-id: trunk@6714 -
2007-03-04 19:16:20 +00:00
Tomas Hajny
a62c2da154 * updates from Ido Kanner - synchronized with errore.msg r6685
git-svn-id: trunk@6707 -
2007-03-03 22:13:42 +00:00
Tomas Hajny
b512e234c9 * updates from Ido Kanner - synchronized with errore.msg r6685
git-svn-id: trunk@6706 -
2007-03-03 22:13:29 +00:00
florian
c3f22aae94 * fixed set+range on big endian systems
git-svn-id: trunk@6704 -
2007-03-03 19:51:34 +00:00
florian
cb746ec830 * propagate -Cfsoft to emulation settings on arm
git-svn-id: trunk@6703 -
2007-03-03 18:03:39 +00:00
florian
efb025310d * tried to restore old set behaviour for big endian targets
git-svn-id: trunk@6702 -
2007-03-03 17:52:55 +00:00
florian
29f201c10b * fixed default target setting for powerpc/powerpc64
git-svn-id: trunk@6701 -
2007-03-03 16:48:07 +00:00
florian
d48b98e8b9 * unified ies
git-svn-id: trunk@6700 -
2007-03-03 16:03:20 +00:00
florian
d5aea5e14a + powerpc lazarus project file
git-svn-id: trunk@6699 -
2007-03-03 14:53:15 +00:00
florian
b8af065523 * do check for non defined labels earlier to avoid ies in the cg
git-svn-id: trunk@6698 -
2007-03-03 14:52:46 +00:00
michael
6397ad6909 * Proper LaTeX environment ending
git-svn-id: trunk@6685 -
2007-02-28 21:29:45 +00:00
Jonas Maebe
615c450062 + support for bitpacking types with a negative lower bound
git-svn-id: trunk@6683 -
2007-02-28 17:42:41 +00:00
Jonas Maebe
7925bed48d * is_signed() only returns true for orddef's whose low value is < 0
(and not for all s8bit..s64bit types, since subrange types may
     be marked like that but not have a lower bound < 0).

    This is needed for bitpacking negative values, because e.g.
    both 0..7 and -3..3 can be stored in 3 bits, but 0..7 must be
    zero-extended when extracted (so must be unsigned) and -3..3 must
    be sign-extended when extracted (so must be considered signed)

git-svn-id: trunk@6682 -
2007-02-28 17:34:50 +00:00
peter
973c973081 * don't write alignment for .comm and .lcomm, it seems to be only
supported by i386-linux

git-svn-id: trunk@6675 -
2007-02-27 18:21:52 +00:00
peter
9676482f8e * fix array constructors that start with nil
git-svn-id: trunk@6673 -
2007-02-27 17:03:31 +00:00
peter
bf652ab1d2 * fixed att asmmode
git-svn-id: trunk@6672 -
2007-02-27 16:31:40 +00:00