Commit Graph

8074 Commits

Author SHA1 Message Date
florian
46ecdc8f94 * allow pred/succ on non continous enumerations in delphi mode
git-svn-id: trunk@1878 -
2005-12-04 18:35:19 +00:00
florian
0907a1ef80 * fixed compilerwidestring concatenation
git-svn-id: trunk@1876 -
2005-12-04 18:29:07 +00:00
tom_at_work
3502898ba3 * makefile updates after last changes for successful build on ppc64/linux
git-svn-id: trunk@1874 -
2005-12-04 13:07:37 +00:00
Jonas Maebe
b507ddae51 * fixed crash when an optimized sequence extends till the start of an
assembler block

git-svn-id: trunk@1869 -
2005-12-02 11:09:13 +00:00
daniel
c0b4678873 * Rename unit crc to fpccrc to avoid name conflict in packages
git-svn-id: trunk@1856 -
2005-12-01 16:45:44 +00:00
florian
1e4e857719 * apptype causes only a note on system not supporting apptype
git-svn-id: trunk@1827 -
2005-11-26 21:54:15 +00:00
florian
d7a5ca107b * fixed m68k compilation while sitting bored in the train
git-svn-id: trunk@1823 -
2005-11-25 23:08:46 +00:00
Károly Balogh
1432660c80 Fixed Unix2Amiga path conversions for external asm script
git-svn-id: trunk@1816 -
2005-11-24 11:41:59 +00:00
florian
aa22e57a7e * fixed issue with static fields
git-svn-id: trunk@1803 -
2005-11-22 22:08:11 +00:00
florian
350c886460 + support exit();
git-svn-id: trunk@1802 -
2005-11-22 21:27:56 +00:00
marco
f7f14e4dee * CROSSOPT support
git-svn-id: trunk@1798 -
2005-11-20 22:19:50 +00:00
marco
d2e7a4e587 * cross-darwin support
git-svn-id: trunk@1796 -
2005-11-20 22:13:23 +00:00
florian
c43e2df522 * copying of classes fixed, closes 3930
git-svn-id: trunk@1791 -
2005-11-20 09:11:23 +00:00
tom_at_work
651f34e27c * ppc64: with -Or the compiler now also generates calls to helper functions in the function prolog/epilog instead of multiple stores/loads
* ppc64: moved function prolog/epilog helper code into startup code
* ppc64: added FPU configuration code in math unit (fixes tw3161)

git-svn-id: trunk@1786 -
2005-11-20 01:20:55 +00:00
Jonas Maebe
cc44a19af5 * use stmw/lmw when saving/restoring a lot of registers, to reduce generated
code size and thus instruction cache pressure.

git-svn-id: trunk@1785 -
2005-11-19 17:31:35 +00:00
tom_at_work
93bb997d8f * ppc64/linux: enhanced varargs support (passes tprintf test now)
* ppc64/linux: some small tweak for small memory locations copy code

git-svn-id: trunk@1778 -
2005-11-17 21:35:01 +00:00
Tomas Hajny
9032cdafbe * fix of buggy output for -? with path containing underscore
git-svn-id: trunk@1772 -
2005-11-16 19:00:21 +00:00
Tomas Hajny
50f03555bd * fix of buggy output for -? with path containing underscore
git-svn-id: trunk@1771 -
2005-11-16 18:59:57 +00:00
Tomas Hajny
55c67978a3 * fix of buggy output for -? with path containing underscore
git-svn-id: trunk@1770 -
2005-11-16 18:59:33 +00:00
Tomas Hajny
b94665c39f * fix of buggy output for -? with path containing underscore
git-svn-id: trunk@1769 -
2005-11-16 18:47:52 +00:00
Tomas Hajny
614b6a3816 * fix of buggy output for -? with path containing underscore
git-svn-id: trunk@1768 -
2005-11-16 18:47:29 +00:00
Tomas Hajny
20ca9f5fac * fix of buggy output for -? with path containing underscore
git-svn-id: trunk@1767 -
2005-11-16 18:46:15 +00:00
Tomas Hajny
f3c9fb62fa * fix of buggy output for -? with path containing underscore
git-svn-id: trunk@1766 -
2005-11-16 18:44:13 +00:00
Tomas Hajny
c513dbcd03 * fix of buggy output for -? with path containing underscore
git-svn-id: trunk@1765 -
2005-11-16 18:43:48 +00:00
florian
f9b05b2cdf * fixed rtl package building
git-svn-id: trunk@1763 -
2005-11-15 22:39:32 +00:00
florian
94357cdb50 * new version number
git-svn-id: trunk@1762 -
2005-11-15 21:38:40 +00:00
florian
ef2966e2a6 + more make_simple_ref added
git-svn-id: trunk@1761 -
2005-11-15 20:03:30 +00:00
florian
f8e6df62b6 + added missing make_simple_ref
git-svn-id: trunk@1760 -
2005-11-15 19:43:37 +00:00
florian
99be25604b * fixed address calculation when generating pic
git-svn-id: trunk@1759 -
2005-11-15 19:25:42 +00:00
florian
cd96d43ac3 * reverted lazy binding patch: lazy binding requires anyways PIC
git-svn-id: trunk@1758 -
2005-11-15 19:21:42 +00:00
peter
9a8dc6bfb2 * store hidden symbols correctly in ppu
git-svn-id: trunk@1751 -
2005-11-15 08:35:01 +00:00
florian
72d7597edc + implementation of lazy binding for linux
git-svn-id: trunk@1750 -
2005-11-14 22:28:12 +00:00
florian
2585309c04 * of course, we can't omit pic generation for local symbols
git-svn-id: trunk@1743 -
2005-11-13 21:36:38 +00:00
florian
5c92126933 + $PIC module switch directive
git-svn-id: trunk@1740 -
2005-11-13 21:21:15 +00:00
florian
ff6af1804b * fixed loading of pic'ed symbols with offset
* symbols declared AB_COMMON or AB_LOCAL need no pic

