Commit Graph

46751 Commits

Author SHA1 Message Date
Jonas Maebe
5c69d57674 + TLLVMModuleInlineAssemblyDecorator to decorate inline module-level
assembly

git-svn-id: trunk@31632 -
2015-09-12 23:32:28 +00:00
Jonas Maebe
55e84df094 + GetExternalAssemblerWithAsmInfoWriter() to get a GNU-style external
assembler writer that is compatible with the current architecture,
    for use by the LLVM assembler writer to write inline assembly

git-svn-id: trunk@31631 -
2015-09-12 23:32:24 +00:00
Jonas Maebe
6dd06a1aae * put the code for pure assembler routines in a separate asmlist, so
we can easily use a different assembler writer for them on the
    llvm target

git-svn-id: trunk@31630 -
2015-09-12 23:32:21 +00:00
Jonas Maebe
c80fb6a20e * explicitly specify whether an llvm specification is a definition (= locally
defined) or a declaration (external symbol), instead of deriving it from
    from the bind of the tasmsymbol. The reason is that with module-level
    inline assembly, some locally implemented functions (in pure assembler)
    won't have an LLVM IR body

git-svn-id: trunk@31629 -
2015-09-12 23:32:17 +00:00
Jonas Maebe
991e1f49bd * store a pointer to the used tasminfo record in every assembler writer, so
that we can use assembler writers with different conventions from the
    currently set target_asm (e.g. an x86 assembler writer for inline assembly
    in LLVM IR)

git-svn-id: trunk@31628 -
2015-09-12 23:32:13 +00:00
Jonas Maebe
4bb82b0a3f - removed unused OnlyAsm procedure
git-svn-id: trunk@31627 -
2015-09-12 23:32:09 +00:00
Jonas Maebe
e1f78cb774 * added decorator support to the external assembler writers so the LLVM
assembler writer can postprocess their output

git-svn-id: trunk@31626 -
2015-09-12 23:32:05 +00:00
Jonas Maebe
b3d0197f98 * factored out the output file handling (mostly writing data) from the
external assembler writer, so we can reuse the archtecture-specific
    writers to write inline assembly in LLVM IR files

