Jonas Maebe
419a97cce8
* changed emit_ansistring_const() and emit_unicodestring_const() into
...
instance methods that make use of the internal data builder
functionality so they automatically place all string data in the
same section if possible
git-svn-id: branches/hlcgllvm@30342 -
2015-03-27 21:25:53 +00:00
Jonas Maebe
6ed273eec5
* support specifying the name of an internal data section
...
git-svn-id: branches/hlcgllvm@30341 -
2015-03-27 21:25:50 +00:00
Jonas Maebe
a76aba4a20
* converted a number of string data generators to the internal data builder
...
functionality
git-svn-id: branches/hlcgllvm@30340 -
2015-03-27 21:25:47 +00:00
Jonas Maebe
158116392c
+ ttai_typedconstbuilder.start_internal_data_builder() and
...
ttai_typedconstbuilder.finish_internal_data_builder() to generate data
will only be referenced by the typed const that we are currently
generating. Takes care of creating an appropriate label/section for
this data, avoiding needless global symbols and sections.
git-svn-id: branches/hlcgllvm@30339 -
2015-03-27 21:25:43 +00:00
Jonas Maebe
be2f63aa97
+ tasmlabel.createstatic() constructor for creating static data labels
...
(object-local, but not starting with (.)L, so they're still treated as
the start of a subsection by Darwin's linker when dead-stripping)
+ tasmdata.getstaticdatalabel() that uses the above
git-svn-id: branches/hlcgllvm@30338 -
2015-03-27 21:25:40 +00:00
Jonas Maebe
560fe24c44
+ getlocaldatalabel()
...
git-svn-id: branches/hlcgllvm@30337 -
2015-03-27 21:25:37 +00:00
Jonas Maebe
687bb15299
* renamed getdatalabel() to getglobaldatalabel
...
git-svn-id: branches/hlcgllvm@30336 -
2015-03-27 21:25:34 +00:00
Jonas Maebe
5e1bb8e408
+ tcalo_make_dead_strippable to indicate that a typed constant data block
...
should be dead-strippable; may imply the creation of a separate section
(on platforms that dead-strip data based on sections), but does not
require it
* replaced all existing tcalo_new_section uses with
tcalo_make_dead_strippable, as that is their meaning/purpose
git-svn-id: branches/hlcgllvm@30335 -
2015-03-27 21:25:30 +00:00
Jonas Maebe
e924dbed90
* moved the specification of the options for a ttai_typedconstbuilder from
...
get_final_asmlist() to the constructor, in preparation of supporting the
creation of internal builders for local data that will ignore some of the
irrelevant flags (at creation time)
git-svn-id: branches/hlcgllvm@30334 -
2015-03-27 21:25:27 +00:00
Jonas Maebe
765044aede
* fixed a number of (mostly false) warnings regarding uninitialised
...
variables with -Oodfa
git-svn-id: branches/hlcgllvm@30244 -
2015-03-15 21:10:50 +00:00
Jonas Maebe
bc7ba58798
* fixed compilation after removal of ait_set, ait_thumb_set and ait_symbol_pair
...
git-svn-id: branches/hlcgllvm@30243 -
2015-03-15 21:10:47 +00:00
Jonas Maebe
bd203a5b57
* synchronised with trunk till r30240
...
git-svn-id: branches/hlcgllvm@30241 -
2015-03-15 19:44:58 +00:00
florian
f07969245b
* fix warning about uninitialized variable
...
git-svn-id: trunk@30240 -
2015-03-15 17:10:01 +00:00
florian
331ace25c6
* handle undefineddef in classify_argument, resolves #27658
...
git-svn-id: trunk@30239 -
2015-03-15 16:19:58 +00:00
Jeppe Johansen
60f24739fc
Fixed typo
...
git-svn-id: trunk@30238 -
2015-03-15 15:47:45 +00:00
florian
38a72f2ddb
* renamed arm->avr to match the cpu
...
git-svn-id: trunk@30237 -
2015-03-15 15:10:37 +00:00
Jonas Maebe
f633d094ee
* perform interface dispatches via R12 instead of R11 as expected for
...
indirect function calls for ELFv2 (and other ABIs don't care about
the register)
git-svn-id: trunk@30236 -
2015-03-15 14:00:32 +00:00
Jeppe Johansen
2bcef2daee
Fix break caused by r30233
...
git-svn-id: trunk@30235 -
2015-03-15 13:34:01 +00:00
Jeppe Johansen
f92f0751f4
Fix selection of LDR/STR instructions in thumb mode. Most forms don't support pre or post indexing.
...
Fix emission of offsets.
git-svn-id: trunk@30234 -
2015-03-15 12:12:13 +00:00
Jeppe Johansen
155998fe89
Support .set and .weak in internal assembler.
...
Fix problem with fpc_initialHeap getting put in .data instead of .bss.
git-svn-id: trunk@30233 -
2015-03-15 12:10:54 +00:00
Károly Balogh
2555f12394
m68k: improved handling of moves and sign/zero extensions targeting address regs
...
git-svn-id: trunk@30232 -
2015-03-15 01:44:43 +00:00
nickysn
492101df76
* fixed a race condition during parallel build on linux, when the loaders are
...
built before mkdir has created the output directory
git-svn-id: trunk@30231 -
2015-03-14 22:27:03 +00:00
Jonas Maebe
6230119140
- removed self-assignment of cur_stack_offset introduced by refactoring in
...
r30221
git-svn-id: trunk@30230 -
2015-03-14 21:55:48 +00:00
Jonas Maebe
8334597476
* a homogeneous float aggregate can maximally contain 4 elements
...
(mantis #27665 )
git-svn-id: trunk@30229 -
2015-03-14 21:46:45 +00:00
Jonas Maebe
faf3efe139
+ Linux/ppc64le test object files
...
git-svn-id: trunk@30228 -
2015-03-14 18:37:01 +00:00
Jonas Maebe
0c394eb6f4
* ensure we don't call a_load_cgparaloc_anyreg() to move an fpu register
...
into an integer register
git-svn-id: trunk@30227 -
2015-03-14 18:36:57 +00:00
Jonas Maebe
622852b8c9
* check that a_load_cgparaloc_anyreg() is not used to try to move an fpu
...
register into a non-fpu register, as this is not (yet) supported
git-svn-id: trunk@30226 -
2015-03-14 18:36:54 +00:00
Jonas Maebe
a02d52f533
* support thlcg2ll.gen_loadfpu_loc_cgpara() from LOC_REGISTER to
...
LOC_FPUREGISTER (can happen with certain ABIs due to records
having to be passed in floating point registers)
git-svn-id: trunk@30225 -
2015-03-14 18:36:52 +00:00
Jonas Maebe
c50c822e13
* fixed destination size when loading fpu temp paralocs
...
git-svn-id: trunk@30224 -
2015-03-14 18:36:49 +00:00
Jonas Maebe
6d02aedf70
* support multiple register paralocs in tcgobj.a_loadfpu_ref_cgpara()
...
git-svn-id: trunk@30223 -
2015-03-14 18:36:46 +00:00
Jonas Maebe
cea2741339
* correct paraloc size for 3-byte records passed in the lower bits of a
...
register (32 bit instead of 64 bit register)
git-svn-id: trunk@30222 -
2015-03-14 18:36:43 +00:00
Jonas Maebe
3d6fcd8815
+ ppc64le/ELFv2 ret_in_param implementation
...
* fixed ret_in_param for other ppc64 ABIs
git-svn-id: trunk@30221 -
2015-03-14 18:36:40 +00:00
Jonas Maebe
f4a580d669
* don't fail if multiple dotests try to create the same directory in parallel
...
git-svn-id: trunk@30220 -
2015-03-14 18:36:37 +00:00
Jonas Maebe
a02fb7c794
* fixed misplaced braces that caused all records to be passed by reference
...
on ppc64 with the mwpascal calling convention, instead of only the const
ones
git-svn-id: trunk@30219 -
2015-03-14 18:36:35 +00:00
Jonas Maebe
7bc66a5142
+ ELF/ppc64le resource support
...
git-svn-id: trunk@30218 -
2015-03-14 18:36:32 +00:00
Jonas Maebe
6b9b575b74
* choose between arm (little endian) and armeb for fpcres based on the
...
target_info rather than based on the source_info
git-svn-id: trunk@30217 -
2015-03-14 18:36:29 +00:00
Jonas Maebe
eee83ebb4a
* use generic code for a_load_subsetref_regs_noindex on ppc64le
...
git-svn-id: trunk@30216 -
2015-03-14 18:36:26 +00:00
Jonas Maebe
c69265a61c
* disable out big endian-specific helpers for ppc64le
...
git-svn-id: trunk@30215 -
2015-03-14 18:36:23 +00:00
Jonas Maebe
cf5b42b4b2
* use generic code for set+setelement on ppc64le
...
git-svn-id: trunk@30214 -
2015-03-14 18:36:20 +00:00
Jonas Maebe
82d92dbf50
* call seterrno instead of manually handling the setting setting the errno
...
threadvar (and having to deal with differences between the ELFv1 and ELFv2
ABIs regarding indirect function calls, + future ability to have the
compiler generate PIC for those routines)
o includes workaround for lack of linkage area size allocation in current
released PPC64 versions, remove after 3.0.2 has been released
git-svn-id: trunk@30213 -
2015-03-14 18:36:17 +00:00
Jonas Maebe
399ffb2005
* allocate enough room in assembler routines for a complete linkage area
...
so that potential callees have enough room to store their LR etc
if needed
git-svn-id: trunk@30212 -
2015-03-14 18:36:14 +00:00
Jonas Maebe
e3f451066b
* support little endian in getFPSCR/setFPSCR
...
git-svn-id: trunk@30211 -
2015-03-14 18:36:11 +00:00
Jonas Maebe
3ab62dcfed
* switched Linux/PowerPC64 to Pascal startup code so that we can used ifdefs
...
to detect whether we're compiling for ELFv1/SYSV or ELFv2
git-svn-id: trunk@30210 -
2015-03-14 18:36:08 +00:00
Jonas Maebe
53680329d3
* changed type of operatingsystem_parameter_argc from ptruint to longint,
...
as that's the type of argc in the system unit (which maps onto this
variable), and even in C it's "int argc". This fixes the use of this
variable on big endian targets
git-svn-id: trunk@30209 -
2015-03-14 18:36:05 +00:00
Jonas Maebe
d6499b4bc0
+ rldcl., rldicl., rldcr[.] and rldicr[.] opcodes (needed for new
...
bootstrapping code)
git-svn-id: trunk@30208 -
2015-03-14 18:36:02 +00:00
Jonas Maebe
5a6b9c9f16
* store/reload toc around indirect calls for ELFv2 ABI
...
* ensure that register calls happen via R12 on the ELFv2 ABI
git-svn-id: trunk@30207 -
2015-03-14 18:35:59 +00:00
Jonas Maebe
33ed32b024
* when targeting the ELFv2 ABI, don't reserve space for the (never used)
...
words in the linkage area reserved for use by the compiler and linker
git-svn-id: trunk@30206 -
2015-03-14 18:35:56 +00:00
Jonas Maebe
3d9713b9c8
* has_single_field() now looks recursively into fields that are aggregate
...
types until it finds a non-aggregate type, and then returns "true" if
that aggregate (record or array) contains one element
* it now also returns the type of that element directly rather than a
tfieldvarsym, since we only care about the type and in case of an array
there is no field
git-svn-id: trunk@30205 -
2015-03-14 18:35:53 +00:00
Jonas Maebe
2e126bb723
- removed darwin/i386 special case code from i8086 code generator
...
git-svn-id: trunk@30204 -
2015-03-14 18:35:50 +00:00
Jonas Maebe
9788b01d31
* rewrote most of the special case handling of parameter passing on ppc64,
...
documenting the pecularities of the various calling conventions and
marking what we do and don't support currently
* also handle arrays for the ELFv2 ABI when determining whether an aggregate
only contains floating values of a single type
git-svn-id: trunk@30203 -
2015-03-14 18:35:47 +00:00