Commit Graph

1046 Commits

Author SHA1 Message Date
florian
d772a42375 * arm: more fixes for fpu_fpv4_sp_d16
* take care of FPUARM_HAS_VFP_DOUBLE
  * use FPUARM_HAS_VFP_EXTENSION instead of checking fpu_vfp_first and ...last

git-svn-id: trunk@44707 -
2020-04-12 18:05:50 +00:00
florian
96a368fdf9 * building on non-x86/non-xtensa fixed
git-svn-id: trunk@44551 -
2020-04-03 20:40:36 +00:00
florian
fa4cbc89a5 + Xtensa: hard float support, i.e. make use of floating point extension if available
git-svn-id: trunk@44539 -
2020-04-03 20:15:23 +00:00
Jonas Maebe
4ba19f5418 * add support for creating non-address-only procvars to
cprocvar.getreusableprocaddr()

git-svn-id: trunk@44516 -
2020-04-02 21:21:36 +00:00
svenbarth
41a6957f7d * keep track of the fileposinfo for generic constraints
git-svn-id: trunk@44188 -
2020-02-16 09:53:32 +00:00
svenbarth
cba43ebe1b - remove generic_buf_needs_swapping again as that is now handled with tmodule.change_endian of the generic's module
git-svn-id: trunk@44074 -
2020-01-30 21:49:56 +00:00
pierre
d1e4066477 Hopefully fix problems related to loading of ppufile generated with other endianess for generics
git-svn-id: trunk@44056 -
2020-01-28 23:43:56 +00:00
florian
70a836c4a2 * first part of merging parts of Jeppe's intrinsics patch, mainly r31135
is merged by this commit with a lot of adaptions

git-svn-id: trunk@43949 -
2020-01-14 21:52:39 +00:00
Jonas Maebe
b355ba3d39 * record whether a function uses fastmath, and define the function as
strictfp if it doesn't (so LLVM doesn't perform transformations that can
    change the fp/exception behaviour)

git-svn-id: trunk@43818 -
2019-12-30 15:05:06 +00:00
Jonas Maebe
f5833dc048 * support for marking arraydefs as vectors
git-svn-id: trunk@43782 -
2019-12-24 22:12:31 +00:00
svenbarth
f2818bfe7a * apply patch by Blaise.ru to remove last remnants of VMT regeneration which is no longer needed/used
git-svn-id: trunk@43628 -
2019-12-02 22:29:29 +00:00
svenbarth
3ced30f816 * apply (adjusted) patch by Blaise.ru: vmtentries is always created since 2008, so treat it as such (also fixes a memory leak in tobjectdef.getcopy)
git-svn-id: trunk@43626 -
2019-12-02 06:59:05 +00:00
svenbarth
ea75253926 * initialize the defid in trecorddef.create_global_internal as unique_id_str needs it
git-svn-id: trunk@43625 -
2019-12-02 06:58:59 +00:00
svenbarth
06c1a17d13 * use tdef.unique_id_str to generate the unique internal name for anonymous record defs as using the count of the deflist is no longer correct
git-svn-id: trunk@43616 -
2019-11-30 17:40:27 +00:00
Jonas Maebe
e775ecdc43 * cleaned up safecall support: use a hidden localvarsym instead of result
register hacking
   o this also allowed fixing/adding safecall support for LLVM

git-svn-id: trunk@43578 -
2019-11-24 20:23:22 +00:00
Jonas Maebe
ac1e0f96bd * replaced tentryfile.get/putsmall/normalset() with a common tget/putset
that expects an open array of byte, and use it for all sets
   o since all sets need to be typecasted to an array type of the appropriate
     size, we'll get a compilation error in case this needs to be done and
     that also tells us at the same time that the ppu version will need to
     be increased
  * enabled {$packset 1} for the compiler, as this is now safe with the above
    changes

