Jonas Maebe
abc79bc4cf
* override tcgraisenode.pass_1 so that the JVM raise support will keep
...
working after r24288 is merged to trunk
git-svn-id: trunk@24301 -
2013-04-22 14:47:06 +00:00
Jonas Maebe
c4b62f86a1
* renamed ppudump directory introduced by r24298 to ppuutils to fix
...
compilation on unix platforms (the ppudump binary name conflicted with
with the directory name)
git-svn-id: trunk@24300 -
2013-04-22 14:37:37 +00:00
yury
85c2d144c5
* ppudump: Started implementation of JSON output. Output of unit header info has been implemented.
...
git-svn-id: trunk@24299 -
2013-04-22 14:08:53 +00:00
yury
6327854259
* Move ppudump.pp to a sub-folder as preparation for adding JSON output units.
...
git-svn-id: trunk@24298 -
2013-04-22 11:19:25 +00:00
yury
187153a557
* ppudump: commented unused local vars.
...
git-svn-id: trunk@24297 -
2013-04-22 10:45:33 +00:00
yury
eca2b52a03
* ppudump: Implemented wrappers for write and writeln in order to be able to turn off default output when JSON output is selected.
...
git-svn-id: trunk@24296 -
2013-04-22 10:35:11 +00:00
florian
f3ef5a1f9c
+ jvm lazarus project file
...
git-svn-id: trunk@24271 -
2013-04-19 16:50:55 +00:00
sergei
d54d38b4ab
* Moved all code responsible for writing VMTs and interface wrappers (nobj.TVMTWriter, ncgutil.gen_intf_wrappers, ptype.write_persistent_type_info) into a new unit ncgvmt.pas.
...
This improves compiling speed a bit (two iterations over symtables replaced by one, code generator is created once per unit rather than once per class).
In perspective it makes possible to reduce amount of generated smartlink sections and global labels.
git-svn-id: trunk@24269 -
2013-04-19 13:31:27 +00:00
sergei
9dc5b07a68
* COFF: fixed setting section flags. Content type and access bits must be set for non-loadable sections as well.
...
* Changed .reloc sections to be non-loadable, all Windows DLLs have it that way (and ld produces the same as well).
git-svn-id: trunk@24262 -
2013-04-17 19:51:38 +00:00
florian
e1233e0111
* asizeint => longint, it is unlikely that an variant record well ever have more than 2^31 branches
...
git-svn-id: trunk@24260 -
2013-04-16 16:49:42 +00:00
Jonas Maebe
9023148bb1
* fixed compilation of JVM rtls after r24188 (there is no JMP_BUF type
...
on that platform)
git-svn-id: trunk@24259 -
2013-04-16 10:08:58 +00:00
florian
99f2e57e42
* better error reporting
...
git-svn-id: trunk@24242 -
2013-04-14 15:51:25 +00:00
florian
2fdd3e2d0a
+ introduce tvariantrecbranch to be able to store
...
all needed information for iso compatible variant records
* new for variant records as required by iso pascal
+ tests
git-svn-id: trunk@24241 -
2013-04-14 15:50:42 +00:00
sergei
02a288fd89
* MIPS addnode: rewritten almost completely:
...
* shorter by 280 lines
* generates actual instructions instead of macros
* uses immediate operands for constants when possible
* 64-bit and float comparisons use LOC_JUMP as location
git-svn-id: trunk@24236 -
2013-04-14 12:12:36 +00:00
sergei
b86372ccec
+ Internal linker: process unreferenced .pdata sections on x86_64-win64, restores the possibility to use GAS on win64 (which got broken by introducing SEH).
...
git-svn-id: trunk@24235 -
2013-04-13 18:52:50 +00:00
pierre
8a6e057fca
Merge forgotten go32v2 2.6.0 branch changes back into trunk.
...
* Change it also in TInternalLinkerGo32v2.DefaultLinkScript method.
------------------------------------------------------------------------
r20578 | pierre | 2012-03-22 17:34:35 +0100 (Thu, 22 Mar 2012) | 1 line
Force _environ to be the same as __environ
------------------------------------------------------------------------
git-svn-id: trunk@24229 -
2013-04-12 10:25:13 +00:00
sergei
c3f8086598
+ Internal linker: base support for sections that aren't referenced but must be linked if section referenced by them is linked (like win64 .pdata). Actual handling is still to be implemented in descendant classes.
...
git-svn-id: trunk@24224 -
2013-04-11 17:42:09 +00:00
florian
7ac7d8a4b6
+ define UNICODE as well as FPC_UNICODESTRINGS
...
git-svn-id: trunk@24214 -
2013-04-09 13:05:29 +00:00
svenbarth
8353d53b69
Fix for Mantis #22433 .
...
pdecsub.pas, parse_parameter_dec:
* allow inline specialization for array types in mode Delphi
+ added test
git-svn-id: trunk@24207 -
2013-04-08 14:51:42 +00:00
florian
ec69ed5b3c
* spelling fixed
...
git-svn-id: trunk@24205 -
2013-04-08 11:50:09 +00:00
florian
f80b6f4774
* arm thumb: take care of large offsets in interface wrappers
...
git-svn-id: trunk@24203 -
2013-04-07 21:56:37 +00:00
florian
dee35abf41
* arm thumb: let all registers used in a ldr/str operation interfere with the "hi" registers
...
git-svn-id: trunk@24202 -
2013-04-07 21:39:30 +00:00
florian
36a32e153d
+ arm thumb: tarmloadparentfpnode moves the stack pointer to a different register to avoid illegal instruction encodings
...
git-svn-id: trunk@24201 -
2013-04-07 21:29:12 +00:00
florian
e41b7b1b94
* arm thumb: strh/ldrh does not allow stack pointer based references with offset
...
git-svn-id: trunk@24200 -
2013-04-07 21:27:59 +00:00
florian
877c6e9ce9
* formatting
...
git-svn-id: trunk@24199 -
2013-04-07 21:26:56 +00:00
florian
b41728c129
* estimatedtempsize should be a longint to avoid warnings on 8 bit targets
...
git-svn-id: trunk@24198 -
2013-04-07 21:01:18 +00:00
florian
7ba197a221
* fix stack parameter handling for arm thumb
...
* fix entry/exit code generation for arm thumb
git-svn-id: trunk@24197 -
2013-04-07 21:01:15 +00:00
florian
f9ef8e90da
+ a_op_const_reg_reg for arm thumb taking care of availability of add sp,sp, ...
...
* handle references with base and index on arm thumb correctly
git-svn-id: trunk@24196 -
2013-04-07 21:01:11 +00:00
florian
9bbc24b5e3
* r13 might be used only under certain circumstance in memory reference on arm thumb
...
git-svn-id: trunk@24195 -
2013-04-07 21:01:08 +00:00
florian
79334242a2
* arm thumb uses always the stack pointer as frame pointer
...
git-svn-id: trunk@24194 -
2013-04-07 21:01:05 +00:00
florian
52070e26e1
* arm thumb uses always the stack pointer as frame pointer
...
git-svn-id: trunk@24192 -
2013-04-07 21:00:58 +00:00
florian
f25a905904
* fix register allocation initalization for arm thumb
...
* avoid that the register allocator creates code which writes to frame/stack pointer
git-svn-id: trunk@24190 -
2013-04-07 21:00:50 +00:00
florian
4e4cc4e289
* support neg instruction for spilling
...
git-svn-id: trunk@24189 -
2013-04-07 21:00:47 +00:00
florian
075abd6220
+ support of stackframesize for arm thumb
...
+ estimatedtempsize to get a good estimatation for architectures which require to know the stack size before
git-svn-id: trunk@24188 -
2013-04-07 21:00:38 +00:00
svenbarth
70886d1727
Fix the exception reported in Mantis #24072 . This does not mean though that the bug is fixed, because the bug itself is related to the topic "partial specialization".
...
symtable.pas, sym_is_owned_by:
* instead of checking in which symtables to not look, specify in which tables to look (namely object- and recordsymtables)
git-svn-id: trunk@24180 -
2013-04-07 13:44:56 +00:00
Jonas Maebe
8b8a786823
* moved ARM/x86 ifdef'ed code from ncgcal to virtual methods
...
git-svn-id: trunk@24179 -
2013-04-07 13:42:06 +00:00
Jonas Maebe
3a03586ca9
* give an error when declaring a class as conforming to a forward-declared
...
interface: the compiler does not/cannot check whether the class
implements all required methods in that case, and it moreover leads to
crashes (mantis #24184 ). Older versions of Delphi did allow this (and
don't check whether the interface methods are implemented either), but
that's simply a (similar) bug in Delphi that has been fixed in XE at
least
* fixed compilation of webtbs/tw2727 after this fix
git-svn-id: trunk@24177 -
2013-04-07 12:18:31 +00:00
florian
b817b6f62a
* enable section smartlinking on all linux targets
...
git-svn-id: trunk@24146 -
2013-04-04 09:43:00 +00:00
sergei
999c3a0a02
* COFF linker: postpone import section generation until unreferenced sections (and imports) are removed, and put all remaining imports into a single section. This is much more efficient than generating multiple smart-linkable import sections and immediately discarding a good half of them.
...
git-svn-id: trunk@24123 -
2013-04-02 05:46:32 +00:00
florian
43b6139b66
+ setlocalloc resets currentregloc
...
git-svn-id: trunk@24118 -
2013-04-01 19:52:46 +00:00
florian
364f170765
* cosmetic formatting changes
...
git-svn-id: trunk@24117 -
2013-04-01 19:52:43 +00:00
florian
7155808570
+ ttempcreatenode.printnodedata writes tempinitcode node
...
git-svn-id: trunk@24116 -
2013-04-01 19:52:39 +00:00
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