git-svn-id: trunk@1739 -
2005-11-13 21:05:42 +00:00
florian
ca921976f6 * when creating pic code, every procedure must be declared being global
git-svn-id: trunk@1733 -
2005-11-13 18:08:49 +00:00
florian
dac22b4703 * fixed stupid typo in x86_64 pic code generation
git-svn-id: trunk@1731 -
2005-11-13 17:00:34 +00:00
florian
fdc1419832 * fixed interface wrappers in pic
git-svn-id: trunk@1728 -
2005-11-13 14:53:04 +00:00
florian
a27b87043f * reset some variables which could be in an illegal state after an error, this is mainly important for the ide
git-svn-id: trunk@1726 -
2005-11-12 11:14:50 +00:00
olle
5bf628a72e bugfix, inherited reset was not called
git-svn-id: trunk@1724 -
2005-11-12 00:37:45 +00:00
tom_at_work
367df58016 * stack related things (sizes, calculations, etc.) are now 64 bit on 64 bit platforms
* default stack size is now also 32k for Windows (allows the use of stack checking when using threads)

git-svn-id: trunk@1718 -
2005-11-10 17:06:25 +00:00
tom_at_work
54dee95053 * removed "+0" offset generation in assembler writer
git-svn-id: trunk@1717 -
2005-11-10 15:16:20 +00:00
tom_at_work
ff47ffb255 * quick fix for stack checking on Linux/PPC64
git-svn-id: trunk@1716 -
2005-11-10 15:15:26 +00:00
tom_at_work
8ca0fe382e * removed "+0" offset generation in assembler writer
git-svn-id: trunk@1714 -
2005-11-10 15:11:06 +00:00
michael
0362fa505d + -o now sets output path only if a path is explicitly specified
git-svn-id: trunk@1698 -
2005-11-08 20:25:04 +00:00
peter
e00ef44479 * fix boolean range parsing false..true
* allow set of boolean

git-svn-id: trunk@1690 -
2005-11-08 09:11:39 +00:00
Tomas Hajny
198e0db5a1 * mistyping fixed - trac_e_able
git-svn-id: trunk@1684 -
2005-11-06 23:12:36 +00:00
florian
a6b00feb1e + warn directive is different fom warnings and warning
git-svn-id: trunk@1682 -
2005-11-06 20:09:28 +00:00
michael
9b59f0675f + Fixed -o option
git-svn-id: trunk@1669 -
2005-11-05 23:26:23 +00:00
tom_at_work
d088695868 * ppc64: moved division by constant optimization from nppcmat to cgcpu unit
* ppc64: cg now also replaces multiplications/divisions by negative powers of two by shifts (and a negate)
* ppc64: replacement of divison by constants now properly check the -O2 compiler switch

