Commit Graph

46808 Commits

Author SHA1 Message Date
Jonas Maebe
1c2bac7608 - removed FPC_HAS_VARSETS-related checks, FPC 2.6.4 has it
git-svn-id: trunk@31690 -
2015-09-15 11:51:42 +00:00
Jonas Maebe
858fd37483 - removed FPC_HASINTERNALOLEVARIANT2VARIANTCAST-related checks, FPC 2.6.4
has it

git-svn-id: trunk@31689 -
2015-09-15 11:51:38 +00:00
Jonas Maebe
da6382db2a - removed FPC_HASFIXED64BITVARIANT-related checks, FPC 2.6.4 has it
git-svn-id: trunk@31688 -
2015-09-15 11:51:35 +00:00
Jonas Maebe
4494565a15 - removed RESSTRSECTIONS-related checks, FPC 2.6.4 has it
git-svn-id: trunk@31687 -
2015-09-15 11:51:32 +00:00
Jonas Maebe
555319ec15 - disabled x86-specific code when using llvm
git-svn-id: trunk@31686 -
2015-09-15 11:51:29 +00:00
Jonas Maebe
75992c1274 * don't allow records to be put in registers for the llvm target
git-svn-id: trunk@31685 -
2015-09-15 11:51:25 +00:00
Jonas Maebe
919bce9819 * also construct the high level code generator for high level targets; they
don't use it for creating interface stubs, but they do for the abstract
    wrappers

git-svn-id: trunk@31684 -
2015-09-15 11:51:22 +00:00
Jonas Maebe
06feac07a5 + support for the text/file types on the JVM platform
git-svn-id: trunk@31683 -
2015-09-15 11:51:19 +00:00
yury
30b8137994 * arm-android: PIC compatible library startup code.
git-svn-id: trunk@31682 -
2015-09-14 23:22:26 +00:00
yury
61c0448903 * Big fix for ARM GOT support to make it work:
- Fixed access to symbols with offset.
  - Always use register R9 for GOT pointer to prevent bugs when free register limit is reached in a function.
  - GOT is not needed for function calls by name.

