------- Comment #4 from Eric dot Doenges at betty-tv dot com 2006-04-25 14:43 ------- Removing the __asm__ ("r0") from __res works around the bug - but then I cannot depend on gcc always allocating r0 for __res, can I ? I found no other way to tell gcc which registers it must use. I'm assuming this is a bug in gcc, not the asm constraint, because the same code works flawlessly with gcc-3.4.3.
As to simplifying the testcase - storing the result of BIOS_ContainerUsage to memory generates correct code regardless of wether __res is forced to r0 or not, making it worthless as a test case. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27308