svenbarth
022df814c2
* use the extern and public assembler symbol lists stored in the units to resolve those symbols to a used package that don't have a corresponding Pascal symbol
...
git-svn-id: trunk@34179 -
2016-07-22 13:42:13 +00:00
svenbarth
6cc7539208
* also export the mangled RTTI name from a package
...
git-svn-id: trunk@34178 -
2016-07-22 13:39:51 +00:00
svenbarth
971d05c898
* also import procdefs that are called through the VMT
...
git-svn-id: trunk@34177 -
2016-07-22 13:38:59 +00:00
svenbarth
f69b365b77
* declare various symbols as external assembler symbols: RTTI references, parent VMT, FPC_EMPTYMETHOD (all three only if it's used from a different unit), threadvar lists and symbols declared as "external"
...
git-svn-id: trunk@34176 -
2016-07-22 13:34:38 +00:00
svenbarth
bb72c1c4df
* declare various assembler symbols (VMT, RTTI, threadvars) as public assembler symbols
...
* declare public function alias as public assembler symbols
git-svn-id: trunk@34175 -
2016-07-22 13:11:24 +00:00
svenbarth
5bb121e91c
Add a mechanism to keep track of assembler symbols that either publicly provided by a unit or used by a unit and that are not really baked by a Pascal symbol (e.g. public function aliases, RTTI & VMT symbol).
...
This basically revives the globalasmsym entry of the PPU though it feeds to different lists, one for the public (exported) symbols and one for the external (imported) symbols. Also the list of symbols is much smaller as it would be if all symbols would be dumped in there.
git-svn-id: trunk@34174 -
2016-07-22 13:08:32 +00:00
svenbarth
f18e6cec0b
* correctly enumerate the fields of the TVMT record after the previous extension of it (GetvParent and vParent are two new symbols and TVMT does not only contain fieldvarsyms now) so that the VMT def can be correctly generated
...
git-svn-id: trunk@34173 -
2016-07-22 13:07:37 +00:00
svenbarth
685f820622
* switch class'/object's parent reference in the VMT to an indirect reference
...
(this also requires the adjustment of a test)
git-svn-id: trunk@34172 -
2016-07-22 12:53:51 +00:00
svenbarth
dc21bc842a
* also generate an indirect symbol for the VMT
...
git-svn-id: trunk@34171 -
2016-07-22 12:50:38 +00:00
Jeppe Johansen
6a1c1e4f29
Added support for NRF52832 controllers.
...
git-svn-id: trunk@34170 -
2016-07-22 10:01:10 +00:00
michael
298a3ba63d
* Patch from Mattias Gaertner to make implicitly used units configurable
...
git-svn-id: trunk@34169 -
2016-07-22 09:23:35 +00:00
pierre
e9a1ed9446
Add fpwidestring and unicodeducet units for go32v2 tests related to unicode support
...
git-svn-id: trunk@34168 -
2016-07-22 06:26:17 +00:00
pierre
7ff12e144f
Fix IgnoreCase error in CompareUnicodeString function
...
git-svn-id: trunk@34167 -
2016-07-22 05:29:35 +00:00
pierre
e05d417183
Change rules to be able to cross-compile on win32, using old GNU make 3.82
...
git-svn-id: trunk@34166 -
2016-07-21 14:20:56 +00:00
Jonas Maebe
a0efde8167
* automatically generate necessary indirect symbols when a new assembler
...
symbol is defined
o removed all places where AB_INDIRECT symbols were explicitly generated
o only generate AB_INDIRECT symbols for AT_DATA on systems_indirect_var_imports
o for some symbols an indirect symbol is always required (because they are
dereferenced by code in RTL units) -> use new AT_DATA_FORCEINDIRECT type
git-svn-id: trunk@34165 -
2016-07-20 20:53:03 +00:00
Jonas Maebe
1cb8c0d00c
* specify the def of assembler level symbols defined via
...
tasmdata.DefineAsmSymbol() and all routines that call it
o will be used to automatically generate AB_INDIRECT sybols when
necessary
git-svn-id: trunk@34164 -
2016-07-20 20:52:59 +00:00
Jonas Maebe
53ace5b489
- removed disabled exportlib override code
...
git-svn-id: trunk@34163 -
2016-07-20 20:52:55 +00:00
Jonas Maebe
8d77de6b22
- removed InsertPData leftover from ARM copy of this file
...
git-svn-id: trunk@34162 -
2016-07-20 20:52:53 +00:00
Jonas Maebe
60fe7c2888
- removed unused section_symbol_start/end() routines
...
git-svn-id: trunk@34161 -
2016-07-20 20:52:50 +00:00
Károly Balogh
9252bf4d64
fixed typo in r34157, which broke PowerPC builds
...
git-svn-id: trunk@34160 -
2016-07-20 11:08:08 +00:00
pierre
b3f1596a1d
Also output parameters of called program when calling Terminate, useful when using emulator, to know which test does not finish
...
git-svn-id: trunk@34159 -
2016-07-19 17:22:39 +00:00
Jonas Maebe
84129857c2
* converted tobjcrttiwriter_fragile.gen_objc_info_sections to the high level
...
typed constant builder
git-svn-id: trunk@34158 -
2016-07-19 14:30:51 +00:00
Jonas Maebe
6d54dd7154
+ added missing symcpu unit (although it is used by other units, and hence
...
still included)
git-svn-id: trunk@34157 -
2016-07-19 14:30:48 +00:00
Jonas Maebe
6c5de5127c
* fixed compilation with range checking enabled after r34139
...
git-svn-id: trunk@34156 -
2016-07-19 14:30:45 +00:00
Jonas Maebe
974c2363c0
- removed tdataconstnode, as it is no longer used and is not type safe.
...
Use a typed constant builder instead.
git-svn-id: trunk@34155 -
2016-07-19 14:30:42 +00:00
Jonas Maebe
adef9340e6
* converted metadata generation for variant dispatch to high level typed
...
constant builder
git-svn-id: trunk@34154 -
2016-07-19 14:30:39 +00:00
Jonas Maebe
8fea7344c9
* added an extra parameter to ttai_typedconstbuilder.emit_pchar_const() to
...
indicate whether it should create a copy of the pchar or not
git-svn-id: trunk@34153 -
2016-07-19 14:30:36 +00:00
Jonas Maebe
68cbbe677a
* fixed type information for C-block typed constants (fixes
...
tests/test/tblock1.pp for llvm)
git-svn-id: trunk@34152 -
2016-07-19 14:30:33 +00:00
Jonas Maebe
017d4edbbb
* fixed memory typecast of complex procdef to simple procvar: left.resultdef
...
is a procdef, but after the load was finished it's actually already a
(complex) procvar. And since it's a memory location, the result of the
typecast is a pointer to the typeconvnode's resultdef (fixes
tests/tbs/tb0594.pp and others for llvm)
git-svn-id: trunk@34151 -
2016-07-19 14:30:30 +00:00
Jonas Maebe
3177199d94
* changed all debug info labels from AT_DATA to AT_METADATA
...
git-svn-id: trunk@34150 -
2016-07-19 11:57:52 +00:00
Jonas Maebe
5ac99f62e9
+ AT_METADATA symbol type for data that is unrelated to the program
...
exectuion (such as debug information). It's handled the same as
AT_DATA by assemblers/assembler writers.
git-svn-id: trunk@34149 -
2016-07-19 11:57:31 +00:00
pierre
d4945f4fd0
Avoid range check error for Win64 by correcting type of parameters for GetModuleFileNameA WinAPI function
...
git-svn-id: trunk@34148 -
2016-07-19 11:35:21 +00:00
pierre
d1a610a2fc
Avoid range check error on win64 target in comparison of THandle to -1
...
git-svn-id: trunk@34147 -
2016-07-19 09:48:34 +00:00
michael
83538a3ceb
* Patch from Nur Cholif Murtadho to enable grayscale JPEG writing (bug ID 30386)
...
git-svn-id: trunk@34146 -
2016-07-18 18:32:52 +00:00
joost
0dcfb90f13
* Fixed problem with uninitialized return value
...
git-svn-id: trunk@34145 -
2016-07-16 17:25:31 +00:00
joost
8e45ef394e
* Avoid that non-existing parts of version-numbers are replaced by zeros
...
git-svn-id: trunk@34144 -
2016-07-16 17:22:03 +00:00
joost
62d74cfeb2
* Ability to switch mirror/repository
...
git-svn-id: trunk@34143 -
2016-07-16 17:14:27 +00:00
joost
971c124bc7
* Forgotten to commit in r34141
...
git-svn-id: trunk@34142 -
2016-07-16 16:49:12 +00:00
joost
ef853991de
* Improved error-message
...
git-svn-id: trunk@34141 -
2016-07-16 16:48:31 +00:00
Jonas Maebe
3c446c8605
* fixed crash when compiling libraries on non-Darwin after r34134
...
git-svn-id: trunk@34140 -
2016-07-16 14:13:33 +00:00
nickysn
a8ad82b99f
+ added new unit flag uf_i8086_ss_equals_ds, which indicates memory models with
...
SS=DS. This is currently redundant (whether SS=DS can be derived by the other
i8086 memory model unit flags), but in the future will allow adding extra
memory models, where the SS=DS assumption differs from the current ones.
git-svn-id: trunk@34139 -
2016-07-16 11:16:25 +00:00
nickysn
44e4b638ec
+ added the uf_package_deny and uf_package_weak unit flags to ppudump
...
git-svn-id: trunk@34138 -
2016-07-16 10:58:50 +00:00
Jonas Maebe
81b9928e31
* simply disable warnings rather than initialise the function result in
...
abstract method wrappers using default(resulttype), because "resulttype"
may not be visible in the current unit. Fixes win32 build after r34127
git-svn-id: trunk@34137 -
2016-07-15 14:35:52 +00:00
Jonas Maebe
687adbefd7
+ support for LOC_VOID parameters in llvm for empty records (fixes
...
tests/test/tnoext4.)
git-svn-id: trunk@34136 -
2016-07-15 14:35:17 +00:00
Jonas Maebe
c05fa52775
* call g_concatcopy() from a_load_ref_ref() if the size of the to be copied
...
data is big, because large load/store operations result in very slow code
(and takes forever to generate by llc)
git-svn-id: trunk@34135 -
2016-07-15 14:34:43 +00:00
Jonas Maebe
88a736c95a
* moved the code generated for library init/fini to the al_pure_assembler
...
list, so that the assembler directives generated for Darwin are emitted
correctly for LLVM
o extracted the library init code generation from hlcgobj to pmodules so
we don't add things to another list than what's passed to
gen_proc_symbol_end(), and so it's done where we generate the init
routine for libraries (rather then checking for every routine whether
it's the init routine for a library)
o removed the llvm-specific gen_proc_symbol_end() because the regular one
now does the same
git-svn-id: trunk@34134 -
2016-07-15 14:34:11 +00:00
pierre
a0bc21b072
Try to fix unicode support for go32v2 target.
...
rtl/go32v2/Makefile.fpc: Add character, fpwidestring, unicodedata nd unicodenumtable
to list of units.
Add rules for these four units.
rtl/go32v2/Makefile: Regenerated
packages/rtl-unicode/fpmake.pp: Add go32v2 to CollationOSes set, to also compile unicodeducet unit.
git-svn-id: trunk@34133 -
2016-07-15 10:39:24 +00:00
michael
3e2bb43555
* More changes of Mattias Gaertner to messages system
...
git-svn-id: trunk@34132 -
2016-07-15 10:13:58 +00:00
Jonas Maebe
c7ea921066
* renamed thlcgobj.g_external_wrapper() into a_jmp_external_name(), and
...
moved the code to create the procedure start/end etc. that was at the
call sites of g_external_wrapper() into the new g_external_wrapper()
-> got rid of the x86-specific code in expunix, and fixed expunix for
llvm (e.g. tests/test/tlib1{a,b})
git-svn-id: trunk@34131 -
2016-07-14 15:26:40 +00:00
Jonas Maebe
6558d7a521
* no longer store the tprocdef.synthetickind field in ppu files
...
git-svn-id: trunk@34130 -
2016-07-14 15:26:03 +00:00