git-svn-id: trunk@1662 -
2005-11-05 17:59:14 +00:00
florian
3f2f8609e3 + check vmt when loading one, fixes tw2318b
git-svn-id: trunk@1660 -
2005-11-05 16:29:13 +00:00
florian
12a1449884 * ldf*/stf* can handle only offsets with max. +/- 1020, so generate never a pc relative symbol
git-svn-id: trunk@1649 -
2005-11-04 23:56:06 +00:00
tom_at_work
e4a61f4af1 * a_op_const_reg_reg optimizations
* added some more 64 bit PPC opcodes
* removed last mwpascal references
* added replacement of division/modulo by constant by multiplications and shifts for 64 bit
* general cleanup

git-svn-id: trunk@1648 -
2005-11-04 22:49:05 +00:00
florian
4bd32a686d * regenerated msg include files
git-svn-id: trunk@1647 -
2005-11-04 21:35:39 +00:00
florian
18622259ac * fixed -Nu option on help screen
git-svn-id: trunk@1646 -
2005-11-04 21:35:07 +00:00
tom_at_work
9228588260 - added handling of OS_NO parameters in a_param_ref
git-svn-id: trunk@1619 -
2005-11-01 21:11:50 +00:00
peter
e88ff7ae84 * fixed writing of old style tp-objects
git-svn-id: trunk@1613 -
2005-10-31 12:27:23 +00:00
tom_at_work
2198a6a44a * assembly round and trunc routines for ppc64
git-svn-id: trunk@1601 -
2005-10-26 21:43:54 +00:00
tom_at_work
c5f89d7efd * release old stack pointer register on ppc64 after method prolog
* threading fixes for ppc64
* fixed a_param_ref to respect the size parameter on ppc64
* better stack size calculation for ppc64

git-svn-id: trunk@1599 -
2005-10-26 19:50:17 +00:00
tom_at_work
10d39167c6 * fixed code generation for calling threadvar relocation function
git-svn-id: trunk@1597 -
2005-10-26 19:42:12 +00:00
tom_at_work
3645a69686 * added mftbu (move from timebase upper) opcode
git-svn-id: trunk@1596 -
2005-10-25 20:45:05 +00:00
tom_at_work
d7cedd18eb * made fpc recognize the powerpc64 platform and the associated compiler
git-svn-id: trunk@1595 -
2005-10-25 20:20:12 +00:00
tom_at_work
5520442fc4 * call by register now also takes care of the TOC and environment pointer
* first "optimize for size"-optimization

git-svn-id: trunk@1593 -
2005-10-25 20:12:21 +00:00
florian
1ef533ffa9 * rtti parameter for dyn. array to variant conversion fixed
git-svn-id: trunk@1590 -
2005-10-23 19:41:16 +00:00
Jonas Maebe
41d2ba68fe * use an absolute output path for the linker when creating shared libraries,
so they can be used regardless where the executable is located

git-svn-id: trunk@1588 -
2005-10-23 18:19:03 +00:00
florian
5907f99b6a * fixed previous commit
git-svn-id: trunk@1580 -
2005-10-23 16:59:59 +00:00
florian
a21b79d316 + plt for export jmps
git-svn-id: trunk@1579 -
2005-10-23 16:57:47 +00:00
florian
bc7fab1aeb + plt support for x86_64
git-svn-id: trunk@1578 -
2005-10-23 14:47:09 +00:00
Jonas Maebe
89094457c5 * pass varargs float parameters only in integer registers instead of only
in fpu registers for aix abi. Proper fix is to pass them in both, but
    at least gcc under Mac OS X only seems to use the contents in the integer
    registers currently.

git-svn-id: trunk@1576 -
2005-10-23 14:23:16 +00:00
florian
1b97e2cffd + added missing make_simple_ref
git-svn-id: trunk@1572 -
2005-10-23 13:28:43 +00:00
florian
11e087e212 + fixed some alignment settings
git-svn-id: trunk@1563 -
2005-10-22 15:40:36 +00:00
florian
a068b7a059 * updated internal message files
git-svn-id: trunk@1562 -
2005-10-22 15:17:56 +00:00
florian
5387ffc536 + alignment setting
git-svn-id: trunk@1561 -
2005-10-22 15:17:33 +00:00
florian
e7b9c58e2c * update errord.msg from Karl-Michael Schindler
git-svn-id: trunk@1560 -
2005-10-22 15:12:15 +00:00
florian
a3ed7cbd12 + check validity of -Oa parameter
git-svn-id: trunk@1559 -
2005-10-22 15:09:39 +00:00
peter
f1af7cfe8f * generate implicit 0+<x> for +<x> expressions
git-svn-id: trunk@1556 -
2005-10-21 07:46:14 +00:00
tom_at_work
9531293b89 * jumptable support
* fixed cg for loading from addresses with symbol and large offset, but no base register

