nickysn
69d839e891
+ implemented VESA banked 32k/64k colour mode fast line drawing in the go32v2 graph unit
...
git-svn-id: trunk@30246 -
2015-03-17 00:13:58 +00:00
Károly Balogh
b617345e43
m68k: disabled premature MOVEA #0,Ax to SUBA Ax,Ax in the CG, because it breaks with spilling temp replacement and moved it to the optimizer, where it belongs. this fixes some code with potentially heavy address register pressure, like the IDE.
...
git-svn-id: trunk@30245 -
2015-03-16 02:04:58 +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
florian
f6f8e1b83e
* write ppu+source file name in case the source file is not available instead of inserting an invalid absolute path, resolves #27588
...
git-svn-id: trunk@30242 -
2015-03-15 19:51:17 +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
Jonas Maebe
165aaea8a4
* made a separate abi entry for powerpc_darwin, as it's not exactly the same
...
as the AIX abi (especially on ppc64)
o replaced (for now) all checks for the AIX abi with a check for either the
AIX or Darwin abi
o changed the ABI of Darwin/ppc, Darwin/ppc64 and Mac OS/ppc to
abi_powerpc_darwin
git-svn-id: trunk@30202 -
2015-03-14 18:35:44 +00:00
Jonas Maebe
25340480b0
* factored out creating a single paraloc, so we can reuse it for creating
...
function return locations
git-svn-id: trunk@30201 -
2015-03-14 18:35:41 +00:00
Jonas Maebe
f0ee1a9ee3
* pass records that (recursively) only contain floating point values of the
...
same type (even in other records or in arrays), with 8 or less such
values, as if those values were passed individually on ppc64/ELFv2
git-svn-id: trunk@30200 -
2015-03-14 18:35:38 +00:00
Jonas Maebe
9a73c9a460
* avoid string truncation for ait_symbolpair in assembler writer
...
git-svn-id: trunk@30199 -
2015-03-14 18:35:34 +00:00
Jonas Maebe
fb27dff638
* generate ".abiversion 2" directive when targeting ppc64/ELFv2
...
* generate code to load the TOC register if it's required, and
emit the the ".localentry" directive to indicate to the linker
where the actual function body starts
* support the ".localentry" directive in the ppc64 assembler reader
o disable the fpc_qword_to_double() assembler implementation for
ELFv2, because we can't manually insert the .localentry directive
before the stack allocation code
* perform indirect calls on ppc64 via R12 in ncgcal, as R12 needs to
contain the function address on entry on ppc64/ELFv2 (and it's
a volatile register, so there's no problem with always using
it)
git-svn-id: trunk@30198 -
2015-03-14 18:35:31 +00:00
Jonas Maebe
8445381929
* merged ait_set and ait_thumb_set into a single tai class
...
(tai_symbolpair)
git-svn-id: trunk@30197 -
2015-03-14 18:35:28 +00:00