git-svn-id: trunk@31681 -
2015-09-14 23:15:10 +00:00
Jonas Maebe
3dccdab911 * fixed wrong parameter to file permissions parameter (patch by temp4746,
mantis #28634)

git-svn-id: trunk@31680 -
2015-09-14 16:11:00 +00:00
Jonas Maebe
5f7b242222 * fixed compilation with -Oodfa/-O3
git-svn-id: trunk@31679 -
2015-09-14 16:10:57 +00:00
Jonas Maebe
f8d9e70ec2 * converted tnodeutils.InsertMemorySizes() to the high level typed constant
builder and activated it for llvm

git-svn-id: trunk@31678 -
2015-09-14 16:10:54 +00:00
Jonas Maebe
fa7ebba80d + new tcalo_no_dead_strip flag for the high level typed const builder to
indicate symbols that should never be removed by the linker
   o TODO for llvm, needs support for the @llvm.used array (only used for
     the compiler ident, so it's not that important

git-svn-id: trunk@31677 -
2015-09-14 16:10:51 +00:00
Jonas Maebe
bf10ae45de * only add the llvm "sret" attribute to "struct return" parameters if they
are the first parameter (as required by llvm)
   o ensure that for AArch64, "struct return" the parameter always is the first
     parameter, as it needs to be returned in a special register there

git-svn-id: trunk@31676 -
2015-09-14 16:10:48 +00:00
Jonas Maebe
4564bffb85 * use binutils 2.19+ linker script "augmentation" functionality to specify
how the fpc sections have to be linked *on Linux*. This prevents the
    "did you forget -T" warnings from ld, and in general is more correct than
    our previous approach of specifying a complete linker script without -T
    and hoping that there won't be any unexpected interactions with ld's
    built-in linker script (fixed version of r31664, thanks to Alan Modra)
   o use the new -X9 command line option to generate linker scripts that
     are compatible with binutils older than 2.19 (reverts to the old
     behaviour)

git-svn-id: trunk@31675 -
2015-09-14 07:24:54 +00:00
florian
5595651816 * define avr => cpu8bitalu
git-svn-id: trunk@31673 -
2015-09-13 21:07:23 +00:00
florian
40a5f97239 - cclasses unit is not used
git-svn-id: trunk@31672 -
2015-09-13 21:07:21 +00:00
Tomas Hajny
a35c9978b8 * correct the highest possible number of items in tab/group and fix the LIBPATH information moved by one line in the dialogue box
git-svn-id: trunk@31671 -
2015-09-13 20:41:26 +00:00
Jonas Maebe
e06a759e20 - reverted r31664, it causes crashes with some ld versions :/
git-svn-id: trunk@31670 -
2015-09-13 20:14:46 +00:00
Tomas Hajny
fd579d3406 * make sure that no tab/group contains more than 32 items
git-svn-id: trunk@31669 -
2015-09-13 19:52:38 +00:00
Jonas Maebe
4d0c42ee23 - removed double calling of handlemanagedbyrefpara() for managed targets,
not sure why it didn't cause problems before

git-svn-id: trunk@31668 -
2015-09-13 19:06:29 +00:00
Jonas Maebe
b12bedb9f8 - disabled InsertResStrTablesTable and InsertResStrInits for the JVM target
(they were not functional, but now cause internalerrors due to
     invocations of the high level typed constant builder rather than their
     output gets ignored)

git-svn-id: trunk@31667 -
2015-09-13 19:06:25 +00:00
Jonas Maebe
f4c868b06a * fixed infinite Java assembler writer create loop after r31625
git-svn-id: trunk@31666 -
2015-09-13 19:06:22 +00:00
Jonas Maebe
0ea38852ac * fixed compilation of the jvm compiler after r31591 - r31593
git-svn-id: trunk@31665 -
2015-09-13 19:06:19 +00:00
Jonas Maebe
cd41bf672c * use binutils 2.19+ linker script "augmentation" functionality to specify
how the fpc sections have to be linked *on Linux*. This prevents the
    "did you forget -T" warnings from ld, and in general is more correct than
    our previous approach of specifying a complete linker script without -T
    and hoping that there won't be any unexpected interactions with ld's
    built-in linker script
   o use the new -X9 command line option to generate linker scripts that
     are compatible with binutils older than 2.19 (reverts to the old
     behaviour)

git-svn-id: trunk@31664 -
2015-09-13 19:06:14 +00:00
marcus
54961de266 AROS: complete rewrite ASL and MUI
git-svn-id: trunk@31663 -
2015-09-13 17:55:55 +00:00
nickysn
c7ecf84fc0 * fixed compilation of threadvars in i8086 far data memory models
git-svn-id: trunk@31662 -
2015-09-13 12:52:23 +00:00
Jonas Maebe
381270bf30 * changed the threadvars table count back from
tai_const.create_32bit_unaligned() into tai_const.create_32bit() after
    r31649 (Lazarus autocompletion...) (fixes webtbs/tw3540.pp regression)

git-svn-id: trunk@31661 -
2015-09-13 07:56:12 +00:00
Jonas Maebe
06fc6ac491 * fixed threadvar support on linux/i386 and android/i386 after r31639
(mantis #28672)

git-svn-id: trunk@31660 -
2015-09-13 07:46:31 +00:00
Jonas Maebe
75012405fa * add some llvm function flags
o in particular, mark fpc_setjmp as "returns_twice" so calls to it are
     never converted into tail calls

git-svn-id: trunk@31659 -
2015-09-12 23:34:04 +00:00
Jonas Maebe
faf4a9cb38 * moved the generation of the "main" stub for libc-based platforms from
hlcgobj to pmodules/symcreat/ngenutil, so that it also works for llvm

git-svn-id: trunk@31658 -
2015-09-12 23:34:01 +00:00
Jonas Maebe
6909523b70 * handle atan, sqrt, ln, sin and cos in the x86 RTL for llvm
o there are llvm intrinsics for all of these except for atan,
      but these obey "the same rules as the equivalent libc functions"
      and I first have to investigate whether these libc functions
      behave the same as our FPC implementations

git-svn-id: trunk@31657 -
2015-09-12 23:33:57 +00:00
Jonas Maebe
616dbead35 + handle abs(real) internally for LLVM, as the generic code calls a helper
that is not implemented for some architectures

git-svn-id: trunk@31656 -
2015-09-12 23:33:53 +00:00
Jonas Maebe
8ff5371a6c + support mmregisters in the generic unaryminus code for floats
git-svn-id: trunk@31655 -
2015-09-12 23:33:50 +00:00
Jonas Maebe
2741b37f28 * only specify the "unnamed_addr" flag for initialised data if its symbol is
a tasmlabel, since otherwise the address needs to remain unique

git-svn-id: trunk@31654 -
2015-09-12 23:33:46 +00:00
Jonas Maebe
7a08319d2e * converted taillvmdecl properties to a set
git-svn-id: trunk@31653 -
2015-09-12 23:33:42 +00:00
Jonas Maebe
4b92083006 * converted tnodeutils.InsertRuntimeInitsTablesTable to the high level typed
const builder
   o enabled the routines that use this one for LLVM

git-svn-id: trunk@31652 -
2015-09-12 23:33:38 +00:00
Jonas Maebe
a4ee982269 * converted tnodeutils.InsertInitFinalTable to the high level typed const
builder and enabled it for LLVM

git-svn-id: trunk@31651 -
2015-09-12 23:33:35 +00:00
Jonas Maebe
f7948ff25f * removed outdated comment
git-svn-id: trunk@31650 -
2015-09-12 23:33:31 +00:00
Jonas Maebe
a1c676cc51 * converted tnodeutils.InsertThreadvarTablesTable to the high level typed
constant builder

git-svn-id: trunk@31649 -
2015-09-12 23:33:28 +00:00
Jonas Maebe
5a2217f645 + support for emitting simple placeholder elements in the high level
typed const builder, for use when e.g. emitting a table preceded by
    the number of elements in case that number is only known afterwards

git-svn-id: trunk@31648 -
2015-09-12 23:33:24 +00:00
Jonas Maebe
f49d6e5f26 * converted tnodeutils.InsertThreadvars to the high level typed constant
builder

git-svn-id: trunk@31647 -
2015-09-12 23:33:21 +00:00
Jonas Maebe
7def77dcc9 * we only support resourcestrings in ttai_typedconstbuilder.queue_emit_const()
right now, so give an internalerror if something else is passed
  * use the correct type when emitting a resourcestring like that (it will store
    the address of the resource string -> pointer to an ansistring)

git-svn-id: trunk@31646 -
2015-09-12 23:33:17 +00:00
Jonas Maebe
c813e024ee * support non-section-based threadvars on the LLVM target
git-svn-id: trunk@31645 -
2015-09-12 23:33:14 +00:00
Jonas Maebe
19882aea7e * converted threadvar loading to high level code generator and updated/added
comments

git-svn-id: trunk@31644 -
2015-09-12 23:33:10 +00:00
Jonas Maebe
83ae160057 + get_threadvar_record() to get a recorddef representing a threadvar (index
and data in case of single threaded)

git-svn-id: trunk@31643 -
2015-09-12 23:33:07 +00:00
Jonas Maebe
4da34a6046 + llvm implementation of g_set_addr_nonbitpacked_record_field_ref
git-svn-id: trunk@31642 -
2015-09-12 23:33:03 +00:00
Jonas Maebe
9ee2a0f71c + g_set_addr_nonbitpacked_record_field_ref() thlcgobj method to make a
reference pointing to the base address of a record point to a field
    of that same record

git-svn-id: trunk@31641 -
2015-09-12 23:33:00 +00:00
Jonas Maebe
5a50d05e50 * fixed skipping if intermediate fields in llvm shadow symtable
git-svn-id: trunk@31640 -
2015-09-12 23:32:56 +00:00