Commit Graph

49806 Commits

Author SHA1 Message Date
svenbarth
f8c23c84b6 * have pointerdefs and classrefdefs "inherit" the df_generic and df_specialization flags from the def they point to and set the genericdef accordingly
git-svn-id: trunk@35091 -
2016-12-09 16:20:36 +00:00
michael
7ead78e71b * Forgot to add fpfonttextmapping.pp
git-svn-id: trunk@35090 -
2016-12-09 14:24:14 +00:00
Jonas Maebe
18077d9530 * when determining the best candidates for overloaded method calls, apply
the scope penalty relative to the nearest symtable that contains one of
    the applicable overloads, rather than relative to the nearest symtable
    that simply contains a method with this name (based on patch by
    Maciej Izak, mantis #25607)

git-svn-id: trunk@35089 -
2016-12-09 13:39:42 +00:00
Jonas Maebe
04f7e47df7 * create stubs for library exports on Unix at at the node tree level instead
of using thlcg.g_external_wrapper() for high level targets, because that
    way the creation of a new procdef for this stub and adding appropriate
    entry/exit code can be handled using the standard compiler infrastructure
    (fixes webtbs/tw8730* for LLVM)

git-svn-id: trunk@35088 -
2016-12-09 13:39:38 +00:00
Jonas Maebe
d36fe53d85 * factored out the code to create an complete alias for a procdef to
symcreat.create_procdef_alias()

git-svn-id: trunk@35087 -
2016-12-09 13:39:35 +00:00
Jonas Maebe
8af85a16b3 * document finish_copied_procdef()
git-svn-id: trunk@35086 -
2016-12-09 13:39:31 +00:00
Jonas Maebe
472b5228fe * changed ncgutil.has_alias_name(pd,s) to a method of tprocdef
git-svn-id: trunk@35085 -
2016-12-09 13:39:28 +00:00
michael
4406ec7e68 * Forgot to add subsetter font
git-svn-id: trunk@35084 -
2016-12-09 13:22:48 +00:00
michael
b7083402cf * Fix from Graeme adding Font subset embedding and underline/strikethrough
git-svn-id: trunk@35083 -
2016-12-09 12:51:06 +00:00
florian
1e374df5b8 * correctly calculate the bit mask in thlcgobj.a_load_regconst_subsetreg_intern, resolves #31042
* convert immediates on x86 always to 32 (x86-64, i386) or 16 bit (i8086) signed values

git-svn-id: trunk@35082 -
2016-12-07 20:08:22 +00:00
sergei
8173efff3e * x86 asm reader: Don't copy operand size to instruction size for MOVSS and VMOVSS, because it is different for source and destination. Fixes breakage caused by fixing memory size of those instructions (Mantis #29954 and Mantis #29957).
+ Tests are extended to check that both OPR_LOCAL and OPR_REF memory operands compile without warnings as source and destination, in both Intel and AT&T syntax.

git-svn-id: trunk@35081 -
2016-12-07 14:08:28 +00:00
svenbarth
a23cfd9a85 * regenerate msgidx.inc and msgtxt.inc after r35079; thankfully that didn't break the build this time since it was merely a text change ^.^'
git-svn-id: trunk@35080 -
2016-12-07 07:38:01 +00:00
svenbarth
d499163ef5 * provisional fix for Mantis #31076: fail gracefully instead of with an internal error if a generic method is declared inside a generic class or record. This will change once we support nested generics however.
* adjusted error message to reflect that we're not only dealing with generic classes
+ added test; note: it's added in webtbs, cause the test will loose its %FAIL attribute in the future

git-svn-id: trunk@35079 -
2016-12-06 22:26:53 +00:00
svenbarth
70817baf98 * since we already allow inline specializations in mode ObjFPC due to generic functions it's only consequential to also allow specializations after pointers (they are already allowed in mode Delphi).
+ added tests
* tgeneric87.pp and tgeneric88.pp are no longer considered as tests that should fail

git-svn-id: trunk@35078 -
2016-12-06 21:37:22 +00:00
Károly Balogh
db976a3a3e amiga: added __amigaos4__ signature symbol to the pascal startup code
git-svn-id: trunk@35077 -
2016-12-06 01:26:20 +00:00
Károly Balogh
eb6fe91208 amiga: proof-of-concept untested implementation for OS4/PowerPC Pascal startup code
git-svn-id: trunk@35076 -
2016-12-05 21:12:23 +00:00
marcus
8917b476c0 AROS: CreateRastPort as explicit function only needed for ABIv1 (for v0 in graphics.library)
git-svn-id: trunk@35075 -
2016-12-05 07:22:05 +00:00
marcus
afaefc32e8 AROS: more ABIv1 and x64 adjustments
git-svn-id: trunk@35074 -
2016-12-04 21:49:54 +00:00
florian
759a53dfc7 - removed comment that the unit is a prototype and changing: the comment was introduced 10 years ago, the unit is part of stable release for years, it is documented
git-svn-id: trunk@35073 -
2016-12-04 21:16:00 +00:00
florian
55d9fea401 * CLASSESINLINE -> FGLINLINE
* inlining enabled

git-svn-id: trunk@35072 -
2016-12-04 21:14:00 +00:00
Károly Balogh
dbd7e74e9c amiga: yet another attempt to fix powerpc-amiga build
git-svn-id: trunk@35071 -
2016-12-04 19:10:53 +00:00
Károly Balogh
8057b42830 amiga: only try to build the pascal startup code on 68k for now
git-svn-id: trunk@35070 -
2016-12-04 18:51:48 +00:00
Károly Balogh
b356b18675 amiga: forgot to commit the actual buildrtl.pp in the previous commit
git-svn-id: trunk@35069 -
2016-12-04 18:37:47 +00:00
Károly Balogh
788c622307 amiga: pascal startup code for 68k and buildrtl refactor
git-svn-id: trunk@35068 -
2016-12-04 18:21:24 +00:00
marcus
7eba7122d2 AROS: ABIv1 AmigaDOS unit
git-svn-id: trunk@35067 -
2016-12-04 16:58:59 +00:00
marcus
bebef242d4 AROS: Initial ABIv1 Support
git-svn-id: trunk@35066 -
2016-12-04 15:41:35 +00:00
Károly Balogh
1701f06a0e morphos: take two on the Pascal startup code. this version works as a drop-in replacement for the asm one, and doesn't need system unit patching. this will be important when linking against LibC and when the approach gets ported to other Amiga-like platforms
git-svn-id: trunk@35065 -
2016-12-04 14:02:01 +00:00
marcus
114a43e6ef AROS: fixed TTask type
git-svn-id: trunk@35064 -
2016-12-04 13:45:04 +00:00
michael
d05175a17f * FileOpen should not open directories (Windows compatible) Bug ID #30766
git-svn-id: trunk@35063 -
2016-12-04 12:41:57 +00:00
michael
0d772ae198 * Patch from Silvio Clecio to remove unused variable (bug ID 31044)
git-svn-id: trunk@35062 -
2016-12-04 11:56:05 +00:00
Jonas Maebe
f55d962e40 * use system.round() instead of LLVM's fptosui operation for converting a
floating point type to currency, as fptosui is defined as always rounding
    to zero while on other platforms we use the FPU's current rounding mode
    (fixes webtbs/tw21449 for LLVM, and also webtbs/tw24197 because LLVM's
     code generated for fptosui temporarily changes the FPU control word so
     it rounds to zero and also to disable FPU exceptions)

git-svn-id: trunk@35061 -
2016-12-04 11:15:22 +00:00
Jonas Maebe
8b1c90124e * support encoding helper types for LLVM (encode the same type as the
extended class) (fixes webtbs/tw21457 for LLVM)

git-svn-id: trunk@35060 -
2016-12-04 11:15:19 +00:00
Jonas Maebe
a0b537bc7b * fixed typed constants that use an integer number to initialise a procvar or
pointer on LLVM (fixes webtbs/tw21267)

git-svn-id: trunk@35059 -
2016-12-04 11:15:15 +00:00
Jonas Maebe
2e9c6f35ae - disable -Ooregvar for the LLVM-based x86-64 code generator, as it causes
internalerrors there and fixing it doesn't make sense since LLVM will take
    care of that anywaya

git-svn-id: trunk@35058 -
2016-12-04 11:15:12 +00:00
Jonas Maebe
a2017b2327 * don't keep tc_equal type conversions for LLVM in case the resultdef doesn't
change, since then we definitely don't have to insert a type conversion at
    the LLVM level either (fixes webtbs/tw1901 for LLVM)

git-svn-id: trunk@35057 -
2016-12-04 11:15:09 +00:00
Jonas Maebe
a8e107bb4b * fix memory leak: free rg[R_MMREGISTER]
git-svn-id: trunk@35056 -
2016-12-04 11:15:05 +00:00
michael
d6d10a522a * Patch from Mattias Gaertner
- more tests
   - case-of: added option to change between switch and if-else
   - Some changes to the way the implementation block is generated for units.

git-svn-id: trunk@35055 -
2016-12-04 09:35:53 +00:00
Károly Balogh
f3e33a9dde morphos: new pascal-written internal startup code. also refactored the rtl build process for morphos
git-svn-id: trunk@35054 -
2016-12-04 00:15:41 +00:00
Tomas Hajny
7956cb5d48 * CrtCtrlBreakHandler may not be invoked for Ctrl-C on certain platforms (Win32/Win64) - made conditional (preparation for future use as platform independent include file)
git-svn-id: trunk@35053 -
2016-12-03 23:41:03 +00:00
Tomas Hajny
63c3fc59d4 * as pointed to by Dmitry Boyarintsev (bug #31023), TurnMouseOff is not used and may be removed
git-svn-id: trunk@35052 -
2016-12-03 23:38:58 +00:00
Tomas Hajny
8038b2e64f * patch by Dmitry Boyarintsev (bug #31023) improving compatibility of unit Crt under Win32 and Win64 to other platforms and original TP/BP - Ctrl-C now treated as ASCII 3 and Ctrl-Break respects CheckBreak setting
git-svn-id: trunk@35051 -
2016-12-03 23:37:03 +00:00
Tomas Hajny
e5ceb04725 * patch by Dmitry Boyarintsev (bug #31023) implementing SysSetCtrlBreakHandler for Win32 and Win64
git-svn-id: trunk@35050 -
2016-12-03 23:35:20 +00:00
marcus
85e485826a AROS: Startupcode for x86_64 with stack extent feature
git-svn-id: trunk@35049 -
2016-12-03 19:29:00 +00:00
Károly Balogh
8c4e5e0610 bump PPU version due to the latest syscall changes
git-svn-id: trunk@35048 -
2016-12-03 19:01:11 +00:00
Károly Balogh
0cb555c07c syscalls: move the reference implementation of parseparaloc to paramgr. removes two identical copies from CPU specific code and enables basereg convention for AROS/x86_64. also, other minor fixes and cleanups in related code.
git-svn-id: trunk@35047 -
2016-12-03 19:00:41 +00:00
Jonas Maebe
ba33da711a * fixed compilation after r35034
- removed commented-out uses statement

git-svn-id: trunk@35046 -
2016-12-03 08:48:01 +00:00
Jonas Maebe
8c167f4e40 * handle already quoted symbol names for LLVM (like for Objective-C)
git-svn-id: trunk@35045 -
2016-12-02 18:04:14 +00:00
Jonas Maebe
876e5eab56 * fixed "smart linking" parameters to llc
git-svn-id: trunk@35044 -
2016-12-02 17:45:12 +00:00
Jonas Maebe
f26ed10ba1 * same as r27223 for hlcgobj (fixes webtbs/tw25895 for llvm)
git-svn-id: trunk@35043 -
2016-12-02 17:45:09 +00:00
Jonas Maebe
02e4a27a35 * print internalerrors in case we still encounter stray constants not part of
a typed constants
  * don't print superfluous newlines in typed constant definitions

git-svn-id: trunk@35042 -
2016-12-02 12:33:09 +00:00