git-svn-id: trunk@1547 -
2005-10-20 17:33:33 +00:00
tom_at_work
202236c6e0 * fpcmake.ini update which fixes glibc search path problems on PowerPC64
* makefile update

git-svn-id: trunk@1546 -
2005-10-20 16:56:40 +00:00
peter
19eaf660c2 * more flexibel support for typecasting to different sizes
fixes tw4450
      

git-svn-id: trunk@1544 -
2005-10-20 11:13:49 +00:00
peter
a0b9dd48c9 * remove check for expectloc<>location.loc, it doesn't work anymore for
temprefn,blockn causing too much warnings in extdebug

git-svn-id: trunk@1542 -
2005-10-20 06:51:40 +00:00
tom_at_work
5fcb64f350 * parameter passing is now more ABI compliant
* stack frame size optimization
* optimized (64 bit) constant loading
* some code generator code cleanup

git-svn-id: trunk@1539 -
2005-10-19 23:25:21 +00:00
florian
e1b34a9e7b * cleaning up sets for exports behaviour
+ allow exports from units

git-svn-id: trunk@1535 -
2005-10-19 19:06:45 +00:00
florian
cf3c9bdcad * a_jmp_always fixed, it doesn't generate a new symbol anymore
git-svn-id: trunk@1534 -
2005-10-19 14:38:30 +00:00
florian
d43f2fb2d4 * OP_DIV shouldn't be used directly, not all cpu CGs support it
git-svn-id: trunk@1533 -
2005-10-19 14:31:59 +00:00
peter
ed1df49879 * fix stabs writing for win32
git-svn-id: trunk@1532 -
2005-10-19 13:05:20 +00:00
peter
f9db030350 * fix overload choosing if both normal proc and proc of object are available
git-svn-id: trunk@1496 -
2005-10-19 07:56:08 +00:00
peter
0d299d5d2b * errore.msg is in msg/ dir
git-svn-id: trunk@1495 -
2005-10-19 07:46:50 +00:00
peter
260861e184 * calculate distance between related objectdefs
git-svn-id: trunk@1492 -
2005-10-19 06:38:29 +00:00
peter
09a0dff4da * prefer object->object over object->intf
git-svn-id: trunk@1491 -
2005-10-19 06:36:10 +00:00
peter
252d90b691 * $CodeAlign directive added for fine tuning off alignment during code generation
git-svn-id: trunk@1489 -
2005-10-19 06:05:48 +00:00
peter
e23519c45b * support A1,A2,A4,A8 directives
git-svn-id: trunk@1488 -
2005-10-19 05:54:27 +00:00
peter
632bdcd149 * $W switch sets the localswitch cs_generate_stackframes that can be
used in the future

git-svn-id: trunk@1487 -
2005-10-19 05:50:26 +00:00
peter
8d9e9b24a6 * convert constant widestring to ansistring before assigning to pchar
git-svn-id: trunk@1482 -
2005-10-18 20:49:23 +00:00
florian
7be36096f0 + proper init rtti for proc. vars
git-svn-id: trunk@1479 -
2005-10-18 20:05:56 +00:00
peter
38993ae7e8 * support procvar^, with procvar returning a procvardef in tp/mac modes
git-svn-id: trunk@1477 -
2005-10-18 12:33:27 +00:00
peter
b55645790b * allow also procvar calls with a postfix operation after a calln
git-svn-id: trunk@1476 -
2005-10-18 12:32:09 +00:00
peter
8b60dbe4cb * support constant array of char to array of widechar
git-svn-id: trunk@1475 -
2005-10-18 12:31:30 +00:00
peter
0981495c7b * all types with inittable need a persistant temp
git-svn-id: trunk@1472 -
2005-10-18 12:29:04 +00:00
peter
adfd36d189 * allow conststring to array of widechar
git-svn-id: trunk@1471 -
2005-10-18 12:27:43 +00:00
peter
7d153beac7 * assignment operator search finds best matching operator
git-svn-id: trunk@1469 -
2005-10-18 10:53:11 +00:00
peter
45fbeaad53 * implicitly convert constant string to stringdef if it is indexed
git-svn-id: trunk@1468 -
2005-10-18 10:52:43 +00:00
peter
ea6dadb7be * make widestrings compatible with COM BSTR, the length is now the number
of bytes allocated instead of the number of widechars

git-svn-id: trunk@1467 -
2005-10-18 09:45:13 +00:00
Jonas Maebe
867aaef744 * fixed restoring of register contents one instruction too far when removing
a previous unused load

