Commit Graph

9304 Commits

Author SHA1 Message Date
Legolas
086b4cf7ee * libc and libgcc linking enabled
git-svn-id: trunk@5542 -
2006-12-05 18:24:56 +00:00
Jonas Maebe
b957d59391 * don't override varregable for tabstractvarsyms loaded from a ppu when
setting their vardef (since the varregable was stored/loaded in the ppu
    and should be kept the same -- fixes webtbs/tw7817a.pp and tw7817b.pp
    when both compiled separately and with regvars)

git-svn-id: trunk@5540 -
2006-12-04 14:16:43 +00:00
Jonas Maebe
d7633e9dd0 * removed wrong comment from r5389 (no longer applicable since r5390)
git-svn-id: trunk@5539 -
2006-12-04 14:13:45 +00:00
Jonas Maebe
7c387c9f82 - removed double initialisation of local typed constants/initialised
variables (initialization code of inlined routines is stored/loaded
    from ppu as wel)

git-svn-id: trunk@5538 -
2006-12-04 14:10:10 +00:00
yury
c427fcf902 * fixed register to register conversion for ARM.
git-svn-id: trunk@5537 -
2006-12-03 22:01:33 +00:00
florian
4c2b412613 * x86_64-win64 returns structured types up to 8 bytes in rax
git-svn-id: trunk@5528 -
2006-12-02 15:36:32 +00:00
micha
d9c91a9663 fix TFPList.QuickSort duplicate in compiler cclasses (rtl is also broken)
git-svn-id: trunk@5525 -
2006-12-02 08:03:21 +00:00
Jonas Maebe
7588b4378c * fixed warnings about "uninitialized" initialized local variables
based on test for web bug #7285 (which was already fixed)

git-svn-id: trunk@5523 -
2006-12-01 20:47:28 +00:00
Jonas Maebe
9e60d6791d * show name of procedure/function called with too few parameters
git-svn-id: trunk@5522 -
2006-12-01 20:15:57 +00:00
Jonas Maebe
c963543c74 * fixed typo in comments
git-svn-id: trunk@5521 -
2006-12-01 19:40:31 +00:00
Jonas Maebe
85404fbe79 + support multiple gcc dirs depending on the target architecture for
Darwin (ppc, ppc64, i386, x86_64)

git-svn-id: trunk@5518 -
2006-12-01 18:54:06 +00:00
Jonas Maebe
05a07a7dd2 * better fix for previous revision
* also applied to x86 and m68k

git-svn-id: trunk@5512 -
2006-11-30 20:55:32 +00:00
Jonas Maebe
3c26e1c40b * fix subsetref/subsetreg support for int_to_real
git-svn-id: trunk@5511 -
2006-11-30 20:29:28 +00:00
peter
8e4e504cd8 * range error
git-svn-id: trunk@5509 -
2006-11-28 07:07:15 +00:00
florian
836dbad1b2 * bitpacked stuff fixed for x86-64
git-svn-id: trunk@5503 -
2006-11-26 21:57:34 +00:00
tom_at_work
3b6d5c3676 - cleanup, fixing of uninitialized variables, missing return values and unused variables
git-svn-id: trunk@5502 -
2006-11-26 21:54:23 +00:00
tom_at_work
7ab5fc7980 - cleanup, fixed range check error in cgcpu
git-svn-id: trunk@5501 -
2006-11-26 21:35:57 +00:00
Tomas Hajny
eb46534f92 * update by Ido Kanner - 3 messages were excluded from docs, fixed
git-svn-id: trunk@5498 -
2006-11-26 18:56:43 +00:00
Tomas Hajny
8966d54b4b * updates by Ido Kanner - errore.msg rev. 5473
git-svn-id: trunk@5497 -
2006-11-26 18:55:55 +00:00
Károly Balogh
119cdbb772 - fixed bra #.label assembler errors hopefully
git-svn-id: trunk@5492 -
2006-11-26 16:19:54 +00:00
yury
319d92fe9a * Release register of by value parameter after making its local copy. It fixes bug when local stack location is referenced using big (>4k) PC relative offset by ARM CPU. In this case temp register is needed and wrong temp register is allocated.
git-svn-id: trunk@5488 -
2006-11-26 14:42:17 +00:00
yury
2fd4be4637 * Additionally check procedure's para_stack_size before doing stackframe optimization. It handles the case when a parameter is passed partially in registers and partially in the stack.
git-svn-id: trunk@5486 -
2006-11-26 13:22:11 +00:00
yury
96bfb7ce97 * don't destroy both r11 and r13 when copying data.
git-svn-id: trunk@5485 -
2006-11-26 13:18:27 +00:00
yury
d4335749ec * reverted r5481. That order of instructions can be executed more effectively on newer ARM CPUs.
git-svn-id: trunk@5484 -
2006-11-26 11:42:29 +00:00
florian
01a20b25a2 * don't reuse registers
git-svn-id: trunk@5483 -
2006-11-26 11:11:14 +00:00
yury
35b1014207 * more usual order of instructions.
git-svn-id: trunk@5481 -
2006-11-26 10:06:12 +00:00
florian
d47dc38f2c * ignore PIC directive on windows and warn about it
git-svn-id: trunk@5479 -
2006-11-25 22:58:52 +00:00
florian
f8072062bc * update german error files by Karl-Michael Schindler
git-svn-id: trunk@5478 -
2006-11-25 21:49:13 +00:00
florian
6118c3e477 * fixed assembling of movd with 64 bit registers
* fixed passing of floats to c varargs

