Legolas
d2dabe9a33
* updated nds/gba linker scripts and reverted some changes for 2.2.4a release
...
- Removed unused/outdated stuff from libndsfpc
+ Added new examples for libndsfpc
+ Added working (I hope so...) makefile.fpc for all libndsfpc/libgbafpc examples
git-svn-id: trunk@13217 -
2009-05-31 12:15:24 +00:00
Jonas Maebe
7e908cb1e3
* forbid "nil +/- ordinal" expressions (Delphi-compatible, and the
...
expression is meaningless since nil is not a valid address)
git-svn-id: trunk@13205 -
2009-05-27 17:50:55 +00:00
Jonas Maebe
15b0711ca0
* various optimizations by Dave Richards (mantis #12440 )
...
git-svn-id: trunk@13204 -
2009-05-27 17:26:50 +00:00
Jonas Maebe
dc00a747f4
* make references PIC-safe before pushing them as parameter (mantis #13829 )
...
git-svn-id: trunk@13198 -
2009-05-26 16:22:41 +00:00
Jonas Maebe
966ebbf157
* fixed missing reference counting in case a refcounted type was implicitly
...
type casted to a non-refcounted type, e.g. dynarray to pointer in Delphi
mode (mantis #13820 )
git-svn-id: trunk@13195 -
2009-05-25 19:41:14 +00:00
Jonas Maebe
17a7903e60
* fixed evaluating "nil +/- int_const" expressions (mantis #13815 )
...
git-svn-id: trunk@13194 -
2009-05-25 18:34:04 +00:00
Jonas Maebe
bbfd8812c9
* small fixes from Karl-Michael Schindler (mantis #13048 )
...
git-svn-id: trunk@13165 -
2009-05-17 14:50:44 +00:00
Jonas Maebe
84cdb246fa
* copyright in comments updated (from mantis #13048 )
...
git-svn-id: trunk@13164 -
2009-05-17 14:42:17 +00:00
Jonas Maebe
b59d1f724b
* support {$i *.ext} to include source files with the same base name, but
...
with a different extension than the current source file (mantis #13696 )
git-svn-id: trunk@13163 -
2009-05-17 14:33:20 +00:00
yury
9a0808d0fb
* Set default image base for win64 dlls to $110000000.
...
git-svn-id: trunk@13160 -
2009-05-17 12:47:26 +00:00
yury
bf00b3e94b
* Replaced some ifdef x86_64 by ifdef cpu64bitaddr, since it is more correct.
...
git-svn-id: trunk@13159 -
2009-05-17 12:43:58 +00:00
Jonas Maebe
4106ce540f
* fixed compilation with -Cr after r13147
...
* changed type of minstacksize, maxstacksize and imagebase from aword
(= size of integer registers of the target platform) into puint
(= size of address space of target platform)
git-svn-id: trunk@13155 -
2009-05-17 10:07:54 +00:00
Jonas Maebe
3a8b29be91
+ test conversion from class to differently sized enum and to differently
...
sized integer (succeed for Delphi, fail for objfpc)
* fixed compiler so it only allows typecasting a class/interface to a
differently sized integer in Delphi mode
git-svn-id: trunk@13152 -
2009-05-16 11:07:09 +00:00
Jonas Maebe
47c28c2db3
* pass -no_dead_strip_inits_and_terms to the linker, since we use these for
...
dynamic library initialization (this automatically enables dead code
stripping/smart linking in all cases though, independent of -XX/CX;
on the other hand, there is no real reason not to use it anymore on
Mac OS X, since support was introduced in Xcode 1.5 for
Mac OS X 10.3.9 and that's also the earliest version we support
for running FPC on)
git-svn-id: trunk@13151 -
2009-05-16 10:42:23 +00:00
Jonas Maebe
d3cec25dce
* small indentation fix
...
git-svn-id: trunk@13150 -
2009-05-16 10:31:35 +00:00
yury
78b2618db6
* Fixed setting of image base using {$IMAGEBASE X} directive.
...
* Cleanup of relative code.
git-svn-id: trunk@13147 -
2009-05-15 23:12:02 +00:00
yury
ede93974bc
* Fixed writing of external debug info when reloc section should be created.
...
git-svn-id: trunk@13146 -
2009-05-15 22:30:52 +00:00
yury
187a145358
* Fixed build for ARM targets.
...
git-svn-id: trunk@13142 -
2009-05-14 08:47:18 +00:00
yury
c6253d5bd7
* Added missing override directive in trgcpu.add_constraints method for x86_64 CPU. It was missing for years and I am not sure that this code is really needed. Please review.
...
git-svn-id: trunk@13141 -
2009-05-13 11:37:09 +00:00
yury
41d50e4723
* Fixed dead code warning.
...
git-svn-id: trunk@13140 -
2009-05-13 11:27:48 +00:00
yury
f726e1691b
* Fixed warnings and notes.
...
git-svn-id: trunk@13139 -
2009-05-13 11:26:01 +00:00
yury
e23a304254
* Set default images base to $100000000 for win64 executables as done by MS linkers. It helps to detect portability errors early.
...
git-svn-id: trunk@13138 -
2009-05-13 10:56:33 +00:00
yury
82ad6b4de9
* Define FPC_HAS_RIP_RELATIVE to indicate that x86_64 internal assembler supports RIP relative symbol addressing.
...
git-svn-id: trunk@13136 -
2009-05-13 10:44:01 +00:00
yury
92ad06f1e8
* Always use RIP relative symbol addressing for x86_64 Windows targets. Bug #13657 .
...
* Support for simple form of RIP relative addressing by x86_64 assembler writer. Example: movl rax,SomeSymbol(%rip)
git-svn-id: trunk@13135 -
2009-05-13 10:07:44 +00:00
Jonas Maebe
927dfc526a
* search include files specified using relative path also in the include
...
search paths (mantis #13461 )
git-svn-id: trunk@13125 -
2009-05-10 13:42:41 +00:00
Jonas Maebe
74042f791d
* completed making debugstart/end labels local for darwin as started
...
in r13111
git-svn-id: trunk@13112 -
2009-05-07 18:12:30 +00:00
Jonas Maebe
9a8ac8cecc
* make the dwarf debugstart/end labels local for Darwin, because the darwin
...
linker does not like two global labels both pointing at the end of a
section (causes "atom sorting error" warnings), and this happened for
units without any code after r13098
git-svn-id: trunk@13111 -
2009-05-07 16:42:46 +00:00
yury
c4439e4e39
* Properly write 64-bit relocations into .reloc section.
...
* Warning when 64-bit object file contains 32-bit absolute relocations. In such case an executable image can be loaded into lower 4Gb of address space only.
git-svn-id: trunk@13110 -
2009-05-07 10:46:56 +00:00
Jonas Maebe
c1e327c8c4
* insert register allocation/deallocation information for the exception
...
handling code (g_exception_reason_load() now automatically allocates
the cpu register that it loads). This fixes the bug reported in
http://lists.freepascal.org/lists/fpc-devel/2009-May/016773.html
on i386 with -O2)
git-svn-id: trunk@13105 -
2009-05-06 19:11:54 +00:00
yury
5cd83b26d9
* More proper check for executable image size limits.
...
* Proper handling of 64-bit COFF relocations.
* Use jumps with 32-bit relative addressing in imports on win64.
* This fixes are related to bug #13657 . The bug is not fully fixed yet...
git-svn-id: trunk@13104 -
2009-05-06 18:07:07 +00:00
yury
16e19aaef3
* Some cleanup.
...
git-svn-id: trunk@13099 -
2009-05-04 18:45:08 +00:00
yury
9c9462cd5a
* Insert DW_AT_low_pc and DW_AT_high_pc attributes for modules on Windows also. It solves debugging problems on Windows with dwarf debug info.
...
git-svn-id: trunk@13098 -
2009-05-04 18:36:08 +00:00
yury
9acecc0863
* Do not switch to external assembler if dwarf debug info is used.
...
git-svn-id: trunk@13097 -
2009-05-04 11:20:49 +00:00
yury
b1427bad2e
* Fixed internal assembler writer to handle offset calculations with forward symbols involved. Internal assembler can handle dwarf debug info now.
...
git-svn-id: trunk@13096 -
2009-05-04 11:19:48 +00:00
yury
99917e034d
* Fixed visibility notes of some overrode methods.
...
git-svn-id: trunk@13095 -
2009-05-04 10:24:47 +00:00
yury
2b3a54cec0
* Allow usage of internal linker when dwarf debug info is used.
...
git-svn-id: trunk@13094 -
2009-05-04 10:19:54 +00:00
yury
9d78ca3f19
* RELOC_SECREL32 must be relative to EXE section, not to object file section.
...
* Write zero to relocs in debug sections, which point to unused sections, eliminated by linker.
* It seems internal linker creates correct dwarf debug info now.
git-svn-id: trunk@13093 -
2009-05-04 09:42:51 +00:00
yury
50060dfd52
* Do not assume sizeof(pint) section alignment if no alignment is specified for the section.
...
git-svn-id: trunk@13092 -
2009-05-04 08:27:36 +00:00
marco
6f1f21c432
* optbase empty skeleton removed with two dependancies. Duplicate unit name caused problems.
...
git-svn-id: trunk@13091 -
2009-05-03 21:31:33 +00:00
yury
070fa422b5
* Partially reverted r12648. PE flags should be set in main PE header (and it is done already). LoaderFlags in optional header are obsolete.
...
git-svn-id: trunk@13088 -
2009-05-03 14:43:46 +00:00
Jonas Maebe
9344484ea7
* allocregbetween has to update the "initialregs" parameter, because it
...
can remove regallocs for the allocated register and reinstert them
before already processed instructions, thereby preventing the
peephole optimizer from ever seeing the allocation for this register
(mantis #13612 )
git-svn-id: trunk@13085 -
2009-05-02 22:26:24 +00:00
Jonas Maebe
5a09f58526
* only allow implicit type conversions from dynamic arrays to voidpointer
...
in Delphi mode, rather than to any pointer type (confused overload
selection in mantis #13639 )
git-svn-id: trunk@13079 -
2009-05-02 12:50:14 +00:00
Jonas Maebe
dd55947b4b
- disabled jump tables for x86_64, because they cause various kinds of
...
crashes with dynamic libraries (mantis #13628 and related bugs)
git-svn-id: trunk@13073 -
2009-05-01 14:54:38 +00:00
Jonas Maebe
7885f6c892
* give a generic "type mismatch" error if copy() is called with less than
...
3 parameters and none of the valid cases apply (mantis #13625 )
git-svn-id: trunk@13070 -
2009-05-01 11:40:02 +00:00
Jonas Maebe
844e0d04ba
* to determine the alignment of arrays of orddef, enumdef and floatdef,
...
use the alignment of these elements rather than their size (fixes
alignment of arrays of int64/qword/double on darwin/i386 and darwin/arm)
git-svn-id: trunk@13068 -
2009-05-01 11:15:31 +00:00
Jonas Maebe
2635212ebc
* fixed warnings and removed unused "Current_moduleIndex" global variable
...
(patch by Alexander S. Klenin, mantis #13618 )
git-svn-id: trunk@13063 -
2009-04-30 15:32:28 +00:00
Jonas Maebe
79c70c52a7
* store/restore taddnode.resultrealdef to/from the ppufiles, and also
...
copy/compare it when copying/comparing taddnodes (necessary for inlined
procedures, mantis #13596 )
git-svn-id: trunk@13054 -
2009-04-27 21:03:11 +00:00
Jonas Maebe
5b08047d1c
* allow exlicit type conversions from class/interface to enums in Delphi
...
mode (mantis #11859 )
* cleaned up some superfluous "eq=te_incompatible" checks (probably from
copy/pasting conditions from elsewhere)
git-svn-id: trunk@13050 -
2009-04-26 20:41:24 +00:00
Jonas Maebe
58f4f7829c
* don't replace the vmt entries of unused published virtual methods with
...
references to FPC_ABSTRACTERROR when using -Owoptvmts, since these can
also be called via rtti
git-svn-id: trunk@13045 -
2009-04-26 09:42:33 +00:00
florian
80c0f33c0e
* patch by Sergei Gorelkin: fixes compilation with -dEXTDEBUG
...
git-svn-id: trunk@13043 -
2009-04-25 20:02:08 +00:00