Commit Graph

18028 Commits

Author SHA1 Message Date
nickysn
8515160e9d + set CObjData in the TMZExeOutput constructor
git-svn-id: trunk@30866 -
2015-05-15 22:35:32 +00:00
nickysn
27f77329e7 - removed agjasmin.pas from the ppc8086.lpi (plus other changes lazarus insists on doing)
git-svn-id: trunk@30865 -
2015-05-15 22:27:35 +00:00
nickysn
29a1c74e34 + implemented TOmfObjInput.CanReadObjData
git-svn-id: trunk@30864 -
2015-05-15 22:23:30 +00:00
nickysn
91d3cb1cd0 + initial implementation of TInternalLinkerMsDos.DefaultLinkScript
git-svn-id: trunk@30863 -
2015-05-15 22:22:36 +00:00
Jonas Maebe
ac592ed634 - removed some more unnecessary code after r30855
git-svn-id: trunk@30857 -
2015-05-14 17:44:37 +00:00
Jonas Maebe
bd8079f896 * cache and reuse procvardefs internally created to get the address of a
procdef (halves the amount of memory needed to compile the googlapi
    package using a build unit, as done by fpmake)

git-svn-id: trunk@30856 -
2015-05-14 15:36:20 +00:00
Jonas Maebe
801fc50e86 * simplified "case stringexpr of" handling and removed memory leaks due to
symbols that weren't put in any symbol table (and that couldn't be put
    anywhere, since they all had the same name)

git-svn-id: trunk@30855 -
2015-05-14 14:42:38 +00:00
Jonas Maebe
32501834c9 * fixed memory leaks due to missing frees of temporary tcgpara locations
git-svn-id: trunk@30854 -
2015-05-14 14:42:35 +00:00
Jonas Maebe
ce49f5fb41 * fixed memory leak due to double allocation of typedconstbuilder and wrong
free location

git-svn-id: trunk@30853 -
2015-05-14 14:42:32 +00:00
Jonas Maebe
d7412fb5c0 * fixed memory leaks and multiple recalculation regarding function result
locations

git-svn-id: trunk@30852 -
2015-05-14 14:42:28 +00:00
Jonas Maebe
9ceddf9b16 * fix tasmlisttypedconstbuilder memory leaks
git-svn-id: trunk@30851 -
2015-05-14 14:42:25 +00:00
Jonas Maebe
93fcdb9a5a * fixed initialisation of procvar typed const with a pointerconstn:
we start a typeconversion queue before, so we have to emit to that
    queue as well (to get all the type conversions)

git-svn-id: trunk@30850 -
2015-05-14 14:42:22 +00:00
Jonas Maebe
d71f6e9840 - removed extraneous maybe_begin_aggregate() when a procvar is initialised
with a pointerconstn, and moved the maybe_end_aggregate() for all procvar
    initialisation cases to a common location

git-svn-id: trunk@30849 -
2015-05-14 14:42:19 +00:00
Jonas Maebe
1e7fcec236 * build mka64ins by default in the compiler/utils directory (patch by
Edmund Grimley Evans)

git-svn-id: trunk@30848 -
2015-05-14 14:42:15 +00:00
Jonas Maebe
585e4a9a14 * corrected cosmetic ARM/AArch64 copy/paste leftovers (patch by
Edmund Grimley Evans)

git-svn-id: trunk@30847 -
2015-05-14 14:42:12 +00:00
Jonas Maebe
7395058cf3 * recognise tb(n)z as branch opcode (patch by Edmund Grimley Evans)
git-svn-id: trunk@30846 -
2015-05-14 14:42:03 +00:00
Jonas Maebe
edceff5756 * moved Jasmin assembler writer to jvm backend directory
git-svn-id: trunk@30838 -
2015-05-09 17:25:18 +00:00
Jonas Maebe
95b900911c - removed outdated script
git-svn-id: trunk@30837 -
2015-05-09 17:25:14 +00:00
Jonas Maebe
a04cae2c4b - removed partial Alpha, IA64 and vis backends since they were never nor
will likely ever be finished

git-svn-id: trunk@30836 -
2015-05-09 17:25:11 +00:00
Jonas Maebe
1b43930749 - removed long deprecated/buggy assembler cse optimiser for i386
o bumped ppu version because optimiser settings can be embedded in generic
     token streams

git-svn-id: trunk@30835 -
2015-05-09 17:25:07 +00:00
nickysn
3b288554e7 + more msdos internal linker classes added
git-svn-id: trunk@30811 -
2015-05-06 14:49:07 +00:00
nickysn
93ec811c97 + created the msdos internal linker class (empty for now)
git-svn-id: trunk@30810 -
2015-05-06 13:45:39 +00:00
nickysn
ced1368221 * fixed emitting of RELOC_SEG and RELOC_SEGREL relocations within the same
section in the omf internal obj writer

git-svn-id: trunk@30809 -
2015-05-06 10:40:38 +00:00
nickysn
328a4fa19a + optimization: don't emit relative relocation entries to the same section in
the omf obj writer

git-svn-id: trunk@30808 -
2015-05-06 10:05:15 +00:00
nickysn
b17087a645 - removed debug writelns after r30800
git-svn-id: trunk@30802 -
2015-05-04 17:13:17 +00:00
nickysn
f1252d7582 - removed unnecessary setting of TargetMethod and TargetDatum (since these are
always set in the following 'if' statement) in TOmfRelocation.BuildOmfFixup

git-svn-id: trunk@30801 -
2015-05-04 17:11:02 +00:00
nickysn
0da38dbc79 + implemented support for the 'dgroup' (addr_dgroup) relocation type in the omf
internal object writer