git-svn-id: trunk@31625 -
2015-09-12 23:32:01 +00:00
Jonas Maebe
6ffd8f0201 * finalize managed data passed to untyped "out" parameters after r31328
(mantis #2863)

git-svn-id: trunk@31624 -
2015-09-12 23:31:57 +00:00
Jonas Maebe
6be050b729 * fixed finalization of open array out parameters after r31328
git-svn-id: trunk@31623 -
2015-09-12 23:31:53 +00:00
Jonas Maebe
2205549316 * changed fix for webtbs/tw20075 so that we don't check the need for
parameter/local finalization at all in pure assembler routines;
    the routines that check this also set pi_needs_got, which should
    not be set either for pure assembler routines (fixes tw20075 on
    Darwin/i386, where PIC code is enabled by default)

git-svn-id: trunk@31622 -
2015-09-12 23:31:50 +00:00
nickysn
e5153db532 + added the win16api drawing functions
git-svn-id: trunk@31621 -
2015-09-12 15:47:23 +00:00
nickysn
48a28c1256 + added the win16api clipping support functions
git-svn-id: trunk@31620 -
2015-09-12 14:33:27 +00:00
nickysn
5900db62ce + added the win16api palette functions
git-svn-id: trunk@31619 -
2015-09-12 14:05:38 +00:00
nickysn
df0ae96738 + added the win16api gdi region support functions
git-svn-id: trunk@31618 -
2015-09-12 13:13:07 +00:00
nickysn
5738869120 + added the win16api brush gdi functions
git-svn-id: trunk@31617 -
2015-09-12 12:46:45 +00:00
nickysn
c0a63ea0ab + added the win16api pen support functions
git-svn-id: trunk@31616 -
2015-09-12 12:27:54 +00:00
nickysn
1181eb0ddb * fixed compilation of the compiler with -dEXTDEBUG after r31588
git-svn-id: trunk@31615 -
2015-09-12 11:55:54 +00:00
nickysn
3a8acd3f33 + initial implementation of win16 file support, based on the msdos rtl
git-svn-id: trunk@31614 -
2015-09-12 00:17:11 +00:00
nickysn
d579c45656 * pass the option "dosseg" to wlink when compiling for win16 to ensure the
proper segment ordering

git-svn-id: trunk@31613 -
2015-09-12 00:08:23 +00:00
nickysn
04cb0cf615 + check for LFN support at startup on win16
git-svn-id: trunk@31612 -
2015-09-11 22:03:50 +00:00
nickysn
181ee0b4d2 + init exceptions and the unicode string manager in the win16 system unit startup
git-svn-id: trunk@31611 -
2015-09-11 21:54:40 +00:00
nickysn
9997ee54fb + initialize IsConsole and IsLibrary in the win16 system unit startup code
git-svn-id: trunk@31610 -
2015-09-11 21:48:20 +00:00
nickysn
694d93d011 + ported the MsDos() routine from the msdos rtl to win16
git-svn-id: trunk@31609 -
2015-09-11 21:29:45 +00:00
florian
fbda104d54 * do not use a_call_ref for procedures allocating all registers since it break spilling, see also issue #28639, resolves issue #28639
git-svn-id: trunk@31608 -
2015-09-11 20:56:05 +00:00
marcus
8096ad3d1b Amiga, AROS, MorphOS: MUI/Zune corrections, Escape sequences, Macros
git-svn-id: trunk@31607 -
2015-09-11 20:50:42 +00:00
marcus
5e94e3ab9e Amiga, AROS, MorphOS: Overloads for some var parameter/pointer as return value functions, set all filehandle, locks to BPTR (as defined in the SDKs)
git-svn-id: trunk@31606 -
2015-09-11 20:17:51 +00:00
nickysn
182dffcbd8 * fixed i8086 compilation after r31593
git-svn-id: trunk@31605 -
2015-09-11 16:20:50 +00:00
nickysn
f3a4d00a9e + added the gdi object support win16api functions
git-svn-id: trunk@31604 -
2015-09-11 15:56:41 +00:00
svenbarth
2cf8cdd885 Fix for Mantis #28650.
rtl/objpas/sysutils/sysstrh.inc:
  * forward PString to ObjPas.PString to avoid potential type conflicts

+ added test

git-svn-id: trunk@31603 -
2015-09-11 15:38:59 +00:00
nickysn
c65af63459 + added the win16api color functions
git-svn-id: trunk@31602 -
2015-09-11 15:33:09 +00:00
svenbarth
00f776ef76 pgenutil.pas, parse_generic_specialization_types_internal:
* in case of an inline specialization inside a generic function's/method's parameter list using type parameters of the generic function/method itself fulltypename of the generic type parameter must not be used as the procdef is not yet owned by anyone; this is no problem for non-generic functions/methods or specializations with type parameters that don't belong to the generic function/method, because they don't have the generic, ownerless procdef as owner => use a name that provides sufficient uniqueness

git-svn-id: trunk@31601 -
2015-09-11 15:18:44 +00:00
marcus
5a77040787 AROS, Amiga: Exec.library AllocMem renamed to ExecAllocMem (unification with MorphOS)
git-svn-id: trunk@31600 -
2015-09-11 15:08:31 +00:00
nickysn
c9a1ee5c8f + added the win16api coordinate transformation functions
git-svn-id: trunk@31599 -
2015-09-11 15:00:07 +00:00
nickysn
b8846771bf + added the win16api getdevicecaps function and its constants
git-svn-id: trunk@31596 -
2015-09-11 14:14:20 +00:00
svenbarth
6eef28fd03 pdecsub.pas, proc_add_definition:
* special handling for matching generic procdefs with their forward declarations

git-svn-id: trunk@31595 -
2015-09-11 14:13:54 +00:00
svenbarth
8fbd57080b defcmp.pas, compare_paras:
+ new flag cpo_generic to allow a declaration of a generic function in the interface to be matched to its implementation as for each new undefined defs for the type parameters will be created

git-svn-id: trunk@31594 -
2015-09-11 13:42:51 +00:00
svenbarth
65c37df999 + extend tprocdef with the possiblity to create it as unregistered
* for now all procdefs are created as registered
Note: an additional parameter instead of an overload is used for tprocdef.create as otherwise both constructors would need to be overridden in potential descendant CPU-specific classes...

git-svn-id: trunk@31593 -
2015-09-11 13:36:00 +00:00
svenbarth
84b9d9839c + extend tobjectdef with the possiblity to create it as unregistered
* for now all objectdefs are created as registered
Note: an additional parameter instead of an overload is used for tobjectdef.create as otherwise both constructors would need to be overridden in potential descendant CPU-specific classes...

git-svn-id: trunk@31592 -
2015-09-11 13:28:49 +00:00
svenbarth
d45c275ef3 + extend ttypesym with the possiblity to create it as unregistered
* for now all typesyms are created as registered
Note: an additional parameter instead of an overload is used for ttypesym.create as otherwise both constructors would need to be overridden in potential descendant CPU-specific classes...

git-svn-id: trunk@31591 -
2015-09-11 13:22:12 +00:00
nickysn
6bac838fce + added the win16api basic gdi types
git-svn-id: trunk@31590 -
2015-09-11 13:10:36 +00:00
svenbarth
6fb71e55fd symtable.pas, tparasymtable:
* checkduplicate: also ensure that the owner of the procdef is assigned before using it

git-svn-id: trunk@31589 -
2015-09-11 13:09:17 +00:00
svenbarth
4f5fc66298 + new parser-only node class to handle Delphi-mode inline specializations
git-svn-id: trunk@31588 -
2015-09-11 12:58:25 +00:00
nickysn
09a4efe5d3 + added the win16api keyboard functions
git-svn-id: trunk@31587 -
2015-09-11 12:47:09 +00:00
nickysn
afcc5a9e11 + added the win16api string functions
git-svn-id: trunk@31586 -
2015-09-11 12:38:01 +00:00
nickysn
6567700025 + added the win.ini win16api functions
git-svn-id: trunk@31585 -
2015-09-11 12:00:36 +00:00
nickysn
f4b4cced38 + added the win16 api atom management functions
git-svn-id: trunk@31584 -
2015-09-11 11:47:57 +00:00
sergei
e542800ea9 * Win64 SEH: Track control flow out of unwind-protected regions in a more precise way and don't generate expensive calls to __fpc_local_unwind when not necessary.
git-svn-id: trunk@31582 -
2015-09-09 18:43:46 +00:00
nickysn
5f3c45d370 + added the win16 api resource functions
git-svn-id: trunk@31581 -
2015-09-09 00:35:45 +00:00
nickysn
386c459534 + converted the win16 network api functions
git-svn-id: trunk@31580 -
2015-09-08 22:42:46 +00:00