-
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 |
---|---|---|
.. | ||
inc/bridges/cpp_uno | ||
source | ||
test | ||
CustomTarget_gcc3_ios_arm.mk | ||
CustomTarget_gcc3_linux_arm.mk | ||
Jar_java_uno.mk | ||
Library_cpp_uno.mk | ||
Library_java_uno.mk | ||
Makefile | ||
Module_bridges.mk | ||
Package_jnilib_java_uno.mk | ||
README |