Commit Graph

48914 Commits

Author SHA1 Message Date
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