nickysn
940738a3a1
* synchronized with trunk
...
git-svn-id: branches/wasm@48846 -
2021-03-01 13:21:24 +00:00
Jonas Maebe
6beb28316e
* Darwin targets that don't support link order sym files can't smart link
...
vectorized sections
git-svn-id: trunk@48765 -
2021-02-21 21:41:09 +00:00
nickysn
ae75c87d65
* synchronized with trunk
...
git-svn-id: branches/wasm@48515 -
2021-02-06 08:27:24 +00:00
florian
d0910b5ac8
* allow sub/add nodes in constant pointer expressions, resolves #34027
...
git-svn-id: trunk@48514 -
2021-02-05 22:10:27 +00:00
nickysn
60d21bcf0d
* fix llvm-mc error for string constants missing a .size directive
...
git-svn-id: branches/wasm@48252 -
2021-01-21 02:59:59 +00:00
Jonas Maebe
1c61c30cd2
* added "const" to some string parameters
...
git-svn-id: trunk@47299 -
2020-11-03 21:34:15 +00:00
florian
637976e83f
* patch by Marģers to unify internal error numbers, resolves #37888
...
git-svn-id: trunk@47103 -
2020-10-13 19:59:01 +00:00
yury
9e11f8122f
* Corrected r46481. Use both tcalo_new_section and tcalo_make_dead_strippable flags since only the default implementation implies a new section creation when tcalo_make_dead_strippable is specified.
...
git-svn-id: trunk@46482 -
2020-08-18 12:27:46 +00:00
yury
17e75004c5
* Allow library based smartlinking of indirect symbol entries.
...
git-svn-id: trunk@46481 -
2020-08-18 12:02:20 +00:00
yury
764227193a
* Added on option to implement library based smartlinking of the dead stripable vectorized lists (e.g. resource strings index). By default smartlinking of such lists only supported when the section based smartlinking (tf_smartlink_sections) is enabled for a target.
...
git-svn-id: trunk@46479 -
2020-08-18 11:31:39 +00:00
Károly Balogh
1df56495b7
* fix a typo in a comment. no functional change
...
git-svn-id: trunk@45364 -
2020-05-14 15:23:27 +00:00
svenbarth
b88107fa1d
* due to an apparent bug in the clang assembler for COFF when assembling ADRP instructions we can't use symbols that are offset into their section
...
git-svn-id: trunk@44948 -
2020-04-21 06:06:31 +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
yury
1b3a3a7983
* Removed lot of unused local vars. It is useful to turn on the notes in options. :)
...
git-svn-id: trunk@44053 -
2020-01-28 18:45:33 +00:00
Jonas Maebe
1a9e246c29
* added is_normal_fieldvarsym() helper and use it
...
o fixes several places where there was a check whether something is a
fieldvarsym, but not whether it's an instance rather than a class field
git-svn-id: trunk@43786 -
2019-12-24 22:12:44 +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
Jonas Maebe
3fa6838815
* basic llvm metadata support
...
git-svn-id: branches/debug_eh@41978 -
2019-05-02 19:45:26 +00:00
Jonas Maebe
079d616978
* fixed double free in LLVM code generator after r41963
...
git-svn-id: trunk@41976 -
2019-05-02 19:40:00 +00:00
Jonas Maebe
97a144ea6a
- removed ttypedconstkind parameter from tai_simpletypedconst constructor,
...
as it always has to be tck_simple anyway
git-svn-id: trunk@41975 -
2019-05-02 19:39:56 +00:00
Jonas Maebe
213b87fe91
* optimized and simplified tai_aggregatetypedconst destruction
...
git-svn-id: trunk@41963 -
2019-04-30 19:36:46 +00:00
Jonas Maebe
d150869dea
* record symbols that need to remain in their original order, and on Darwin
...
pass them to the linker so it does not reorder them
o fixes resource strings on Darwin when using LTO (this used to reorder the
resource string symbols, so they no longer all appeared between the START
and END symbols for their compilation module)
git-svn-id: trunk@41907 -
2019-04-20 18:18:10 +00:00
Jonas Maebe
4d03f3a65e
* fixed LLVM memory leaks
...
git-svn-id: trunk@40732 -
2019-01-01 16:22:31 +00:00
Jonas Maebe
f87304f5ca
* fixed LLVM code generator not taking into account constalignmin/max
...
settings for typed constants
git-svn-id: trunk@40605 -
2018-12-21 20:57:22 +00:00
Jonas Maebe
97b40dc16d
* fixed dynamic array constants for llvm
...
git-svn-id: trunk@40383 -
2018-11-28 19:23:25 +00:00
yury
4357caaad8
* Removed unused local vars.
...
git-svn-id: trunk@40183 -
2018-11-02 18:44:29 +00:00
svenbarth
8bf3661f7f
+ add a method to emit a reference to a pooled shortstring constant (aka one per unit); very useful for new RTTI tables to avoid poluting the binary with string constants
...
git-svn-id: trunk@39683 -
2018-08-29 19:20:20 +00:00
pierre
a1bbd4c02d
Try to avoid inserting all RTTI symbols into executables on targets not supporting smartlinked sections
...
git-svn-id: trunk@39121 -
2018-05-25 20:44:24 +00:00
svenbarth
2bf5c28077
+ add methods begin_dynarray_const and end_dynarray_const which can be used to emit the data of a dynamic array
...
inbetween
+ add method emit_dynarray_offset to emit a reference to that data with the correct offset
git-svn-id: trunk@39040 -
2018-05-20 11:50:13 +00:00
svenbarth
e863245021
+ add method get_dynarray_symofs to retrieve the platform specific offset of the dynamic array data from its
...
meta data record
git-svn-id: trunk@39039 -
2018-05-20 11:50:11 +00:00
svenbarth
d3d9221c8d
+ add method get_dynarray_header_size to retrieve the size of the dynamic array meta data record
...
git-svn-id: trunk@39038 -
2018-05-20 11:50:09 +00:00
svenbarth
2eac60cd87
* use a unique internal error
...
git-svn-id: trunk@39024 -
2018-05-18 14:43:31 +00:00
florian
2ad265505b
* properly align unicode- and ansistring constants
...
git-svn-id: trunk@36545 -
2017-06-19 21:18:03 +00:00
Jonas Maebe
f3ebde999f
* extracted the code to generate the indirect symbols from
...
finalize_asmlist() into its own method. finalize_asmlist() must not
generate new data, as it is /the/ method that gets overridden by
descendent classes to generate the symbol data in the format needed
by the platform
o fixes generation of indirect symbol data for LLVM
git-svn-id: trunk@36265 -
2017-05-19 21:52:42 +00:00
svenbarth
822d96776b
* extend tai_typedconstbuilder with the ability to add an indirect symbol to the same section as the one that's generated for the constant data (at least if it's also rodata)
...
git-svn-id: trunk@35365 -
2017-01-29 17:39:52 +00:00
Jonas Maebe
a0c50336f3
* initialize tguid typed constants by searching for the named fields we need,
...
rather than assuming they appear in a fixed order in the symtable (so that
adding e.g. record methods doesn't mess things up)
git-svn-id: trunk@35190 -
2016-12-23 20:17:09 +00:00
Jonas Maebe
827e980351
* fixed comment typo
...
git-svn-id: trunk@35036 -
2016-12-02 12:32:48 +00:00
Jonas Maebe
9727f289b1
+ tcalo_apply_constalign option to specify that the alignment should be
...
modified by applying user alignment settings (so it can be only done for
user-defined data, not not for internally generated data)
o set this option for user-defined data
git-svn-id: trunk@34633 -
2016-10-06 06:25:05 +00:00
nickysn
6eeb6ee95a
* also use sizesinttype, instead of ptrsinttype for the string reference count
...
and length in ttai_typedconstbuilder.get_dynstring_rec
git-svn-id: trunk@34622 -
2016-10-04 14:31:49 +00:00
nickysn
b3deb8a152
* use sizeint, instead of pint/ptrsinttype for emitting the reference count and
...
length of string constants
git-svn-id: trunk@34621 -
2016-10-04 14:23:44 +00:00
Jonas Maebe
4ca50bc9eb
* removed optimisation to reduce the number of unnecessary section headers
...
in the high level typed constant builder, as it does not work if the
passed list to start_internal_data_builder() is used for multiple
nested builders (you can't know what the last section was) -> always
emit a section header for a nested typed const builder
git-svn-id: trunk@34391 -
2016-08-28 22:08:00 +00:00
Jonas Maebe
a7c893064a
* only don't insert passing alignment immediately for anonymous records
...
rather than for any anonymous aggregate, since for arrays we do know
the alignment even if we don't know the element count (because it only
depends on the elementdef, which is/will be set immediately)
git-svn-id: trunk@34390 -
2016-08-28 22:07:57 +00:00
Jonas Maebe
6c40105037
* fixed typo
...
git-svn-id: trunk@34389 -
2016-08-28 22:07:54 +00:00
Jonas Maebe
d664038aa4
* don't add ".reference" assembler directives on Darwin for symbols that are
...
in sections marked as "no_dead_strip"
git-svn-id: trunk@34387 -
2016-08-28 22:07:49 +00:00
Jonas Maebe
4a42d67b72
+ ttai_typedconstbuilder.get_dynstring_rec() class method to get a recorddef
...
that represents an ansi/unicode/widestring constant of a particular length
git-svn-id: trunk@34372 -
2016-08-24 16:41:02 +00:00
Jonas Maebe
e91ba32b7c
* changed the result of get_dynstring_rec_name() to TSymStr
...
git-svn-id: trunk@34371 -
2016-08-24 16:40:59 +00:00
svenbarth
131a7bbc67
Fix cycling.
...
* correctly handle tcalo_data_force_indirect in finalize_vectorized_dead_strip_asmlist()
* correctly handle tcdssso_use_indirect in get_vectorized_dead_strip_section_symbol()
git-svn-id: trunk@34193 -
2016-07-23 16:34:26 +00:00
svenbarth
4df4449933
Extend the ttypedconstbuilder's dead_stripe_section handling (get_vectorized_dead_strip_section_symbol() and finalize_vectorized_dead_strip_asmlist()) with the ability to
...
- register a symbol in the unit's public or extern asm symbol list
- add an indirect symbol when defining the symbol
- use an indirect symbol instead of the direct one
This will be needed to correctly handle resourcestrings for packages
git-svn-id: trunk@34182 -
2016-07-22 15:55:14 +00:00
Jonas Maebe
1cb8c0d00c
* specify the def of assembler level symbols defined via
...
tasmdata.DefineAsmSymbol() and all routines that call it
o will be used to automatically generate AB_INDIRECT sybols when
necessary
git-svn-id: trunk@34164 -
2016-07-20 20:52:59 +00:00
Jonas Maebe
8fea7344c9
* added an extra parameter to ttai_typedconstbuilder.emit_pchar_const() to
...
indicate whether it should create a copy of the pchar or not
git-svn-id: trunk@34153 -
2016-07-19 14:30:36 +00:00
Jonas Maebe
8ca9ece66a
* fixed buffer overrun in tai_aggregatetypedconst.add_to_string()
...
git-svn-id: trunk@33988 -
2016-06-15 18:31:42 +00:00