git-svn-id: trunk@5477 -
2006-11-25 20:32:32 +00:00
florian
b77a5016ca * don't destroy r13 when copying data
git-svn-id: trunk@5470 -
2006-11-24 21:55:23 +00:00
yury
a4407d5ad2 * fixed insertpcrelativedata when case jump table is used.
git-svn-id: trunk@5468 -
2006-11-24 13:40:49 +00:00
yury
e94277d5dc * removed unneeded label.
* asm output beautification. 

git-svn-id: trunk@5467 -
2006-11-24 13:20:32 +00:00
florian
964a98edca * fixed spilling with large offsets
git-svn-id: trunk@5463 -
2006-11-23 19:49:27 +00:00
Jonas Maebe
1c8dc092b2 * create fpc_write* length/frac parameters as s32inttype to match the
declaration in the system unit for 64 OS'es

git-svn-id: trunk@5462 -
2006-11-23 16:40:20 +00:00
Jonas Maebe
f4cb8c1bef * fixed case for ppc64 with 64 bit values
git-svn-id: trunk@5461 -
2006-11-23 16:18:31 +00:00
yury
70b5d41d5c * optimized case jump table generation for ARM.
git-svn-id: trunk@5458 -
2006-11-23 00:55:16 +00:00
yury
187c71ac18 * fixed and enabled case jump table generation for ARM.
git-svn-id: trunk@5446 -
2006-11-22 12:16:33 +00:00
yury
61f0f0b793 * define FPC_DOUBLE_HILO_SWAPPED for ARM CPU if needed to properly handle doubles in RTL.
git-svn-id: trunk@5439 -
2006-11-21 21:24:01 +00:00
yury
5ceef96cf3 * fixed double parameters passing and storing result for ARM in softfloat mode (by removing old hacks).
git-svn-id: trunk@5438 -
2006-11-21 21:20:24 +00:00
yury
257a76d6c8 * finally fixed case code generation for ARM.
git-svn-id: trunk@5437 -
2006-11-21 21:16:25 +00:00
florian
ab919747a6 * several m68k fixes
* push_value_para partially cleaned up