git-svn-id: trunk@1465 -
2005-10-18 09:31:54 +00:00
peter
5abb9d68f6 * prevent warning for val with second parameter not being a longint
git-svn-id: trunk@1463 -
2005-10-18 08:26:29 +00:00
peter
daa002f26b * only check forwards for the original object type declaration
git-svn-id: trunk@1459 -
2005-10-18 07:22:55 +00:00
peter
539b7dc220 * setting the compile mode should set the preprocessor symbol directly
git-svn-id: trunk@1457 -
2005-10-18 06:57:39 +00:00
peter
f622915690 * fix infinite loop in createinlineparas
git-svn-id: trunk@1456 -
2005-10-18 05:51:13 +00:00
peter
4c73e86058 * check for allowed floatdef operations
git-svn-id: trunk@1455 -
2005-10-18 05:45:50 +00:00
tom_at_work
4db863d076 * first shared library link path fixes
* PowerPC64/Linux signal handler now differs between different FP exceptions

git-svn-id: trunk@1452 -
2005-10-17 21:30:21 +00:00
florian
9a1c731bfb + basic dispinterface parsing stuff
git-svn-id: trunk@1445 -
2005-10-17 20:28:50 +00:00
peter
59a26e4f68 * fixed interface name mapping
git-svn-id: trunk@1443 -
2005-10-17 16:02:44 +00:00
peter
6e60c8a92b * move stab number reset to dbgstabs
git-svn-id: trunk@1442 -
2005-10-17 15:02:15 +00:00
peter
d5af8ed9a0 * fix range check error
git-svn-id: trunk@1439 -
2005-10-17 08:03:08 +00:00
florian
8af13ed6ae * fixed result type conversion for sqrt/sqr
git-svn-id: trunk@1425 -
2005-10-16 16:39:00 +00:00
florian
0308048768 * fixed compilation
git-svn-id: trunk@1418 -
2005-10-16 14:12:30 +00:00
florian
8b01dce70a * cmov ref,reg disabled because ref might be never nil
git-svn-id: trunk@1407 -
2005-10-16 12:25:58 +00:00
Jonas Maebe
758337d115 * fixed passing currency variables to arrayconstructors on platforms where
currency=int64

git-svn-id: trunk@1400 -
2005-10-16 06:04:58 +00:00
Jonas Maebe
810ec85e34 - disable inlining for procedures with a formal const parameter, fixes
webtbs/tw4427

git-svn-id: trunk@1390 -
2005-10-15 20:48:35 +00:00
florian
71b90d4d00 + slice implemented
git-svn-id: trunk@1384 -
2005-10-15 16:48:27 +00:00
Jonas Maebe
2dbdc474fd * use register variables when release-building for ppc (more or less doubles
performance for most programs)

git-svn-id: trunk@1383 -
2005-10-15 16:36:52 +00:00
Jonas Maebe
00b612502e * fixed web bug #4228 (support loading int64 paras passed on the stack into
local regvars)

git-svn-id: trunk@1380 -
2005-10-15 16:03:00 +00:00
Jonas Maebe
b458554f5b + some optimizations for comparisons with zero whereby the result has to
go to a register

git-svn-id: trunk@1379 -
2005-10-15 11:09:44 +00:00
Jonas Maebe
4558cd705e + optimize some slwi/rlwinm combos
git-svn-id: trunk@1378 -
2005-10-14 21:03:48 +00:00
Jonas Maebe
9cf0865d0e * remove a number of superfluous register moves
git-svn-id: trunk@1377 -
2005-10-14 20:34:53 +00:00
peter
d1d2b0e1a1 * function name doesn't call the function in macpas
git-svn-id: trunk@1376 -
2005-10-14 07:25:22 +00:00
tom_at_work
0ba960e1bd * added workarounds for some load/store instructions requiring 4 byte aligned addresses
* some cleanup and optimization of 64 bit address loading in the code generator
* small changes to the IDE to make it compile
* stat type update for packages/cdrom compatibility

git-svn-id: trunk@1375 -
2005-10-14 00:00:16 +00:00
marco
bf92c461d1 * removed dos usage from fpc binary. (mostly fsearch -> filesearch).
This because of reports with problems with path env variables >255

git-svn-id: trunk@1367 -
2005-10-13 18:36:01 +00:00
peter
5a95586f38 * more fixes for procdefs
git-svn-id: trunk@1366 -
2005-10-13 12:42:01 +00:00
Jonas Maebe
e14d8e6611 * don't replace cmplwi's with flag-setting variants of integer operations,
as the latter perform a signed comparison with 0

