Jonas Maebe
2fa51a485f
* bootstrapping for systems where currency is not a float
...
git-svn-id: trunk@5865 -
2007-01-09 16:24:45 +00:00
peter
1b4775d46c
* more tex fixes
...
git-svn-id: trunk@5851 -
2007-01-08 17:00:38 +00:00
peter
b5252ef8ba
* fix description end
...
git-svn-id: trunk@5850 -
2007-01-08 16:35:44 +00:00
Jonas Maebe
4003047c42
* recommanded -> recommended
...
git-svn-id: trunk@5846 -
2007-01-08 13:38:35 +00:00
florian
fa493c7898
* move exception mask initialization to procedure compile
...
* reset exception mask at compiler exit
* use math routines for exception masking
git-svn-id: trunk@5841 -
2007-01-07 12:24:39 +00:00
florian
2ccba3604c
* fixed generation of constants containing a vmt
...
* better error message if such a construct is used in fpc where it isn't allowed
git-svn-id: trunk@5838 -
2007-01-07 10:39:06 +00:00
florian
c238bb15d1
* .init section support
...
git-svn-id: trunk@5835 -
2007-01-07 10:03:52 +00:00
florian
4aa5f6401e
* don't write stabs with rva entries on linux
...
git-svn-id: trunk@5834 -
2007-01-07 00:04:05 +00:00
florian
d4b4cb3096
* linux libraries must be build with -Bsymbolic to avoid symbol shadowing
...
git-svn-id: trunk@5833 -
2007-01-06 23:40:22 +00:00
florian
ff40ed3264
* Makefiles regenerated
...
git-svn-id: trunk@5831 -
2007-01-06 21:08:19 +00:00
florian
db3f8575ae
* fixed library creating on x86_64-linux
...
git-svn-id: trunk@5828 -
2007-01-06 20:27:59 +00:00
florian
881fb4d392
* working linker script for x86_64 libraries
...
git-svn-id: trunk@5827 -
2007-01-06 18:39:09 +00:00
florian
481b3c5175
* amd64 linker script
...
git-svn-id: trunk@5825 -
2007-01-06 17:36:10 +00:00
florian
c759b114bf
* allow second operand being am imm in intel assembler, fixed #7719
...
git-svn-id: trunk@5823 -
2007-01-05 23:15:25 +00:00
Jonas Maebe
d0b6292137
* disable overflow checking when performing pointer arithmetic
...
(mantis 8049)
git-svn-id: trunk@5822 -
2007-01-05 21:52:31 +00:00
Jonas Maebe
85289e80ce
* fixed overflow in case of op_const64_reg_reg_reg(sub,low(int64),...)
...
git-svn-id: trunk@5821 -
2007-01-05 21:27:27 +00:00
Jonas Maebe
efd1e86418
* give a verbose fatal error instead of an internalerror when a required
...
system unit type is not found
git-svn-id: trunk@5820 -
2007-01-05 19:43:28 +00:00
Jonas Maebe
1d96dcc50d
* renamed nf_swaped to nf_swapped
...
git-svn-id: trunk@5818 -
2007-01-05 12:47:22 +00:00
Jonas Maebe
a4a54a105d
* fixed sse float substraction in case of swapped operands
...
git-svn-id: trunk@5817 -
2007-01-05 12:37:14 +00:00
Jonas Maebe
003a23c748
* fixed loc_mmregister bug in r4611
...
git-svn-id: trunk@5816 -
2007-01-05 12:25:05 +00:00
peter
56379c37a9
* write vmt always according to the order of definitions
...
* remove obsolete lastvtableindex
git-svn-id: trunk@5811 -
2007-01-04 22:39:12 +00:00
Jonas Maebe
2ddeca21e6
* don't give warning about constructing instance with abstract methods
...
for self.create calls + tests
git-svn-id: trunk@5810 -
2007-01-04 13:02:23 +00:00
florian
d1b6522866
* fixed pushing of parameters on m68k
...
git-svn-id: trunk@5800 -
2007-01-03 21:46:49 +00:00
florian
a2ec2e72b6
* better hint about abstract methods (fixes 5098)
...
+ code generation for invoking dispinterface methods
* small dispinterface problems fixed
git-svn-id: trunk@5798 -
2007-01-03 19:14:31 +00:00
florian
80d4887e67
* fixed warnings for length/high/low(<normal array>; <ord>; <enum>)
...
git-svn-id: trunk@5795 -
2007-01-03 09:51:24 +00:00
pierre
8bd9d88641
* remove C like code to be able to compile unit
...
git-svn-id: trunk@5794 -
2007-01-02 23:30:23 +00:00
Károly Balogh
abcf865224
+ more a_param_* implemented
...
git-svn-id: trunk@5792 -
2007-01-02 22:11:52 +00:00
Jonas Maebe
1ad6417f7f
* fixed some unneeded 64 bit conversions + rarely triggered bug on x86
...
regarding packed records/arrays
git-svn-id: trunk@5790 -
2007-01-02 18:47:14 +00:00
Jonas Maebe
d85573da18
* dummy assignment to tai_cpu_abstract.Pass1 result to avoid warning
...
git-svn-id: trunk@5789 -
2007-01-02 18:33:57 +00:00
Jonas Maebe
e2193b1540
* fixed mixing of longint/dword to avoid 64 bit conversion
...
git-svn-id: trunk@5788 -
2007-01-02 18:32:59 +00:00
Jonas Maebe
a23fa2e81e
* moved (unfinished) routines related to writing taicpu's to ppu files
...
from x86/aasmcpu to aasmtai and (new) aasmsym, so that when they're
finished they're available for all targets
* added dummy implementation of tai_cpu_abstract.pass1 and pass2 so there
are no more hundreds of warnings on non-x86 about constructing taicpu
instances with abstract methods
git-svn-id: trunk@5787 -
2007-01-02 18:28:05 +00:00
Jonas Maebe
912e1e13eb
* getrange parameters from "var" to "out"
...
git-svn-id: trunk@5786 -
2007-01-02 18:16:56 +00:00
florian
98d6014c73
* register saving on win64 fixed
...
git-svn-id: trunk@5785 -
2007-01-02 14:34:03 +00:00
Jonas Maebe
e4e6f8112d
* fixed some warnings about hidden constructors
...
git-svn-id: trunk@5784 -
2007-01-02 14:18:12 +00:00
Károly Balogh
e5249a8b56
+ some messy m68k changes (first attempt to implement a_param_*)
...
git-svn-id: trunk@5782 -
2007-01-02 00:11:52 +00:00
florian
a95c2220cc
* fixed volatile registers for x86_64-win64
...
git-svn-id: trunk@5781 -
2007-01-01 23:26:21 +00:00
florian
2049837dd9
* dispinterfaces are publishable as well
...
git-svn-id: trunk@5773 -
2007-01-01 18:30:53 +00:00
florian
d5291d0e18
+ handle variant dispatching
...
git-svn-id: trunk@5771 -
2006-12-31 17:50:29 +00:00
florian
11aa2b483e
* kicked ignore_equal, usage was wrong anyways
...
git-svn-id: trunk@5763 -
2006-12-31 00:48:52 +00:00
florian
475664acf5
* fixed local check, fixes #7242
...
git-svn-id: trunk@5760 -
2006-12-30 23:47:21 +00:00
florian
c4d96ec538
* only non generic types can be used when specializing generics, fixes 7735
...
git-svn-id: trunk@5754 -
2006-12-30 21:51:24 +00:00
peter
6562e40a3e
* ignore program module when resolving unit names during ppu load
...
git-svn-id: trunk@5749 -
2006-12-30 17:18:28 +00:00
Jonas Maebe
b86e2aa33a
* fixed crash when compiling certain invalid "in" constructions
...
(mantis 8031)
git-svn-id: trunk@5748 -
2006-12-29 23:13:02 +00:00
yury
f8cfa49971
* enabled af_smartlink_sections for i386-wince.
...
git-svn-id: trunk@5743 -
2006-12-29 21:06:05 +00:00
yury
1044e84ea3
* fixed i386-wince flags.
...
* enabled internal linker for i386-wince.
git-svn-id: trunk@5742 -
2006-12-29 20:50:43 +00:00
pierre
fc66d46beb
+ added several warnings about use of references
...
involving (%ebp) or (%esp) in assembler code.
Useful to track code that might suffer from regcall
convention.
git-svn-id: trunk@5736 -
2006-12-29 09:37:15 +00:00
Jonas Maebe
5988e6d117
* niln has a compelxity of 0 (so the inlining code doesn't try to take
...
its address) (mantis 8028)
git-svn-id: trunk@5735 -
2006-12-29 01:11:41 +00:00
Jonas Maebe
03c7e345cd
* committed wrong version in previous revision
...
git-svn-id: trunk@5733 -
2006-12-28 17:02:24 +00:00
Jonas Maebe
47ff7b62e7
* fixed overload choosing algorithm so it's Delphi-compatible +
...
tests (and test generator) (also fixes mantis 6641)
git-svn-id: trunk@5732 -
2006-12-28 16:54:07 +00:00
Jonas Maebe
e6fbeee5a8
* updated for new compiler switches (mantis 7063)
...
git-svn-id: trunk@5725 -
2006-12-27 15:09:13 +00:00
Jonas Maebe
4ae9ac969a
* implicitly call procvars in tp/delphi modes for divmodn, shlshrn
...
and notn (mantis 7200)
git-svn-id: trunk@5724 -
2006-12-27 14:29:23 +00:00
tom_at_work
92538bcb2a
Fixed lineinfo compilation with -gl
...
git-svn-id: trunk@5723 -
2006-12-26 19:27:45 +00:00
Jonas Maebe
66a07eba3e
* give an error if the same method declaration is added twice to an
...
interface/class/object (mantis 8019)
git-svn-id: trunk@5721 -
2006-12-26 18:12:56 +00:00
Jonas Maebe
f6473ac074
* give more information about array types in error messages
...
(dynamic, open, const open array) (mantis 8021)
git-svn-id: trunk@5720 -
2006-12-26 17:19:00 +00:00
Jonas Maebe
f56d53c0e1
* disable generation of smartlinkable code for Darwin for now since
...
the result doesn't work yet due to a bug in Apple's linker
git-svn-id: trunk@5719 -
2006-12-26 17:07:28 +00:00
Károly Balogh
121a5c3cb8
+ workaround for old Amiga GNU AS, which vomits for .fpc sections
...
git-svn-id: trunk@5714 -
2006-12-26 08:43:27 +00:00
Károly Balogh
b0bc5d92fd
+ fixed suspected typo
...
git-svn-id: trunk@5710 -
2006-12-25 15:26:55 +00:00
Jonas Maebe
f308bfb45c
* fixed mantis 6686 ("function a;" without prior definition of "a"
...
accepted in Delphi mode + extra test case where something similar
has to succeed)
git-svn-id: trunk@5698 -
2006-12-24 10:48:49 +00:00
pierre
e0d9b9e307
* fix previous patch for -g alone,
...
now debug type is set to target_info.dbg
git-svn-id: trunk@5695 -
2006-12-24 01:27:26 +00:00
Jonas Maebe
9d28af4269
* removed po_function and instead check proctypeoption (more
...
comprehensive too)
git-svn-id: trunk@5693 -
2006-12-23 21:04:30 +00:00
Jonas Maebe
a63ed25f74
* fixed support for repeating constructor without parameters in Delphi
...
mode + test
git-svn-id: trunk@5692 -
2006-12-23 20:53:47 +00:00
Jonas Maebe
d3ded54ae0
* temporarily turn off self and vmt checking after calling
...
AfterConstruction, since self may no longer be valid afterwards
(the instance may already have freed itself, e.g. in case of a
TThread with FreeOnTerminate=true)
git-svn-id: trunk@5689 -
2006-12-23 14:03:43 +00:00
Jonas Maebe
e5a1d628eb
* fixed one regression in r5682: implementation declarations with a
...
calling convention that has different hidden parameters than the
interface declaration no longer compiled in Delphi mode (e.g.
webtbs/tw7329.pp on i386)
* fixed remaining declaration parsing incompatibilities in TP/Delphi
modes (other modes already gave errors for the things below):
* give an error for "function a: byte;" in interface followed by
"procedure a;" in implementation ("function a;" in implementation
still allowed as in TP/Delphi)
* give an error for "function a(b: byte):byte" in interface
followed by "function a: byte;" in implementation (if one parameter
or return type is specified in implementation, everything must
be repeated -- "function a;" still allowed)
* copied webtbs/tw0890.pp to webtbf/tw0890a.pp since it now correctly
fails, and modified webtbs/tw0890.pp so it doesn't fail with the
new code
git-svn-id: trunk@5688 -
2006-12-23 11:17:21 +00:00
Jonas Maebe
2b9bdf2155
* fixed mantis 6631, 7322 and 7989: check parameters and return
...
types of interface methods implemented in a class
git-svn-id: trunk@5686 -
2006-12-22 19:50:52 +00:00
Jonas Maebe
f3f8a76559
* fixed mantis 7173 (properly check parameters in unit
...
implementation in Delphi/TP mode if they are repeated)
git-svn-id: trunk@5682 -
2006-12-22 17:48:28 +00:00
pierre
a9da7ec275
* use stabs as default debug format if none is
...
explicitly selected.
git-svn-id: trunk@5679 -
2006-12-22 16:36:07 +00:00
Jonas Maebe
24ba57fe91
* fixed error message for attempts to initialise typed const
...
classes/interfaces (mantis 8006)
git-svn-id: trunk@5676 -
2006-12-22 14:12:26 +00:00
yury
8765e488ac
* fixed compilation of tbs/tb0460.pp for targets where currency is stored as ordinal.
...
git-svn-id: trunk@5672 -
2006-12-22 00:48:17 +00:00
yury
11daaa31f2
* fixed Internal error 200408203 in tbs/tb0258.pp for ARM.
...
git-svn-id: trunk@5669 -
2006-12-21 22:02:29 +00:00
yury
2a274aa510
* fixed tbs/tb0350.pp.
...
* removed unused local variables.
git-svn-id: trunk@5667 -
2006-12-21 21:18:38 +00:00
Jonas Maebe
e4a2fb7f35
* fixed mantis 7975 and 7107 (ie 200311075 when working using somewhat
...
complex method calls in inlined procedures)
git-svn-id: trunk@5666 -
2006-12-21 21:03:47 +00:00
yury
4092321ae9
* Compiler directives {$...} are allowed in ARM inline assembler. It fixes tb0142.pp and tb0193.pp.
...
git-svn-id: trunk@5664 -
2006-12-21 20:48:18 +00:00
yury
496e19c9c2
* fixed ARM register allocation problem when additional register is used for spilling.
...
git-svn-id: trunk@5659 -
2006-12-21 14:18:03 +00:00
daniel
1b173fd0f3
+ Enable resourcestring in all modes
...
* Pre-initialize resourcestrings
git-svn-id: trunk@5637 -
2006-12-18 21:25:47 +00:00
Legolas
5f81d9e656
* arm9 binaries are automatically patched
...
git-svn-id: trunk@5634 -
2006-12-18 18:43:51 +00:00
tom_at_work
949aa60805
* DWARF debug lineinfo reader
...
git-svn-id: trunk@5632 -
2006-12-17 23:11:25 +00:00
florian
fd2032dab2
+ start of embedded rtl
...
+ feature support in the compiler
git-svn-id: trunk@5628 -
2006-12-17 18:40:36 +00:00
Jonas Maebe
991c7da136
* support inc(pointer) in TP mode with range/overflow checking on as well
...
git-svn-id: trunk@5605 -
2006-12-15 13:02:00 +00:00
Jonas Maebe
87e7e435bf
* store parameters at the callee side with the required alignment
...
git-svn-id: trunk@5604 -
2006-12-15 10:37:26 +00:00
Jonas Maebe
26f81bfe08
* fixed arithmetic overflow when loading the recorddef of large
...
(> high(aint)/8 bytes) records from ppu files
git-svn-id: trunk@5595 -
2006-12-14 20:24:20 +00:00
Jonas Maebe
22a372f10b
* fixed bug where derefs with an index 65535 were not read correctly
...
from ppu files
git-svn-id: trunk@5594 -
2006-12-14 20:21:05 +00:00
Legolas
96e1c482bc
* compiler part of first Nintendo DS port
...
git-svn-id: trunk@5592 -
2006-12-14 17:32:16 +00:00
Jonas Maebe
89349c2f1a
* fixed web bug #7963 (crash when trying to print the name of a procvar
...
with too few parameters specified)
git-svn-id: trunk@5591 -
2006-12-14 15:57:17 +00:00
Károly Balogh
f4b44b8a97
+ unbroke m68k-amiga syscalls
...
git-svn-id: trunk@5586 -
2006-12-13 20:19:43 +00:00
Jonas Maebe
2f8c34a537
* findclose must always be called (also when findfirst didn't find
...
anything)
git-svn-id: trunk@5570 -
2006-12-11 15:55:21 +00:00
Jonas Maebe
32e06e7a7a
* fixed memory leaks in ppc peephole optimizer
...
git-svn-id: trunk@5569 -
2006-12-11 15:53:30 +00:00
Jonas Maebe
1f3dffbd1c
* added missing findclose in TCachedDirectory.Reload
...
git-svn-id: trunk@5568 -
2006-12-11 15:42:51 +00:00
Jonas Maebe
d4258ae636
* fixed memory leak in creation of darwin call stubs
...
git-svn-id: trunk@5567 -
2006-12-11 15:39:27 +00:00
florian
abcccc2f03
* memory leaking fixed
...
git-svn-id: trunk@5566 -
2006-12-11 12:23:52 +00:00
florian
6d2e5027b3
* preserve opsize
...
git-svn-id: trunk@5555 -
2006-12-07 20:42:59 +00:00
florian
84726ed76c
* copy unique return value to address register on m68k
...
git-svn-id: trunk@5554 -
2006-12-07 20:10:00 +00:00
Jonas Maebe
72c7d5b6c0
* support ranges in case-options of variant records
...
git-svn-id: trunk@5553 -
2006-12-07 15:19:30 +00:00
pierre
9a90410081
* ttypeconvnode.simplify, avoid a memory leak
...
git-svn-id: trunk@5551 -
2006-12-07 13:06:31 +00:00
pierre
b486f926ce
* taddnode.first_addstring, avoid memory leak if
...
left or right is an empty string.
git-svn-id: trunk@5550 -
2006-12-07 13:03:51 +00:00
pierre
f7da7486a3
* Avoid memory leak in TExportLibWin.preparelib
...
git-svn-id: trunk@5546 -
2006-12-05 22:51:04 +00:00
Károly Balogh
8c4f672954
+ avoidin .sections in the generated asm file for m68k-amiga,
...
and m68k-linux, to fix old GNU AS. hope this change doesn't
break the new one... (did i mention that GNU binutils suck?)
git-svn-id: trunk@5545 -
2006-12-05 19:20:43 +00:00
Károly Balogh
d6844efccc
+ fixed dbra errors
...
git-svn-id: trunk@5544 -
2006-12-05 19:03:20 +00:00
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
Jonas Maebe
81fd4e865e
* pass 2kb of parameters to ar at a time (instead of 200 bytes)
...
git-svn-id: trunk@5328 -
2006-11-11 10:24:46 +00:00
Jonas Maebe
31fcd93a1c
* replace can now also insert strings > 255 chars in ansistrings
...
git-svn-id: trunk@5327 -
2006-11-11 10:23:27 +00:00
Jonas Maebe
636cb3beef
* some ansistring fixes for calling ar, but not yet complete
...
(cmdlines > 255 chars are still cut off)
git-svn-id: trunk@5325 -
2006-11-10 23:52:01 +00:00
Jonas Maebe
7135772aa0
+ ansistring overload of maybequoted
...
git-svn-id: trunk@5324 -
2006-11-10 23:46:30 +00:00
Jonas Maebe
caf501d499
* shell needs an ansistring parameter to avoid cutting of
...
command lines
git-svn-id: trunk@5323 -
2006-11-10 23:45:39 +00:00
Jonas Maebe
f5d653a1fd
- disabled PACKSET for big endian systems since it breaks make cycle
...
(please first commit tests and wait till the results are known
before enabling new experimental features in the compiler itself)
git-svn-id: trunk@5322 -
2006-11-10 23:07:14 +00:00
Jonas Maebe
cdded5a3e0
* merged ppc32/ppc64 versions of aasmcpu
...
* fixed potential range error in fixup_jmps
* fixed harmless overflow error in fixup_jmps
git-svn-id: trunk@5320 -
2006-11-10 22:12:32 +00:00
Jonas Maebe
6d36b04c6a
* create common aasmcpu (currently ppc32 version, will commit
...
merged ppc32/ppc64 version right after this one)
git-svn-id: trunk@5319 -
2006-11-10 22:11:15 +00:00
Jonas Maebe
d26ee9dccf
* fixed overflow errors
...
git-svn-id: trunk@5318 -
2006-11-10 21:14:37 +00:00
Jonas Maebe
b8c3fecd1d
* fixed overflow checking for inc/dec on non-x86
...
+ test for the above
git-svn-id: trunk@5317 -
2006-11-10 21:14:11 +00:00
Jonas Maebe
5522cbd7cd
* fixed typo which caused overflow checks not to be turned off when
...
calculating magic division constants
git-svn-id: trunk@5316 -
2006-11-10 20:53:50 +00:00
florian
43ba7cfe6f
* correct name of set packing directive is PACKSET
...
git-svn-id: trunk@5313 -
2006-11-10 19:56:19 +00:00
florian
b0104f2ec8
* fixed parsing of spezialitions taking more than one argument
...
git-svn-id: trunk@5311 -
2006-11-10 18:33:08 +00:00
Jonas Maebe
a9980bf951
* fixed darwin compilation
...
git-svn-id: trunk@5310 -
2006-11-10 17:12:30 +00:00
yury
5f484a0f14
* section "fpc" was renamed to ".fpc".
...
* compiler version string is stored in .fpc.version section.
* debug start/end links are stored in .fpc.links section.
* fixed linking with eVC++ object files by internal linker.
* .fpc.links section is removed by internal linker before writing executable, because it is no longer needed.
git-svn-id: trunk@5305 -
2006-11-10 10:33:41 +00:00
florian
e619bd3235
* enabled SETALLOC=1 for the compiler
...
git-svn-id: trunk@5300 -
2006-11-09 20:46:11 +00:00
florian
667baf433d
+ new switch -CPSETALLOC=<y> to influence set sizes
...
git-svn-id: trunk@5299 -
2006-11-09 20:41:33 +00:00
peter
13f359aa80
* resultname changed to pshortstring
...
git-svn-id: trunk@5295 -
2006-11-09 07:43:13 +00:00
florian
7781e842fc
* varset support fixed
...
git-svn-id: trunk@5294 -
2006-11-08 22:48:44 +00:00
peter
e96b5f0152
* also use typename in rtti label for staticsymtable
...
git-svn-id: trunk@5291 -
2006-11-08 21:38:24 +00:00
peter
0557ddc342
* removed typed const, it is now handled by staticvarsym
...
* globalvarsym renamed to staticvarsym
* fixed invalid regvar use in init when the finalize also uses the var
git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
peter
25bef10b97
* mssing call to procvardef_rtti
...
git-svn-id: trunk@5289 -
2006-11-08 18:22:08 +00:00
peter
99662d0bff
* fixed insertlistcopy to not reverse the list
...
git-svn-id: trunk@5288 -
2006-11-08 17:06:26 +00:00
peter
60069ce3d2
* fix IE with -sr and EXTDEBUG
...
git-svn-id: trunk@5283 -
2006-11-07 22:43:34 +00:00
florian
42a3ed4ac0
* copy savesize for procvardefs as well
...
git-svn-id: trunk@5282 -
2006-11-07 22:00:33 +00:00
florian
08f72e02f4
+ copying of procedure variable defs
...
git-svn-id: trunk@5277 -
2006-11-07 19:20:12 +00:00
peter
107974330c
* use aword(1) shl x, to prevent overflow with 1 shl 31
...
git-svn-id: trunk@5276 -
2006-11-07 18:14:25 +00:00
peter
0c8796c210
* fix hiding of symbols
...
git-svn-id: trunk@5272 -
2006-11-07 08:53:15 +00:00
peter
99309202bc
* don't try to generate rtti if the type has an error
...
git-svn-id: trunk@5271 -
2006-11-07 08:52:53 +00:00
yury
11fcbcc663
* properly align common symbols.
...
git-svn-id: trunk@5264 -
2006-11-06 00:22:33 +00:00
peter
d526a682d1
* refactor loadnode for varsyms
...
git-svn-id: trunk@5261 -
2006-11-05 21:58:01 +00:00
florian
95518d7ecf
* pushparavalue shouldn't care about emulation settings
...
git-svn-id: trunk@5260 -
2006-11-05 21:55:12 +00:00
peter
f2a25e845d
* refactor gen_alloc_symtable so it depends on varsym type and not
...
on symtabletype
git-svn-id: trunk@5259 -
2006-11-05 21:53:40 +00:00
peter
f88e6a834e
* typo
...
git-svn-id: trunk@5255 -
2006-11-05 21:19:41 +00:00
florian
5cbc15b339
* some variant dispatching stuff fixed
...
git-svn-id: trunk@5254 -
2006-11-05 21:07:59 +00:00
yury
a993ddbe5c
* removed dbgstabs usage.
...
git-svn-id: trunk@5253 -
2006-11-05 20:49:15 +00:00
yury
f89a0ac4c1
* small fix for previous commit.
...
git-svn-id: trunk@5252 -
2006-11-05 19:47:24 +00:00
yury
aa9c217f6b
* unused coff symbols are removed by internal linker.
...
git-svn-id: trunk@5251 -
2006-11-05 19:39:50 +00:00
yury
5a9b0949c5
* fixed wince build.
...
git-svn-id: trunk@5250 -
2006-11-05 17:55:00 +00:00
yury
4e3c5e202a
* Internal linker sorts only .idata section and removes stabs of unused functions. It seems all debug info problems with internal linker are solved now.
...
* Properly arrange arm-wince exception sections.
git-svn-id: trunk@5249 -
2006-11-05 17:13:31 +00:00
yury
8827d8d628
* stab types was moved to interface part.
...
git-svn-id: trunk@5248 -
2006-11-05 17:06:48 +00:00
florian
a13d358f1e
* first partially working implementation of variant com invoking
...
git-svn-id: trunk@5247 -
2006-11-05 15:34:15 +00:00
peter
2900d02f0b
* add maybequoted for filenames
...
git-svn-id: trunk@5245 -
2006-11-05 13:27:29 +00:00
peter
b7cb804c50
* gettoken add support for " quotes
...
git-svn-id: trunk@5244 -
2006-11-05 13:27:12 +00:00
peter
35c21515a9
* fixed adding of .dll extension
...
git-svn-id: trunk@5243 -
2006-11-05 13:05:21 +00:00
peter
84a96d66de
* move rtti and vmt table generation into write_persistent_type_info
...
* call write_persistent_type_info also for typed consts in interface
git-svn-id: trunk@5239 -
2006-11-05 12:40:13 +00:00
florian
959a1379cf
* fixed building of smart linked units
...
git-svn-id: trunk@5227 -
2006-11-04 18:12:33 +00:00
florian
34a361e4b5
* windowism removed
...
git-svn-id: trunk@5226 -
2006-11-04 17:59:06 +00:00
florian
2d73d2462d
* properties set
...
git-svn-id: trunk@5225 -
2006-11-04 17:55:22 +00:00
Jonas Maebe
469ac311e0
* fixed r5214
...
git-svn-id: trunk@5222 -
2006-11-04 16:44:29 +00:00
peter
86f1fe11d6
* fix generics parsing for new symtable
...
git-svn-id: trunk@5220 -
2006-11-04 12:13:06 +00:00
peter
3cae449fda
* moved rtti to ncgrtti
...
git-svn-id: trunk@5219 -
2006-11-04 10:43:27 +00:00
florian
4cbb67aa00
* some fpu emulation code from arm to generic code generator moved
...
* several m68k fixes
git-svn-id: trunk@5218 -
2006-11-04 10:23:35 +00:00