• David Tardon's avatar
    ppc64: do not use asm block to retrieve args · fe7fa0ba
    David Tardon yazdı
    Some versions of gcc clobber one of the registries that are used to pass
    arguments in the function's prologue, like:
    
    Dump of assembler code for function (anonymous namespace)::privateSnippetExecutor():
    510     {
       0x00003fffaffe8454 <+0>:     mflr    r0
       0x00003fffaffe8458 <+4>:     std     r0,16(r1)
       0x00003fffaffe845c <+8>:     std     r29,-24(r1)
       0x00003fffaffe8460 <+12>:    std     r30,-16(r1)
       0x00003fffaffe8464 <+16>:    std     r31,-8(r1)
       0x00003fffaffe8468 <+20>:    stdu    r1,-352(r1)
       0x00003fffaffe846c <+24>:    mr      r31,r1
    => 0x00003fffaffe8470 <+28>:    ld      r8,-28688(r13)
       0x00003fffaffe8474 <+32>:    std     r8,312(r31)
       0x00003fffaffe8478 <+36>:    li      r8,0
    
    Reading the registries through variables makes gcc aware that they are
    used, so it does not touch them. It has got no negative effect on
    performance, as it produces the same object code as the current asm
    block.
    
    Change-Id: I3b99b0aa9944f9f33de9a42508e9d4dd23cec5e0
    fe7fa0ba
Adı
Son kayıt (commit)
Son güncelleme
..
gcc3_aix_powerpc Loading commit data...
gcc3_ios_arm Loading commit data...
gcc3_linux_aarch64 Loading commit data...
gcc3_linux_alpha Loading commit data...
gcc3_linux_arm Loading commit data...
gcc3_linux_hppa Loading commit data...
gcc3_linux_ia64 Loading commit data...
gcc3_linux_intel Loading commit data...
gcc3_linux_m68k Loading commit data...
gcc3_linux_mips Loading commit data...
gcc3_linux_powerpc Loading commit data...
gcc3_linux_powerpc64 Loading commit data...
gcc3_linux_s390 Loading commit data...
gcc3_linux_s390x Loading commit data...
gcc3_linux_sparc Loading commit data...
gcc3_linux_x86-64 Loading commit data...
gcc3_macosx_x86-64 Loading commit data...
gcc3_solaris_intel Loading commit data...
gcc3_solaris_sparc Loading commit data...
mingw_intel Loading commit data...
mingw_x86-64 Loading commit data...
msvc_win32_intel Loading commit data...
msvc_win32_x86-64 Loading commit data...
shared Loading commit data...