This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug dynamic-link/21265] _dl_runtime_resolve isn't compatible with Intel C++ __regcall calling convention


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]