o in particular, add tdef size information to the update_reference*()
methods, and factored out offset adjustments into its own method
o also make sure the passed size to update_reference*() corresponds to the
actual size of the index, as it's no longer guaranteed to be ptruint
since the previous commit
git-svn-id: trunk@29967 -
vector subregisters that we cannot represent yet. We only have to
load/store lower single/double precision contents via them though,
so reuse SUBMMS/SUBMMD for now.
git-svn-id: trunk@29955 -
of in X8, as the ABI allows this deviation (see added comments) and it's
required for some internal RTL code to call interface methods via RTTI
git-svn-id: trunk@29953 -
TAArch64AppleAssembler to determine whether we have to add extra
parameters to support assembling via a pipe ("as" is a symlink to
clang for Arch64 on OS X, and needs to be explicitly told its going to
receive assembler code from standard input)
git-svn-id: trunk@29952 -
instead of the frame pointer register:
1) we exactly know the offsets of the temps from the stack pointer
after pass 1 (based on the require parameter stack size for called
routines), while we don't know it for the frame pointer (it depends
on the number of saved registers)
2) temp offsets from the stack pointer are positive while those from
the frame pointer are negative, and we can directly encode much
bigger positive offsets in the instructions
o move the stack pointer register to a virtual register in
loadparentfpn, because many instructions cannot directly operate
on/with the stack pointer
o add the necessary register interference edges for the stack pointer
register
git-svn-id: trunk@29938 -
load a value from a nested context, or to pass a context to a nested
routine. In case a target uses both the stack and frame pointer, this
difference can matter.
git-svn-id: trunk@29937 -
references that directly take the address of a symbol, rather than
of its GOT entry
o use these addressing modes to access local symbols
git-svn-id: trunk@29932 -
convention code is triggered before the object structure has been
finalised, so the result can be different in the interface and
implementation. To solve this, something like r20161 has to be
implemented for TP-style objects
git-svn-id: trunk@29930 -
o don't forward cb(n)z, as we don't check the maxiumum offsets
o don't forward conditional branches to global labels, as they also have a
limited range and at least the OS X toolchain doesn't support this
git-svn-id: trunk@29929 -