git-svn-id: trunk@1365 -
2005-10-13 07:49:02 +00:00
Jonas Maebe
cd3f064a33 + enabled postpeepholeopts phase
+ optimize "integer op" followed by comparison of target register with zero
    to a variant of that integer op which sets the flags (ppc)
  + change rlwinm. instructions which do nothing but an "and" operation into
    andi./andis., since the rlwinm. is cracked on the G5 while andi./andis.
    isn't

git-svn-id: trunk@1361 -
2005-10-12 19:47:21 +00:00
Jonas Maebe
339f76182b + missing rlwnm. and not. instructions
git-svn-id: trunk@1360 -
2005-10-12 19:44:34 +00:00
tom_at_work
99120a3f2b * fixed -Or cycle for PowerPC64 by adding the missing additional newra methods
git-svn-id: trunk@1359 -
2005-10-12 13:16:02 +00:00
peter
51b8a4a132 * move stabs generation to a single procedure call from pmodules
git-svn-id: trunk@1358 -
2005-10-12 10:35:46 +00:00
peter
a01774c73d * writesymbol for relocations in stabs
git-svn-id: trunk@1357 -
2005-10-12 05:57:30 +00:00
peter
8b1f3d2470 * no range check for delphi mode with in operator
git-svn-id: trunk@1354 -
2005-10-11 06:46:56 +00:00
tom_at_work
bfb2c916dc * fixed problem with too large offsets in conditional jumps (see also rev 1161 for the PowerPC code)
* updated sysnr.inc for PowerPC64 from 2.6.11 kernel sources
* fixed SigactionRec sa_flags field sizes, which improves signal handling for PowerPC64 platform

git-svn-id: trunk@1352 -
2005-10-10 23:45:57 +00:00
Jonas Maebe
42e49ccd90 + srwi followed by slwi optimized
+ srwi followed by certain rlwinm's optimized

git-svn-id: trunk@1351 -
2005-10-10 20:43:23 +00:00
peter
c1b002c842 * fix writing of typed const ansistring, the terminating zero was missing
git-svn-id: trunk@1349 -
2005-10-10 12:06:09 +00:00
tom_at_work
9e7d550455 * fixed last commit (1337) which broke some files in the repository
git-svn-id: trunk@1338 -
2005-10-08 17:23:44 +00:00
tom_at_work
f7f0f9c426 * makefile adaption to be able to cycle compiler and RTL on PowerPC64 target
* some fixes for PowerPC64 target in the code generator and the RTL
* stabs generation for PowerPC64 is okay now (untested)

git-svn-id: trunk@1337 -
2005-10-08 15:48:39 +00:00
Jonas Maebe
8b82f90b27 * fixed overflows in counters used for operands in case opcode without
operands

git-svn-id: trunk@1323 -
2005-10-08 12:02:39 +00:00
Jonas Maebe
cd93450fd6 * fixed a few bugs in yesterday's optimization
git-svn-id: trunk@1322 -
2005-10-08 11:37:18 +00:00
florian
f916ea20b3 * patch from yury to warn about wrong warning of unsupported apptype
git-svn-id: trunk@1321 -
2005-10-08 08:17:35 +00:00
Jonas Maebe
ab3bc45fa4 * cpu-specific overrides of optimizer methods now get called
+ first simple rlwinm optimization for ppc

git-svn-id: trunk@1320 -
2005-10-07 21:44:00 +00:00
florian
1066eb1cb3 * on cpus requiring proper alignment, shortstrings are to two byte boundaries aligned
git-svn-id: trunk@1319 -
2005-10-07 19:17:09 +00:00
Jonas Maebe
8471e10137 * fixed tw4266
git-svn-id: trunk@1317 -
2005-10-07 16:48:51 +00:00
yury
80fbc143ab * removed MULS->MULD substitution for wince, because MULS was added to system unit.
git-svn-id: trunk@1313 -
2005-10-07 13:58:37 +00:00
peter
affb69dd7f * fixed const and reg parameter passing with alignment of 2 (go32v2/os2)
git-svn-id: trunk@1307 -
2005-10-06 07:29:41 +00:00
tom_at_work
b2e1cf2610 * powerpc64 port now (manually) cycles, most test programs in tests/test are fine too
* fixed bug in ncal.pas which in some circumstances treated the hidden length parameter for open arrays as 32 bit integer

