Hi,
I found the source of problem. It is GCC bug. The bug is DSE (dead storage elimination) related. The issue is valid for GCC 4.3.x, 4.4.x, 4.5.x. In 4.2.x and earlier problem does not exist.
I was wrong. It's not GCC bug. "GCC guys" told that problem is in l4sys package. Please see file: /l4/pkg/l4sys/include/ARCH-x86/L4API-l4v2/ipc-l42-gcc3-nopic.h here l4_ipc_send_tag() misses "memory" constraint in clobber list. It definitely must have one. Please fix it.
At the same time following file contains correct l4_ipc_send_tag() implementation: /l4/pkg/l4sys/include/ARCH-x86/L4API-l4v2/ipc-l42-gcc3-nopic.h So i guess the bug is just oversight. Anyway I think it's wise to look through l4sys for similar errors.
Best Regards, Alexander Valitov