This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug dynamic-link/21265] _dl_runtime_resolve isn't compatible with Intel C++ __regcall calling convention
- From: "hjl.tools at gmail dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Fri, 17 Mar 2017 23:54:06 +0000
- Subject: [Bug dynamic-link/21265] _dl_runtime_resolve isn't compatible with Intel C++ __regcall calling convention
- Auto-submitted: auto-generated
- References: <bug-21265-131@http.sourceware.org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=21265
--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Andreas Schwab from comment #2)
> Like the regparm attribute on 32-bit x86 it can only be safely used by
> internal function calls.
i386 _dl_runtime_resolve preserves EAX, ECX and EDX for regparm:
Dump of assembler code for function _dl_runtime_resolve:
0x000174c0 <+0>: push %eax
0x000174c1 <+1>: push %ecx
0x000174c2 <+2>: push %edx
0x000174c3 <+3>: mov 0x10(%esp),%edx
0x000174c7 <+7>: mov 0xc(%esp),%eax
0x000174cb <+11>: call 0xff60 <_dl_fixup>
0x000174d0 <+16>: pop %edx
0x000174d1 <+17>: mov (%esp),%ecx
0x000174d4 <+20>: mov %eax,(%esp)
0x000174d7 <+23>: mov 0x4(%esp),%eax
0x000174db <+27>: ret $0xc
--
You are receiving this mail because:
You are on the CC list for the bug.