git-svn-id: trunk@1303 -
2005-10-05 21:55:25 +00:00
Jonas Maebe
c3a5f88a7b * fixed webtbs/tw4388: properly process regalloc info coming right after
a tai_marker of type asmblockend, and fixed removal of too many
    tai_regallocs in some cases (daopt386.pas)
  * some preventive fixes to make sure the optimizer doesn't start optimizing
    inside inline assembler blocks (csopt386.pas)

git-svn-id: trunk@1284 -
2005-10-04 13:30:13 +00:00
peter
2a6623a97f * stringconst+pchar returns a string
git-svn-id: trunk@1283 -
2005-10-04 11:45:26 +00:00
peter
24a2153187 * make sure the stabs for procvardef.rettype is written
git-svn-id: trunk@1282 -
2005-10-04 11:41:02 +00:00
peter
a415d5511e * obsolete unit
git-svn-id: trunk@1281 -
2005-10-04 06:28:20 +00:00
tom_at_work
28381b1287 * new assembler symbol type AT_LABEL needed for PowerPc64 target
+ added automatic definition of FPC_REQUIRES_PROPER_ALIGNMENT define for PowerPC64 target

git-svn-id: trunk@1278 -
2005-10-03 22:13:45 +00:00
florian
c1f1424640 * pchar +/- <array of char> is allowed as well
git-svn-id: trunk@1277 -
2005-10-03 21:15:18 +00:00
florian
7ac4a7c78d * first ie of tb0468 fixed
git-svn-id: trunk@1275 -
2005-10-03 20:41:25 +00:00
florian
77cc54351c * procedures containing nested procedures accessing their data can't be inlined, fixes ie in tcalfun8.pp
git-svn-id: trunk@1274 -
2005-10-03 20:25:28 +00:00
florian
ab88e4b882 * if no dyn. linker is found on linux, assume glibc21
git-svn-id: trunk@1269 -
2005-10-03 17:10:39 +00:00
florian
19e97e4da2 + use sse for sqrt if possible
* same optimization for sqrt as for sqr

git-svn-id: trunk@1266 -
2005-10-03 12:47:05 +00:00
florian
6371333361 + sqr uses sse on x86 if possible
* the result type of sqr is equal to the argument in case of usual floats

git-svn-id: trunk@1265 -
2005-10-03 12:31:31 +00:00
florian
d9c071da6d * fixed double comparison on wince
git-svn-id: trunk@1262 -
2005-10-03 07:43:36 +00:00
Tomas Hajny
022e3ceef8 * check added to avoid potential SIGSEGV
git-svn-id: trunk@1261 -
2005-10-02 22:18:45 +00:00
peter
89297d2c39 * move all stabs ($ifdef gdb) code to dbgstabs
git-svn-id: trunk@1255 -
2005-10-02 11:17:05 +00:00
peter
edf553a223 * string constants are now array of char until
they are converted to a specific string type

git-svn-id: trunk@1254 -
2005-10-02 11:08:58 +00:00
peter
cba3aad3ba * fix getdatalabel labeltype
git-svn-id: trunk@1251 -
2005-10-02 09:29:28 +00:00
peter
e5ca17b598 * fix compilation for r1224
git-svn-id: trunk@1235 -
2005-09-30 05:59:34 +00:00
florian
158c6f72b7 * names of cdecl'ed exports on linux fixed
git-svn-id: trunk@1233 -
2005-09-29 21:40:19 +00:00
Jonas Maebe
65dd7465ae * some string -> TCmdStr fixes
git-svn-id: trunk@1225 -
2005-09-29 11:32:22 +00:00
Jonas Maebe
f3384bab09 + some initial darwin/x86 stuff:
* align stack to 16 bytes
    * extended takes 16 bytes
    * <= 8 byte records are passed in registers

git-svn-id: trunk@1224 -
2005-09-29 11:31:26 +00:00
peter
1470fff825 * disable section smartlinking
git-svn-id: trunk@1222 -
2005-09-29 06:24:15 +00:00
michael
dcd346f0bb + Portugese Translation by Ari Ricardo Ody
git-svn-id: trunk@1217 -
2005-09-28 16:53:19 +00:00
tom_at_work
3681639a6a - more PowerPC64 fixes; "Hello World" style programs can be compiled and run
git-svn-id: trunk@1209 -
2005-09-27 18:16:49 +00:00
peter
ec4d287fd8 * aktoutputformat removed, add new paraXX vars for target
assembler and debuginfo and use these vars to override
    the defaults for the target after the parameters are read
  * remove not-maintained and tested gdb code