git-svn-id: trunk@5435 -
2006-11-20 22:13:49 +00:00
Jonas Maebe
c0d46e65ee * (finally) fixed tests/test/trangeob.pp
git-svn-id: trunk@5434 -
2006-11-20 22:03:08 +00:00
micha
09c8d571a6 * fix shared library linking for linux (issue #7849, patch from Dominique Leducq)
git-svn-id: trunk@5433 -
2006-11-20 19:24:20 +00:00
Jonas Maebe
c54e49d428 * fixed range check errors
git-svn-id: trunk@5432 -
2006-11-20 13:15:30 +00:00
florian
2b7fb31a9e * return float values in fpu registers only in non emulation mode
git-svn-id: trunk@5429 -
2006-11-19 22:25:23 +00:00
florian
28c5578976 * don't generate vmt for a generic
git-svn-id: trunk@5428 -
2006-11-19 22:07:28 +00:00
florian
0d38bda5c4 * small m68k-linux fixes
git-svn-id: trunk@5427 -
2006-11-19 21:51:20 +00:00
Jonas Maebe
a15e5dc61c * always call tobject.create/free in MacPas mode for new/dispose constructs
(since macpas methods may accidentally be called like that as well,
     as it doesn't have any constructors/destructors)
  + some tests for MacPas objects from the GNU Pascal testsuite

git-svn-id: trunk@5421 -
2006-11-18 13:36:38 +00:00
florian
81726e85d7 * properties can be also passed to formal const parameters
git-svn-id: trunk@5419 -
2006-11-18 09:09:21 +00:00
Marc Weustink
6b48dc8143 * fixed lineinfo reference
git-svn-id: trunk@5418 -
2006-11-18 02:05:54 +00:00
Marc Weustink
1a5c19fdcf * reverted to defines for 64bit targets
* added 64bit header support

git-svn-id: trunk@5417 -
2006-11-18 00:50:46 +00:00
florian
fbc197f27a * fixed writing of double constants on WinCE
git-svn-id: trunk@5416 -
2006-11-17 22:17:54 +00:00
Jonas Maebe
4dc98db426 * don't put classes/interfaces which need to be finalized in regvars
because the code generated by finalize_data_node() can't deal with that
    (and it's called from gen_finalize_code() *after* the local symtable
     of the current procedure has been allocated, and therefore the
     make_not_regable() call of the generated addrnode doesn't do anything)

git-svn-id: trunk@5414 -
2006-11-17 12:06:20 +00:00
Marc Weustink
cfbedf5a10 * added a temp fix for dwarf64 debug generation
git-svn-id: trunk@5412 -
2006-11-16 23:56:08 +00:00
florian
ac5b260ec2 * registers of references aren't reused so we can safe a mov
git-svn-id: trunk@5411 -
2006-11-16 22:26:03 +00:00
tom_at_work
9905e6d7ff * never generate 64 bit offsets/sizes in DWARF debug info for now
git-svn-id: trunk@5410 -
2006-11-16 22:12:30 +00:00
Jonas Maebe
e04e668640 * give internalerror if trying to take the address of something else
than a LOC_REFERENCE or LOC_CREFERENCE

git-svn-id: trunk@5408 -
2006-11-16 20:23:55 +00:00
Jonas Maebe
108c6f4d73 * unified nppcset for ppc32/ppc64 since virtually identical
* fixed case bug for ppc64 regarding qwords (must be handled via
    genlinearcmplist)

git-svn-id: trunk@5406 -
2006-11-16 18:56:28 +00:00
Jonas Maebe
f60b6faf17 * nppcinl is currently the same for ppc32 and ppc64
git-svn-id: trunk@5405 -
2006-11-16 18:27:10 +00:00
Jonas Maebe
7b0d6364a7 * moved ppc32/ppc64 second_int_to_bool to common file
git-svn-id: trunk@5404 -
2006-11-16 18:04:58 +00:00
yury
135c0ecfb7 * fixed passing float constants as part of "array of const" parameter for ARM.
git-svn-id: trunk@5403 -
2006-11-16 17:01:17 +00:00
yury
347af4dbe4 * fixed case code for ARM.
git-svn-id: trunk@5402 -
2006-11-16 13:07:32 +00:00
florian
3f0dfdcba4 * OP_SUB must set always the flags in case of case
git-svn-id: trunk@5400 -
2006-11-16 10:21:43 +00:00
florian
3f77637b56 * set is_jmp flag correctly
git-svn-id: trunk@5399 -
2006-11-16 09:43:58 +00:00
Károly Balogh
eb01d935d3 - typo fix
git-svn-id: trunk@5397 -
2006-11-15 23:10:49 +00:00
florian
6ad8307653 + better case code generation for arm
git-svn-id: trunk@5395 -
2006-11-15 22:44:13 +00:00
florian
1e1f711663 * instructions being already conditional can't be marked as conditional again
git-svn-id: trunk@5394 -
2006-11-15 22:42:22 +00:00
florian
84f0b62f93 * cond. instruction optimization enabled
git-svn-id: trunk@5393 -
2006-11-15 21:59:29 +00:00
florian
8998a04bf6 * initial copy from i386
git-svn-id: trunk@5391 -
2006-11-15 20:33:43 +00:00
Jonas Maebe
5444207df8 * better fix for tw1623 (generates more optimal code)
git-svn-id: trunk@5390 -
2006-11-15 14:15:00 +00:00
Jonas Maebe
248046320a * fixed inlining of functions called in their own parameters (tw1623)
git-svn-id: trunk@5389 -
2006-11-15 09:56:11 +00:00
florian
4010d66c2c * arm cond. instruction support
git-svn-id: trunk@5387 -
2006-11-14 22:37:22 +00:00
florian
876a3651d1 * varsets disabled completely for now
git-svn-id: trunk@5384 -
2006-11-14 21:43:29 +00:00
Jonas Maebe
41c23b8904 - disabled varsets for big endian targets for now since it breaks sets
git-svn-id: trunk@5382 -
2006-11-14 20:47:11 +00:00
Jonas Maebe
76cd84f2a1 * fixed cs_externally_visible (macpas {$z+})
git-svn-id: trunk@5381 -
2006-11-14 20:38:54 +00:00
Jonas Maebe
7528e074a5 * fixed compilation for non-ARM
git-svn-id: trunk@5380 -
2006-11-14 20:24:03 +00:00
florian
5f4cf8654c * activate FPC_HAS_VALGRINDBOOL
git-svn-id: trunk@5379 -
2006-11-14 19:40:56 +00:00
florian
47010f2e5f * properly optimize jumps on ARM
git-svn-id: trunk@5378 -
2006-11-14 19:40:32 +00:00
yury
f258b907fb * Set procalign alignment for sections of import jumps table.
git-svn-id: trunk@5376 -
2006-11-14 17:05:46 +00:00
yury
87d5058dec * fix arm-wince exception handling.
git-svn-id: trunk@5375 -
2006-11-14 16:49:02 +00:00
yury
8abe2d365e * Implemented stackframe optimization for ARM CPU.
git-svn-id: trunk@5374 -
2006-11-14 16:18:49 +00:00
yury
d8d25c2489 * fixed memory leaks in compiler.
git-svn-id: trunk@5369 -
2006-11-14 09:32:58 +00:00
yury
ba53db3b5d * ARM PC relative references optimization.
git-svn-id: trunk@5368 -
2006-11-14 09:31:17 +00:00
Jonas Maebe
4ba88ce33e * fix searching of (g)ar for the arfinishcmd
git-svn-id: trunk@5367 -
2006-11-13 22:39:00 +00:00
peter
f21f055373 * change hashobjectlist.Delete() calls to :=nil now that the .Delete() behaviour
is changed

git-svn-id: trunk@5365 -
2006-11-13 22:04:21 +00:00
Jonas Maebe
25e9a60553 * expand the paths in the PATH when searching for executables
(e.g. ~/bin)

git-svn-id: trunk@5364 -
2006-11-13 22:03:49 +00:00
peter
9ae8e9fa21 * refactor tclassheader in tvmtbuilder and tvmtwriter
* fix rtti generation
  * rtti is now written at the end of a module when all info is available,
    this prevents some duplicate rtti entries cause by inheritance

git-svn-id: trunk@5363 -
2006-11-13 22:03:17 +00:00
peter
129ab85aad * tfphashlist.delete needs to rehash after updating all indexes
git-svn-id: trunk@5362 -
2006-11-13 21:17:59 +00:00
peter
881c210908 * unitinialized sorg
git-svn-id: trunk@5360 -
2006-11-13 20:40:00 +00:00
peter
45621c892e * set vs_initialised for typed consts
* delete old symbol when absolute is used

git-svn-id: trunk@5351 -
2006-11-13 07:42:48 +00:00
florian
b76211b426 * more improvements
git-svn-id: trunk@5348 -
2006-11-12 22:32:26 +00:00
florian
e29892329a * improved pp.lpi
git-svn-id: trunk@5347 -
2006-11-12 22:24:15 +00:00
Jonas Maebe
4454f6da0f * enable pipe-assembling again for solaris
git-svn-id: trunk@5346 -
2006-11-12 21:43:58 +00:00
florian
cab0f71d13 * comment fixed
git-svn-id: trunk@5343 -
2006-11-12 19:07:41 +00:00
florian
90787bb436 * disable sse/mmx fastmode code in case of valgrind usage
git-svn-id: trunk@5342 -
2006-11-12 16:54:44 +00:00
florian
d80bfc692d * don't open error file twice but close it first if necessary
git-svn-id: trunk@5340 -
2006-11-12 16:00:01 +00:00
florian
2162f63def * properly clean up current_procinfo
git-svn-id: trunk@5339 -
2006-11-12 15:39:01 +00:00
florian
f9235938b4 * storing/restoring of settings when doing a specialization
git-svn-id: trunk@5336 -
2006-11-11 21:37:09 +00:00
florian
80876932aa + parsing of type casts with nested types
git-svn-id: trunk@5335 -
2006-11-11 20:45:02 +00:00
florian
534048e286 * fixed parameter name change message
git-svn-id: trunk@5334 -
2006-11-11 18:06:11 +00:00