aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorIain Sandoe <iain@sandoe.co.uk>2021-05-03 08:22:53 +0100
committerIain Sandoe <iain@sandoe.co.uk>2021-07-09 17:41:55 +0100
commit41bd1b190358fce213f5add8396faf14a32d5c23 (patch)
treef6991a6ee2bfe85c65d08cc973b8a7452de4862d /gcc/reload.c
parent54258e22b0846aaa6bd3265f592feb161eecda75 (diff)
downloadgcc-41bd1b190358fce213f5add8396faf14a32d5c23.zip
gcc-41bd1b190358fce213f5add8396faf14a32d5c23.tar.gz
gcc-41bd1b190358fce213f5add8396faf14a32d5c23.tar.bz2
Darwin, X86: Adjust call clobbers to allow for lazy-binding [PR 100152].
We allow public functions defined in a TU to bind locally for PIC code (the default) on 64bit Mach-O. If such functions are not inlined, we cannot tell at compile-time if they might be called via the lazy symbol resolver (this can depend on options given at link-time). Therefore, we must assume that the lazy resolver could be used which clobbers R11 and R10. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> gcc/ChangeLog: PR target/100152 * config/i386/i386-expand.c (ix86_expand_call): If a call is to a non-local-binding, or local but to a public symbol, then assume that it might be indirected via the lazy symbol binder. Mark R10 and R10 as clobbered in that case.
Diffstat (limited to 'gcc/reload.c')
0 files changed, 0 insertions, 0 deletions