git-svn-id: trunk@1201 -
2005-09-25 21:17:37 +00:00
florian
43cf42b3b6 * binary writer must take care of resource sections as well
git-svn-id: trunk@1200 -
2005-09-25 21:16:09 +00:00
florian
b1568fed2a * don't strip aname for resources
git-svn-id: trunk@1199 -
2005-09-25 21:03:55 +00:00
peter
a720145fd1 * remove obsolete pass2inline code
git-svn-id: trunk@1198 -
2005-09-25 20:02:17 +00:00
peter
2f0fdd1847 * cleaner fix for tb0496 (r1185)
git-svn-id: trunk@1196 -
2005-09-25 19:23:37 +00:00
tom_at_work
0f10de3d1a - Powerpc compiler cycles again; during adding PowerPC64 code, the trefaddr enumeration for PPC was mixed up
git-svn-id: trunk@1195 -
2005-09-25 19:16:57 +00:00
florian
5efee639fa * fixed result registers for reals when using softfloat mode
git-svn-id: trunk@1194 -
2005-09-25 17:44:24 +00:00
peter
6bf3269b41 * powerpc64 port from Thomas Schatzl
git-svn-id: trunk@1193 -
2005-09-25 17:19:44 +00:00
michael
2057b480a9 + Fixed resource section names
git-svn-id: trunk@1185 -
2005-09-25 13:12:42 +00:00
florian
be99f2a7fd * fixed loading of addresses of virtual methods to methodpointers in delphi mode
git-svn-id: trunk@1182 -
2005-09-25 10:58:17 +00:00
florian
6bc461dc61 * realmodulename must be used of course
git-svn-id: trunk@1181 -
2005-09-25 09:14:22 +00:00
florian
fa90e913df * don't lowercase resource file name in delphi mode
git-svn-id: trunk@1180 -
2005-09-25 08:48:13 +00:00
florian
faa5630fab * forgot to add file: should have been added with r1176
git-svn-id: trunk@1179 -
2005-09-24 17:44:45 +00:00
florian
c67502ac2c * real consts are now stored in text segment so they can be easier accessed
git-svn-id: trunk@1176 -
2005-09-24 16:11:49 +00:00
florian
10db94c8c1 * there is no muls, muld must be generated
git-svn-id: trunk@1175 -
2005-09-24 14:58:28 +00:00
florian
5a2b5a50a4 * data order for doubles in int registers on wince fixed
git-svn-id: trunk@1171 -
2005-09-24 09:28:55 +00:00
peter
cde3b119ef * enable section smartlinking by default for i386-linux
git-svn-id: trunk@1166 -
2005-09-23 13:46:31 +00:00
peter
0edbc24e91 * add FSectsIndex that stores the sections in order, the old FSects is renamed to FSectsDict
and will only be used for lookups

git-svn-id: trunk@1165 -
2005-09-23 13:22:25 +00:00
Jonas Maebe
8b8d3de3bf * finally fix for fixing up conditional jumps that are too long
git-svn-id: trunk@1161 -
2005-09-23 10:02:53 +00:00
florian
77db0e5185 + length(<variant>);
git-svn-id: trunk@1154 -
2005-09-22 08:51:23 +00:00
florian
3da870d699 + -Sk loads also dynlibs
git-svn-id: trunk@1150 -
2005-09-20 20:49:37 +00:00
peter
32fa578b58 * fix wrong typecast for smallset
git-svn-id: trunk@1147 -
2005-09-20 13:51:17 +00:00
peter
c7f720aa09 * remove wrong check for empty section name. An empty section name is
still required to get the start and end debuginfo always included

git-svn-id: trunk@1145 -
2005-09-20 06:33:14 +00:00
peter
82faa95118 * lineinfo fixed for binary writer
* add tai_directive to replace old tai_direct calls
    in powerpc

git-svn-id: trunk@1139 -
2005-09-19 11:47:30 +00:00
peter
1f8c074ab4 * make m68k compile
git-svn-id: trunk@1138 -
2005-09-19 11:46:23 +00:00
peter
a3ab2053c9 * support multiple asmlabel types, renamed getlabel to
getjumplabel and added type para to getlabel for specific types
  * moved lineinfo generation from assemble and aggas to dbgstabs

git-svn-id: trunk@1120 -
2005-09-18 21:16:10 +00:00
florian
1908ba2206 + -vb: writes compiler messages with full path instead of the file name only
git-svn-id: trunk@1114 -
2005-09-18 18:09:19 +00:00
florian
fa1575aeab * fixed array[..] of char <op> pchar: wrong type was determined for non op<>+ returned
git-svn-id: trunk@1107 -
2005-09-18 08:59:20 +00:00