git-svn-id: trunk@30800 -
2015-05-04 17:07:19 +00:00
nickysn
37840bc811 - removed commented out debug code from TOmfObjData.writeReloc
git-svn-id: trunk@30799 -
2015-05-04 16:24:28 +00:00
Jonas Maebe
6e5af0b31e * don't replace classrefdef with i64 in parameter locations (so llvm can use
the type information)

git-svn-id: trunk@30787 -
2015-05-03 16:51:23 +00:00
Jonas Maebe
fb8c61889b * when getting a copy of a special procdef (such as a con/destructor) as a
procvardef, change the proctype into a regular procedure/function,
    because there are no "con/destructor procvar" types and there is code
    in the paramanager that expects e.g. a constructor to be always owned by an
    abstractrecorddef (which is not necessarily the case for the created
    procvardefs)

git-svn-id: trunk@30786 -
2015-05-03 16:51:20 +00:00
Jonas Maebe
582aee4d90 * fixed the type of FPC_EMPTYCHAR when referencing it
git-svn-id: trunk@30785 -
2015-05-03 16:51:16 +00:00
Jonas Maebe
8034ef1f31 * support for dynamic strings and arrays in update_reference_reg_mul()
git-svn-id: trunk@30784 -
2015-05-03 16:51:13 +00:00
Jonas Maebe
eae68e86a1 * don't insert a typeconversion from pasbool to int in case the left
location was LOC_JUMP or LOC_FLAGS, as in that case the generic
    code has already done this using location_force_reg()

git-svn-id: trunk@30783 -
2015-05-03 16:51:10 +00:00
Jonas Maebe
8f1fb60f61 * also collect the llvm type info from the initialisation data of typed
constants

git-svn-id: trunk@30782 -
2015-05-03 16:51:06 +00:00
Jonas Maebe
74da8720c5 * insert type conversions in case a symbol is declared via 'external' as an
alias for another symbol with a different type (such as
    FPC_ANSISTR_UNIQUE, which is defined as a function and referenced as a
    procedure)

git-svn-id: trunk@30781 -
2015-05-03 16:51:02 +00:00
Jonas Maebe
65bcfdc42d * support changing the tai field of a tai_simpletypedconst afterwards,
so we can insert type conversions in llvmtype if necessary

git-svn-id: trunk@30780 -
2015-05-03 16:50:58 +00:00
Jonas Maebe
d546e74d1c * don't write newlines after nested taillvm instructions (since they're
embedded in the middle of another instruction)

git-svn-id: trunk@30779 -
2015-05-03 16:50:55 +00:00
Jonas Maebe
4a5b7b7d50 * once we've defined a symbol as an alias, it's declared to the same extent
as a regular symbol definition

git-svn-id: trunk@30778 -
2015-05-03 16:50:51 +00:00
Jonas Maebe
8234fcd229 * implemented thlcgllvm.g_external_wrapper by just declaring the new symbol
as an alias for the old one (rather than creating an interprocedural
    jump, which is not possible in llvm IR and which is less efficient
    anyway) (declaration for this method was already accidentally committed
    in r30722)

git-svn-id: trunk@30777 -
2015-05-03 16:50:47 +00:00
Jonas Maebe
72277f5098 * store the used tabstractprocdef when generating an llvm call instruction,
because due to aliasing symbols a single symbol may be called using
    different procdefs (e.g. FPC_ANSISTR_UNIQUE in the system unit is defined
    as an alias for a function and called as a procedure). This means we have
    to insert extra type conversions for llvm, which requires both the source
    and destination type

git-svn-id: trunk@30776 -
2015-05-03 16:50:43 +00:00
Jeppe Johansen
6662cb6dd5 ARMv6M was missing alignments for jumptables
git-svn-id: trunk@30775 -
2015-05-03 16:16:32 +00:00
nickysn
7849ffecf7 + implemented TOmfLibObjectReader.openfile
git-svn-id: trunk@30773 -
2015-05-03 10:56:09 +00:00
nickysn
3b56a5a767 + implemented reading of the omf dictionary
git-svn-id: trunk@30772 -
2015-05-03 10:27:56 +00:00
florian
f5edf77a05 + Atmega8 support
git-svn-id: trunk@30768 -
2015-05-02 18:18:00 +00:00
florian
9f587625e7 + handle not and neg in isFoldableArithOp as well
git-svn-id: trunk@30767 -
2015-05-02 17:20:20 +00:00
florian
b222d0b663 * correctly handle LOC_SUBSETREG,LOC_CSUBSETREG,LOC_SUBSETREF,LOC_CSUBSETREF in second_int_to_bool, resolves issue #28007
git-svn-id: trunk@30765 -
2015-05-02 13:52:50 +00:00
florian
f2a5672355 * Update of German error message files by Karl-Michael Schindler, resolves issue #28010
git-svn-id: trunk@30763 -
2015-05-02 13:34:03 +00:00
nickysn
74c74b6a88 * call ArSymbols.Free instead of .Destroy in the tarobjectreader destructor
(because .destroy will cause a crash in case the object hasn't been
  initialized)

git-svn-id: trunk@30762 -
2015-05-02 10:50:29 +00:00
nickysn
5160c8f0a3 + started the omf library object reader
git-svn-id: trunk@30761 -
2015-05-02 10:32:08 +00:00
florian
9a5b458d4e * allocate registers properly before icall
* use emit_mov to load registers before icall

git-svn-id: trunk@30758 -
2015-05-02 08:02:17 +00:00