git-svn-id: trunk@43407 -
2019-11-06 21:50:19 +00:00
Jonas Maebe
a051b8d225 - remmoved doregister parameter from t*sym constructors, as the registration
is handled automatically nowadays

git-svn-id: trunk@42998 -
2019-09-14 17:30:45 +00:00
pierre
5d9771d141 Suppress range check/invalid typecast errors when compiling with -CriotR option
git-svn-id: trunk@42942 -
2019-09-07 21:14:12 +00:00
pierre
970ce7f243 Avoid error with -CR option in tobjectdef.vmt_def method
git-svn-id: trunk@42711 -
2019-08-16 16:31:08 +00:00
florian
85edf1c1eb * reworked arm vfp capability handling to use fpu_capabilites
git-svn-id: trunk@42679 -
2019-08-13 18:41:15 +00:00
svenbarth
fc46b6c57c * apply patch by Blaise.ru to pass the record name for an internal record more efficiently
git-svn-id: trunk@42653 -
2019-08-11 17:26:44 +00:00
svenbarth
955ebf2f09 * applied patch by Blaise.ru to reduce code duplication in trecorddef.create_global_internal()
git-svn-id: trunk@42652 -
2019-08-11 17:26:35 +00:00
Jonas Maebe
6eafee72d7 - fixed check for determining whether requesting the size of an array is
an invalid operation after r42479, as regular arrays can have high=-1
    (mantis #35874, already checked by trange3)

git-svn-id: trunk@42482 -
2019-07-22 12:06:26 +00:00
florian
aac8559a8d * some runtime errors fixed, if compiled with -CrR
git-svn-id: trunk@42479 -
2019-07-21 12:25:55 +00:00
svenbarth
43b5dbf613 * fix for Mantis #23071: also store local symtable in the PPU if the procdef is generic as we need it to resolve genericdefs to nested types
git-svn-id: trunk@42459 -
2019-07-19 15:55:28 +00:00
Jonas Maebe
d8903ce6b3 - removed maxcrecordalign parameter/field from recordsymtables, as this value
cannot be modified in the settings (so we can directly use the one from
    current_settings)

git-svn-id: trunk@42447 -
2019-07-14 19:24:32 +00:00
svenbarth
90bec938f6 * don't free the constructor call in trtti_attribute_list as that is already freed in the destructor of trtti_attribute
git-svn-id: trunk@42406 -
2019-07-12 22:08:04 +00:00
svenbarth
9dbd155131 * use two empty lines between method definitions (no code changes)
git-svn-id: trunk@42403 -
2019-07-12 22:07:54 +00:00
svenbarth
b945e66e28 * store attribute information in PPU; this is less important for the compiler, but more for e.g. Lazarus when dealing with binary only units
* increase ppu version
+ added test
* adjust ppudump to handle attributes as well
ToDo: output parameter nodes as well

git-svn-id: trunk@42401 -
2019-07-12 22:07:46 +00:00
svenbarth
8ce4f9606d * explicitely store the procdef of the picked constructor of the attribute
git-svn-id: trunk@42400 -
2019-07-12 22:07:41 +00:00
svenbarth
dfb9fffcf9 + add functions for syms and defs and write sub entries of the sym/def to PPU and loads them again
git-svn-id: trunk@42399 -
2019-07-12 22:07:38 +00:00
svenbarth
352ff5f82a - symbolname field is no longer required
git-svn-id: trunk@42398 -
2019-07-12 22:07:34 +00:00
svenbarth
ced3885dbb * generate construction function for the attributes used in a unit using a more straight forward approach
ToDo: "collect" attributes of same type and same argument list and generate constructor only once for them

git-svn-id: trunk@42394 -
2019-07-12 22:07:20 +00:00
svenbarth
0b63e89ba2 * make the reference to the TCustomAttribute type global
git-svn-id: trunk@42393 -
2019-07-12 22:07:15 +00:00
svenbarth
d9d2515ada * move binding of a dangling attribute list to a sym's/def's attribute list to a class procedure of trtti_attribute_list
git-svn-id: trunk@42392 -
2019-07-12 22:07:11 +00:00
svenbarth
f9cda608fa * take a copy of the constructor assignment node (and free it together with the attribute)
git-svn-id: trunk@42388 -
2019-07-12 22:06:57 +00:00
svenbarth
b5e6c0b98d * ensure that any potentially created constructor call is freed if the attribute is not bound to a def or sym
git-svn-id: trunk@42383 -
2019-07-12 22:06:38 +00:00
svenbarth
0e04d9b4de * store the parameter nodes in the attribute object as well (we need to write them to the RTTI as well as store them in the PPU)
git-svn-id: trunk@42382 -
2019-07-12 22:06:34 +00:00
svenbarth
3a20178d96 * fix code formatting (no code changes)
git-svn-id: trunk@42381 -
2019-07-12 22:06:31 +00:00
svenbarth
a1b556d211 * considering that at least in theory every symbol and every def can carry RTTI attributes (Delphi only supports property and field symbols), move the rtti_attribute_list to tstoredsym/tstoreddef
git-svn-id: trunk@42374 -
2019-07-12 22:06:05 +00:00
svenbarth
39bab2dbcc * rename trtti_attributesdef to trtti_attributes_list
git-svn-id: trunk@42359 -
2019-07-12 22:05:00 +00:00
svenbarth
b2932393df Reintegration of Custom Attributes branch by Joost van der Sluis with patches reworked by Svetozar Belic [patch 1/3]
Implemented attributes for class types and properties (based on work by Joost van der Sluis). Added TCustomAttribute - a base class for attributes. Added TUnitInfo record to RTTI. It contains the unit name and unit options (for now only a flag which specifies if the unit contains attributes). Added several tests for attributes.

git-svn-id: trunk@42356 -
2019-07-12 22:04:48 +00:00
Jonas Maebe
7f772683cb * fix tobjectdef.vmt_def to search in the correct symtable
* always register vmt defs (so they get written to the ppu) in case of llvm,
    because it may need this def in case a method from a class defined in the
    implementation of unit gets called from an inlined routine that gets
    inlined in another unit (normally that vmt def would not get written to
    the ppu file, as it can't be referenced from the interface and it's also
    not necessarily directly referenced from the inline routine's nodes)
    (fixes sdo_dataobject compilation with LLVM after enabling cross-unit
     inlining of methods accessing static symbol table symbols)

git-svn-id: trunk@42342 -
2019-07-07 21:33:51 +00:00
Jonas Maebe
e56b58c2b0 * factored out checks whether a procdef's symbol needs to be global, and
the generation of the procdef's asmsymbols
   o also removed unnecessary definition of procdef alias symbols for Darwin
     (they are already defined in ncgutil.alloc_proc_symbol)

git-svn-id: trunk@42341 -
2019-07-07 21:33:47 +00:00
Jonas Maebe
c262c5dbc9 * synchronised with trunk till r42256
git-svn-id: branches/debug_eh@42257 -
2019-06-20 17:21:34 +00:00
Jonas Maebe
d6174499b1 * disable array and record regvars for all cpuhighleveltarget platforms
git-svn-id: trunk@42246 -
2019-06-18 19:16:33 +00:00
florian
749c4d4e47 + keep (certain) arrays in registers if they are used with constants indices only
git-svn-id: trunk@42239 -
2019-06-16 21:29:48 +00:00
Jonas Maebe
faf75095cd * synchronised with trunk till r42189
git-svn-id: branches/debug_eh@42190 -
2019-06-07 18:24:38 +00:00
marco
9313ddea78 * fix mantis 035656
git-svn-id: trunk@42146 -
2019-05-31 10:32:49 +00:00
Jonas Maebe
9e9a982bfe * synchronised with trunk till r42095
git-svn-id: branches/debug_eh@42096 -
2019-05-18 18:43:51 +00:00