sergei
cded05ccef
+ MIPS linker: support linking PIC object files with non-PIC ones, by routing absolute calls into PIC code through stubs that load R25.
...
git-svn-id: trunk@24098 -
2013-03-31 19:58:52 +00:00
florian
9375529430
+ put guids in a constant pool as well
...
git-svn-id: trunk@24061 -
2013-03-29 18:48:55 +00:00
sergei
e4949e3044
+ ELF linker: finish support for imported symbol versions.
...
git-svn-id: trunk@24056 -
2013-03-29 15:17:48 +00:00
sergei
29c0266fb9
+ Added values for DT_FLAGS and DT_FLAGS_1 dynamic tags.
...
git-svn-id: trunk@24053 -
2013-03-29 14:46:44 +00:00
sergei
c5bf2ecb65
+ MIPS linker: added ELF header flags, TLS relocations and an utility procedure to handle endianness.
...
git-svn-id: trunk@24052 -
2013-03-29 14:11:27 +00:00
Jonas Maebe
9973a5737f
* don't give an error when calling a class method on an object typecasted
...
into a class reference (problem introduced by r23976)
git-svn-id: trunk@24039 -
2013-03-28 18:45:09 +00:00
Jonas Maebe
4daa40f480
* reorder register parameters to minimise the number of register conflicts,
...
which usually (but not always) results in better register allocation
git-svn-id: trunk@24038 -
2013-03-28 18:44:57 +00:00
sergei
1d32b107f5
* Made address comparison 64-bit safe.
...
* Referencing a section is basically referencing its AT_SECTION symbol, fixed reporting in map file.
git-svn-id: trunk@24029 -
2013-03-28 10:44:09 +00:00
Jonas Maebe
4992fd1c88
* prevent previously freed temp blocks from getting lost occasionally (can
...
significantly reduce the stack frame size, more than 3 times in one place
in the compiler)
git-svn-id: trunk@24025 -
2013-03-27 17:16:34 +00:00
Jonas Maebe
477eeadaca
* made alloctemp more generic
...
git-svn-id: trunk@24023 -
2013-03-27 17:16:26 +00:00
Jonas Maebe
262593c571
* "can not" -> "cannot"
...
git-svn-id: trunk@24012 -
2013-03-26 18:35:38 +00:00
pierre
702effaad0
Force use of PIC compatible calling for register variable calls as procvars might be internal or external and thus require PIC
...
git-svn-id: trunk@24005 -
2013-03-25 21:53:31 +00:00
florian
b231c049c9
* arm thumb knows only positively growing stacks
...
git-svn-id: trunk@24000 -
2013-03-25 17:56:13 +00:00
florian
93fcd9152e
* arm thumb supports only tst reg1,reg2
...
git-svn-id: trunk@23997 -
2013-03-25 17:53:54 +00:00
florian
64bc09ae58
* fixes several issues with arm thumb stack frame
...
git-svn-id: trunk@23988 -
2013-03-24 21:40:23 +00:00
florian
b434b7bc7d
* armv6-m has no blx <immediate>
...
git-svn-id: trunk@23983 -
2013-03-24 20:24:15 +00:00
florian
ac4a6accd3
+ SVC instruction
...
git-svn-id: trunk@23980 -
2013-03-24 20:22:06 +00:00
florian
07762e5c25
+ proper assembler command line parameters for arm thumb
...
git-svn-id: trunk@23979 -
2013-03-24 20:21:22 +00:00
florian
89b4939cec
* correctly handle stackframes with size>508 for arm thumb
...
git-svn-id: trunk@23977 -
2013-03-24 18:51:23 +00:00
Jonas Maebe
1601f6bea8
* treat methods called via records the same as records called via objects
...
without virtual methods: they may initialise the instance (mantis #23667 )
git-svn-id: trunk@23976 -
2013-03-24 16:27:02 +00:00
florian
79d5d83f6c
* fixed lazy english
...
git-svn-id: trunk@23975 -
2013-03-23 19:29:30 +00:00
sergei
6f1997f5e5
+ MIPS: added profiling support
...
git-svn-id: trunk@23950 -
2013-03-21 13:40:50 +00:00
Jonas Maebe
e621bff943
* don't make a deep copy of records (and in the future, objects) in with-
...
statements on the JVM target (mantis #24089 )
git-svn-id: trunk@23945 -
2013-03-20 16:23:25 +00:00
svenbarth
376bd046aa
Don't allow "static" for class operators or normal methods (except in objects).
...
pdecsub.pas, pd_static:
* check whether the given pd is an operator or a class method not inside an Object and generate an error if either of these is true
msg/errore.msg, msgidx.inc, msgtxt.inc:
* add a message to inform that a certain procedure directive is not allowed
+ added tests
git-svn-id: trunk@23944 -
2013-03-20 10:46:55 +00:00
Jonas Maebe
0ad9f345dd
* handle explicit typecasts of procdefs to procvardefs always via
...
proc_to_procdef, because a methodpointer may have to be discarded
git-svn-id: trunk@23929 -
2013-03-19 13:23:51 +00:00
Jonas Maebe
5152c86932
* set the location size of load nodes of procsyms without methodpointer/
...
framepointer
* fixed conversion of procedure of object/nested procedure into a procvar
that only contains the code address
git-svn-id: trunk@23928 -
2013-03-19 12:27:57 +00:00
Jonas Maebe
8b7071c8e8
* fixed recording generics token line info on big endian systems
...
git-svn-id: trunk@23926 -
2013-03-18 13:29:15 +00:00
florian
c345ed8945
* generate branches for arm-thumb which are always sufficient big, the optimizer can fix this later on
...
git-svn-id: trunk@23904 -
2013-03-17 20:26:06 +00:00
florian
d4613fe961
* update init_settings.setalloc in SetCompileMode if changeinit is set
...
git-svn-id: trunk@23898 -
2013-03-17 16:42:34 +00:00
florian
5a6e879248
* patch by Aleksa Todorovic: store relative include paths in PPUs, resolves #9961
...
git-svn-id: trunk@23897 -
2013-03-17 16:22:00 +00:00
florian
fdde11fcc8
- -CPPAKCSET=NORMAL and CPPAKCSET=DEFAULT should set setalloc to 0 as $PACKSET=... with the same parameters does
...
git-svn-id: trunk@23893 -
2013-03-17 15:10:33 +00:00
florian
7511968f2b
+ warn if one of the linux libc startup code files is not found
...
git-svn-id: trunk@23892 -
2013-03-17 14:51:19 +00:00
florian
20a534e63f
* fixed code which causes range check errors when compiled with -Cr
...
git-svn-id: trunk@23889 -
2013-03-17 14:24:50 +00:00
Jonas Maebe
e1e11f81e3
* fixed using readstr/writestr inside routines called from the parameter
...
list of another readstr/writestr expression (mantis #23912 )
git-svn-id: trunk@23888 -
2013-03-17 14:23:33 +00:00
florian
784641ec46
* delay parsing of the closing SEMICOLON of a uses clause till the
...
unit map is updated to avoid symbols not being found, resolves #8611
git-svn-id: trunk@23886 -
2013-03-17 11:06:04 +00:00
sergei
1c652eb8f9
MIPS procinfo improvements:
...
- Removed TMIPSProcInfo.needs_frame_pointer, it duplicates pi_needs_stackframe flag.
- Don't save RA for leaf procedures.
* GP is caller-saved register, it does not need saving/restoring as nonvolatile registers. Handle its restore position as a "normal" temp, whose offset is known before secondpass. This allows to handle PIC calls without involving GAS macro processing.
git-svn-id: trunk@23885 -
2013-03-17 08:43:39 +00:00
florian
d5985b4f0e
* patch by Christophe Staïesse to implement more ISO-like read behaviour in iso mode, resolves #24060
...
git-svn-id: trunk@23884 -
2013-03-17 08:27:21 +00:00
florian
380bc56e32
+ create a default heap on embedded targets and register this default heap
...
* sysutils for the embedded target depends on a working heap manager
git-svn-id: trunk@23853 -
2013-03-16 10:37:18 +00:00
masta
d60049a1fd
Removing duplicated hash functions in compiler/cclasses.pas
...
FPHash was duplicated 4 times for different input types. I've
consolidated it to a single function with 3 proxy-functions which can be
inlined.
I've also modified the hash function itself slightly, it now resembled
the original DJB hash and seems to perform a tiny bit better.
git-svn-id: trunk@23850 -
2013-03-16 00:50:45 +00:00
pierre
8e2fcd6bfe
Enable use of dllprt0 for netbsd
...
git-svn-id: trunk@23848 -
2013-03-15 16:21:22 +00:00
pierre
18ece9cf75
Also use VERSION in scripts for openbsd and netbsd
...
git-svn-id: trunk@23844 -
2013-03-15 15:39:32 +00:00
pierre
1ad6aacb78
* Also use dllprt0 for openbsd
...
git-svn-id: trunk@23829 -
2013-03-14 13:51:16 +00:00
sergei
6245bfd74f
+ ELF linker: load e_ident and e_flags from ELF header into properties of TElfObjData, necessary for targets that must be able to link together object files of different flavors.
...
git-svn-id: trunk@23821 -
2013-03-14 08:34:17 +00:00
paul
e379daaf9c
compiler, rtl: move cpXXXX.pas files from compiler to RTL\charmaps directory and cleanup them, enable charmaps building for the majority of targets
...
git-svn-id: trunk@23799 -
2013-03-12 01:35:25 +00:00
paul
3682fddc49
compiler: minor optimization of tscannerfile.recordtoken
...
git-svn-id: trunk@23798 -
2013-03-12 01:32:07 +00:00
florian
2c7b34cda1
* don't apply cse on static variables being regable
...
git-svn-id: trunk@23785 -
2013-03-10 20:29:52 +00:00
florian
c2baf7b4c0
Merge r23058
...
git-svn-id: trunk@23776 -
2013-03-10 16:37:57 +00:00
florian
c0d4f189e9
* and takes three operands
...
git-svn-id: trunk@23775 -
2013-03-10 16:16:50 +00:00
florian
be81b89147
* fix bugs in previous commit
...
git-svn-id: trunk@23774 -
2013-03-10 14:33:10 +00:00
florian
086ae4b999
Merge r22905 and r22906
...
git-svn-id: trunk@23773 -
2013-03-10 10:45:34 +00:00