Files
libreoffice/bridges/source/cpp_uno/gcc3_linux_powerpc64
David Tardon fe7fa0baff ppc64: do not use asm block to retrieve args
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
2015-04-28 08:46:05 +02:00
..