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 -
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 -
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 -
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 -
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 -
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 -
* 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 -
names, and disabled them for ppc64 ELFv2
* disabling those also disables the function descriptors, so use the
_CALL_ELF compiler variable to check whether there is in fact a
function descriptor
git-svn-id: trunk@30196 -
* specify the correct linker emulation to use for ppc64 ELFv2 little endian
* specify the correct default library directories to search for ELFv2 little
endian
git-svn-id: trunk@30194 -
Update ARM internal assembler to support most ARM, Thumb and Thumb-2 instructions.
Changed generation of VFP instructions to use UAL mnemonics.
Added divided and unified assembler syntax support to ARM assembly reader.
git-svn-id: trunk@30181 -